4

Short form: I'm trying to decide between shared, VPS, and cloud hosting for a few Django webapps.

Long form: I'm currently hosting around half-dozen sites (a mix of Django and PHP) on two Webfaction accounts. They are pretty low-traffic, but I'm sort of feeling the strain of shared hosting. Notably:

  • A mediawiki install on my account went a bit funny, soaked up a bunch of RAM spawning zombie PHP processes, and Webfaction's automatic script killed the other websites on the account (which is fair enough, but not ideal).
  • One of the accounts is on a semi-overloaded server (right now uptime shows a load average of 9.56, 6.91, 4.43), and my sites on that account are behaving a bit sluggishly.

In addition, I fondly hope that One Day we'll have a lot more traffic. So (potential) scalability would be nice. I've been just wonderfully amazed at Webfaction's price/performance, but it's still shared hosting.

The next step seems like it should either be a VPS or some sort of cloud/PaaS option.

If I went for the VPS route then...I guess I'd get a small Linode (or maybe more than one?) and start migrating apps from Webfaction. The question here is....do I try and jam them all into a single VPS? Try and put 1-2 apps on each VPS? Or split stuff up by function, so I have one VPS for the databases for all the apps, and another for serving static media, etc. Thoughts?

The cloud/PaaS option I'm a bit more vague on. I guess I could try migrating the Django apps to something like Heroku (which just launched Django support) or http://gondor.io/. The downside here is I'm not really familiar with them, and all the cloud options I've looked at seem quite expensive compared to a simple VPS. I guess the scalability is good, but none of my sites are actually using much in the way of resources.

Or, maybe I should just stick it out with shared hosting. It's more-or-less working, it's cheap, and it's nice to have someone else be responsible for hardware and OS issues.

Are there any good rules of thumb to apply here? Do I want a single (medium) Linode and try and run everything, or a few small ones (and if so, split by app or split by role?), or is Heroku and similar services just hands down better. Anyone have any thoughts?

5

I'll give my thoughts on VPS, as I have no experience in cloud.

I was in the same boat as you in terms of having my shared hosting no longer being reliable in terms of performance. I had roughly 20 websites on the same account, but only a handful of ones that were more than basic html/css/javascript.

I chose to get a cheap VPS(I pay $40/mo) and moved everything over to that. Not only did it allow me to install new things(setup my own email server for example), it also increased performance by a very large amount. I unfortunately didn't do any benchmarks prior to the moves.

I use mainly asp.net though, so this is a Windows example. Though the 2 php sites did increase in performance as well. Every last website is on the same VPS. I have no bandwidth issues, no site response issues, and if something breaks I have many more log files available to me to review.

So, in the end, I highly recommend the VPS route over shared. If you run this as a business, a shared plan is unacceptable. I actually regret not switching sooner.

I use rackwire.com, which I highly recommend. (didn't even post my referral link, shows how much I really recommend them)

  • Good answer, I would recommend to verify which VPS you go to and check reviews – Book Of Zeus Oct 9 '11 at 23:40

Not the answer you're looking for? Browse other questions tagged or ask your own question.