1

I've just started a brand new web app just a few days ago and I'm starting to run into some very serious issues. The site is growing very slow due to hundreds of thousands of hits every day. The graphs of hits is growing at a high rate and the site is currently running on a 1GB VPS which, as you can understand, is way too weak for this. I have faith in my idea and I think it's going to keep growing so I've managed to get ahold of about 30 000 USD. I also just quit my job to work on this.

My budget is about 30 000 USD as I said and I need servers. The application makes heavy use of a MySQL-database and I'd assume I need a separate server for that. What servers should I buy? Should I rent a rack or something in a nearby data center? I'd like the website to load very quickly and not slow down because of some spikes in hits.

2 Answers 2

7

If you need this done quickly and professionally, you need to put some of that $30k towards someone who knows what they're doing. While you can learn this stuff, the chances are you won't learn quick enough to avoid alienating a fair chunk of your customer base.

People will recommend EC2 and all sorts of other cloud setups, and they're an option too, but I'm old school and lean towards physical plant I can trust (and kick -- or at least visualise kicking -- if frustration overwhelms me). If you get someone in to help you (again, highly recommended) you'll almost certainly end up working with whatever they know best -- and there's nothing wrong with that. There's nothing inherently "wrong" with any solution, merely tradeoffs.

To the subject at hand: I wouldn't be inclined to buy servers outright. Renting them, whilst a longer-term large cost, is cheaper in the short term, which helps keep you cashflow positive. It's also easier to add a new one here and there, and it's (usually) the provider's problem to deal with spare parts and repairs (make sure of this, though). Eventually, it becomes more cost effective to do it yourself (your own hardware, racks, network, etc), but that time is a long way off.

As to specific hardware, you should get the biggest machine you can afford (within reason) for your database server. Those things are really hard to scale well, so throwing hardware at it is an excellent strategy. For webservers, utility servers, etc, dial back the shiny lust and target the price/performance "knee" (the most economical point on the price/performance curve) and make sure your application can horizontally scale across many servers to take advantage of that economy.

When talking to a provider, make sure they can quickly provision a replacement for any failed server, and check their SLA for restoration -- it's very rare that they'll cover you for anything like the actual cost of downtime, so don't forget to budget for redundancy and backups. There's no point building up your service only to have it disintegrate when your DB server goes down for two days and all your customers desert you.

0

Check out Amazon Web Services

http://aws.amazon.com/

Host your application on servers in the cloud - Elastic Load Balascing (ELB) makes it easy to scale for growth. They also have many other services Ex - RDS for Database and S3 for Storage.

Highly recommended.

Not the answer you're looking for? Browse other questions tagged .