Mysql – How to deploy web application for 2 million users

high-availabilitymemcachedMySQLscalingweb-server

I've been tasked with figuring out how to do a large scale deployment for a high availability, high traffic, dynamic, flash based web application. There is a good possibility that this application can grow to 2 million users or possibly a lot more.

Of course when the time comes to actually do it, I will likely bring in an expert to help me. For now, this is all theoretical, and I just wanted to get a good idea about how to do it.

Here is my current thinking:

  • Get a 1 or 2 gigabit internet connection.
  • 2x HA Proxies / load balancers.
  • 12x physical servers (2x quad cores, 32GB of ram) to run 25 Virtual Machine Apache web servers – 300 VMs total.
  • 2x memcached Servers (2x quad cores, 32GB of ram)
  • 2x Master Mysql DB servers, 3x read only slave mysql BD servers
  • 2x 6TB SAN RAIDs
  • All 10GbE or fiber connected…

My job is mostly to figure out the hardware, and how to deploy and maintain it.

As for maintaining this beast, I'm looking into Slack, Rightscale, Landscape, VMware.

I am also looking into just deploying it on Amazon EC2, but I would prefer to rack it myself as it looks like it would be much cheaper in the long run. I may start out with this rack and add EC2 instances if more is needed.

What do you think, is this overkill? Not enough? Have I got it figured out, and is there anything I'm missing?

Thanks to anyone who reads and responds!

Best Answer

Develop it on EC2. If/when you want to move it in-house, set up your own Eucalyptus cluster and move it to there, which will be easy since Eucalyptus is an open source EC2 infrastructure clone.

Related Topic