A scalability strategy is a plan with a course of action to follow when the usage pattern of your applications change.
What can you, will you need to and wat are you going to do when your application sees:
a (significant) decrease in the number of customers, users, employees, assets etc.
a (significant) increase in the number of customers, users, employees, assets etc. Are you prepared for a:
- a slowly ramp up
- exponential growth
- a one-off big spike (and can you scale down again afterwards)
Are there limits beyond which you can't scale up or down?
Your options are specific to your current application design and deployment but the most typical strategies are :
- do nothing - (until things break)
- scale up (and less common opposite: scaling down) - change the size of your instance / server: add/remove CPU, memory and storage
- scale out - change the number of servers, deploy more instances, rather than bigger instances
- do something completely different (that suits your needs best)
- make it somebody else's problem (offloading / outsourcing / leverage a platform or cloud solution rather than DIY)
- a combination of the above
A fairly simple three tier web application: web server, application server, database server can run on the laptop of the developer or a single VPS. With more load you can get a bigger VPS (scale up) or move the database and application servers each to a dedicated VPS (scale out). Then add a load balancer and more web servers and application servers as load increases (more scale out).