Start with a virtual machine.
A virtual machine gives an application an operating system, virtual processors, memory, and access to storage. Multiple virtual machines can share one physical computer while remaining separate environments.
Two ways to add capacity
- Scale vertically: give an individual machine more resources, such as additional CPU or memory.
- Scale horizontally: add more machines and distribute work between them.
Scalability and elasticity
Scalability is the ability to handle a larger workload by adding capacity. Elasticity is the ability to adjust that capacity as demand changes, including reducing it again when demand falls.
For example, a learning website might need more capacity during exam week and less afterwards. Adding several web servers is horizontal scaling; adjusting their number with demand demonstrates elasticity.
Where load balancing fits
A load balancer distributes requests across available servers. Applications also need suitable data storage and session handling; adding servers alone does not remove every bottleneck.