Scaling applications-an overview
As a business grows, its software applications will need to scale.
Computing bottleneck
Run multiple identical instances of the application on multiple servers behind a load balancer. Eg: Web farms.
Storage bottleneck
Route requests based off attributes to different servers. Eg: Data for names starting from A-D will be stored in a specific storage system or store columnar data separately. In databases, this system is called sharding.
Application complexity bottleneck
As an application increases in complexity slowing down development & maintainability, increased modularization & isolation will help. Microservices is a popular architecture for solving this problem.