Learn about vertical and linear scaling, as well as basic terminology such as concurrency, response time, performance, and latency distribution. Get to know commonly used cloud architecture patterns, which involve horizontal scaling, queue-centric workflow management, database sharding, and content delivery networks. Implement some key patterns to gain a better understanding.
Examples
Exercises
Context
Scalability is the property of a system to handle a changing demand for resources over time by adding and removing resources from the system. The changing demand can be based on many of reasons, for example:
Vertical scaling, also known as scaling up, is the most traditional form of scaling. It involves utilizing better hardware, such as faster CPUs, CPUs with more cores, larger amounts of memory, faster network switches, or bigger hard drives.
Pros | Cons |
---|---|
Straight forward | Often involves downtime |
Easy to understand | Not able to scale once hardware limits are reached |
No distributed system | Relatively expensive |
Easy to deploy | Hard to scale down |
Horizontal scaling, also known as scaling out, involves adding more nodes to a system. The total workload is then distributed across all nodes.
Pros | Cons |
---|---|
Virtually limitless scalability | More complex |
Low price per node | Distributed system |
Easy to scale out and in | Hard to deploy |