Scaling

Vertical Scaling

Increasing the power / size of the machine that the app is running on1.

Horizontal scaling

Increase the number of servers that the app is running on. A load balancer must be used to distribute the traffic across the machines. One technique for load balancing is round robin at the DNS server 1. DNS caching can contribute to higher load based on bad luck1. A more sophisticated approach is to use let the load balancer do the round robin to select where the traffic is routed (DNS server returns the load balancer IP).

Horizontal scaling means you cannot use server side session cookies.

Caching

Partitioning

  • Partitioning is separate load or data based some kind of semantic line to separate traffic/load across providing instances

References

1.
David Malan. Lecture 9 Scalability. at https://www.youtube.com/watch?v=-W9F__D3oY4 (2013).