how to go about scaling a web-application ?
- by phoenix24
for someone whoes been primarily a web-application developer, and know not much about scaling/scalability techniques.
I'll start by stating my application is written in Python, using Django; a fairly standard setup.
I currently use Apache 2.2 for my webserver, and MySql for my database server; both running on the same vps server.
Up until now, it was basically a prototype and merely 15-30 concurrent users at any given time; so I had no issues, but now since we'll be adding more users we'll have severe performance issues.
So my question is how do i go about scaling my web-application? and my plan is as follows.
Now I have just one vps server running, apache + mysql.
Next, I plan to add another vps server, to run only MySql;
so i'll have one web-server and one db server.
Next, I'll add Memcache to the webserver for caching data; and taking some load off mysql.
Next, another web-server for serving all the static content;
Next, a vps server for load-balancing (nginx/varnish) behind which would be my two web-servers and then db-server.
Does that sound like a workable strategy, please guide me around here.