3 ms·
Scaling each website is different, after you get the low hanging fruit (cache control, output caching, gzip ), it's a matter of investigating where your load is
by fleitz 16y ago
Scaling each website is different, after you get the low hanging fruit (cache control, output caching, gzip ), it's a matter of investigating where your load is and reducing it. This means profilers, debuggers, etc. It's a process not a product, however most people think it's a product.
It's easier to integrate a bunch of products than convince someone that their approach to solving the problem is wrong.
The scalability issues most sites have are that of attracting users. Since no one knows how to scale it, and it probably doesn't have any REAL scalability issues what I would do is in your current position unnecessarily add things to whatever you manage to help it scale. Scalability always sells well to management so it should be easy to get approval.
What you then want to do is google "website scalability" and add something like memcached or output caching / adding cache control headers to your site. You'll want to pick whatever is popular as whoever is interviewing you for will think you know what you're talking about when they google for "website scalability" and see a list of the same technologies. Also, the various language camps have their preferred solutions, so you'll want to pick technologies to integrate that will mesh with whatever language you want to get a job in. Don't worry whether it is the preferred solution for your current language camp.
Also, you'll want to use some kind of load testing framework inappropriately to load test your site. Get caching working properly, then run apachebench <yoursite.com/mainpage> Take however many users you have and the current requests per second and then multiply to get the new number of users your site scales to. ((curUsers / curReqPerSec) * newReqPerSec) = newUsers. Use that number on your resume / to management when you declare success.
When you actually get the job, use Google Chrome to test your site, attach a profiler to your webserver and profile it to see what actually takes the longest. (Make that thing take less time) Also, read about human perceptions of load time so that the site appears fast even though it isn't.