Bird
Raised Fist0
HLDsystem_design~12 mins

Vertical scaling vs horizontal scaling in HLD - Architecture Patterns Compared

Choose your learning style10 modes available
System Overview - Vertical scaling vs horizontal scaling

This system explains two ways to increase computing power: vertical scaling and horizontal scaling. Vertical scaling means making one machine stronger by adding more resources. Horizontal scaling means adding more machines to share the work.

Key requirements include handling more users or data smoothly and choosing the right scaling method based on cost, complexity, and fault tolerance.

Architecture Diagram
          +----------------+                     +----------------+
          |   User Client  |                     |   User Client  |
          +-------+--------+                     +-------+--------+
                  |                                      |
                  |                                      |
          +-------v--------+                     +-------v--------+
          | Load Balancer  |<------------------->| Load Balancer  |
          +-------+--------+                     +-------+--------+
                  |                                      |
        +---------+----------+                 +---------+----------+
        |                    |                 |                    |
+-------v-------+    +-------v-------+ +-------v-------+    +-------v-------+
| Server Node 1 |    | Server Node 2 | | Server Node 3 |    | Server Node 4 |
| (Vertical     |    | (Vertical     | | (Horizontal   |    | (Horizontal   |
|  Scaling)     |    |  Scaling)     | |  Scaling)     |    |  Scaling)     |
+---------------+    +---------------+ +---------------+    +---------------+
        |                    |                 |                    |
        +---------+----------+                 +---------+----------+
                  |                                      |
          +-------v--------+                     +-------v--------+
          |   Database     |                     |   Database     |
          +----------------+                     +----------------+
Components
User Client
client
End user device sending requests
Load Balancer
load_balancer
Distributes incoming requests to servers
Server Node 1
service
Single powerful server with vertical scaling
Server Node 2
service
Another powerful server with vertical scaling
Server Node 3
service
One of multiple servers in horizontal scaling
Server Node 4
service
Another server in horizontal scaling cluster
Database
database
Stores application data
Request Flow - 7 Hops
User Client → Load Balancer
Load Balancer → Server Node 1 or 2 (Vertical Scaling)
Load Balancer → Server Node 3 or 4 (Horizontal Scaling)
Server Node 1 or 2 or 3 or 4 → Database
Database → Server Node 1 or 2 or 3 or 4
Server Node 1 or 2 or 3 or 4 → Load Balancer
Load Balancer → User Client
Failure Scenario
Component Fails:Server Node (Vertical Scaling)
Impact:If the single powerful server fails, the service becomes unavailable until fixed.
Mitigation:Use horizontal scaling with multiple servers to avoid single points of failure.
Architecture Quiz - 3 Questions
Test your understanding
Which scaling method adds more machines to handle increased load?
ACaching
BHorizontal scaling
CVertical scaling
DLoad balancing
Design Principle
This architecture shows how vertical scaling strengthens a single server by adding resources, while horizontal scaling adds more servers to share load. Horizontal scaling improves fault tolerance by avoiding single points of failure, whereas vertical scaling is simpler but limited by hardware capacity.

Practice

(1/5)
1. Which of the following best describes vertical scaling in system design?
easy
A. Using caching to speed up data access
B. Adding more machines to distribute the workload
C. Splitting data across multiple databases
D. Adding more resources like CPU or RAM to a single machine

Solution

  1. Step 1: Understand vertical scaling definition

    Vertical scaling means improving one machine's capacity by adding resources like CPU, RAM, or storage.
  2. Step 2: Compare with other options

    Options B and C describe horizontal scaling or data partitioning, and D is about caching, not scaling.
  3. Final Answer:

    Adding more resources like CPU or RAM to a single machine -> Option D
  4. Quick Check:

    Vertical scaling = adding resources to one machine [OK]
Hint: Vertical scaling = beef up one machine, not add machines [OK]
Common Mistakes:
  • Confusing vertical scaling with horizontal scaling
  • Thinking adding machines is vertical scaling
  • Mixing caching with scaling
2. Which option correctly shows horizontal scaling in a system architecture?
easy
A. Adding multiple servers behind a load balancer
B. Upgrading the CPU and RAM of a single server
C. Increasing the disk size of one database server
D. Using a faster network switch

Solution

  1. Step 1: Identify horizontal scaling characteristics

    Horizontal scaling means adding more machines to share the workload, often managed by a load balancer.
  2. Step 2: Eliminate other options

    Options B and C describe vertical scaling (upgrading one machine), and D is about network hardware, not scaling.
  3. Final Answer:

    Adding multiple servers behind a load balancer -> Option A
  4. Quick Check:

    Horizontal scaling = add machines behind load balancer [OK]
Hint: Horizontal scaling = add servers, vertical = upgrade one [OK]
Common Mistakes:
  • Choosing upgrading one server as horizontal scaling
  • Confusing network upgrades with scaling
  • Ignoring load balancer role
3. Consider a web application initially running on a single server with 8 CPU cores and 16GB RAM. If the traffic doubles, which scaling approach will likely double the capacity most efficiently?
medium
A. Upgrade the server to 16 CPU cores and 32GB RAM (vertical scaling)
B. Add one more identical server and use a load balancer (horizontal scaling)
C. Add caching layer without changing servers
D. Increase database storage size

Solution

  1. Step 1: Analyze capacity needs for doubled traffic

    Doubling traffic usually requires doubling processing power or distributing load.
  2. Step 2: Compare vertical vs horizontal scaling efficiency

    Vertical scaling (Upgrade the server to 16 CPU cores and 32GB RAM (vertical scaling)) can be costly and limited by hardware max. Horizontal scaling (Add one more identical server and use a load balancer (horizontal scaling)) adds another server to share load, often more efficient and scalable.
  3. Final Answer:

    Add one more identical server and use a load balancer (horizontal scaling) -> Option B
  4. Quick Check:

    Doubling capacity = add server (horizontal) better than upgrade [OK]
Hint: Doubling load? Add servers horizontally, not just upgrade one [OK]
Common Mistakes:
  • Assuming vertical scaling always doubles capacity easily
  • Ignoring load balancer role in horizontal scaling
  • Confusing storage increase with processing capacity
4. A system uses vertical scaling by upgrading a server's CPU and RAM. After some time, the server crashes under load. What is the most likely cause?
medium
A. The server reached hardware limits and cannot scale further vertically
B. The load balancer is misconfigured
C. The database storage is full
D. The network bandwidth is too high

Solution

  1. Step 1: Understand vertical scaling limits

    Vertical scaling improves one machine but has physical hardware limits beyond which it cannot handle more load.
  2. Step 2: Analyze crash cause

    Since the server crashes under load after upgrades, it likely hit max capacity. Other options relate to load balancer, storage, or network, which are less likely causes here.
  3. Final Answer:

    The server reached hardware limits and cannot scale further vertically -> Option A
  4. Quick Check:

    Vertical scaling hits hardware limits causing crashes [OK]
Hint: Vertical scaling hits max hardware limits causing failures [OK]
Common Mistakes:
  • Blaming load balancer when none is used
  • Confusing storage issues with CPU/RAM limits
  • Ignoring hardware capacity limits
5. A startup expects rapid user growth and unpredictable traffic spikes. They want a scalable system with minimal downtime and cost efficiency. Which scaling strategy should they prioritize?
hard
A. Vertical scaling by upgrading a powerful single server
B. Relying on manual server upgrades during peak times
C. Horizontal scaling with multiple servers and auto-scaling
D. Using a single server with a large database

Solution

  1. Step 1: Identify startup needs

    Rapid growth and unpredictable spikes require flexible, scalable solutions that can adjust resources quickly without downtime.
  2. Step 2: Evaluate scaling options for flexibility and cost

    Vertical scaling (Vertical scaling by upgrading a powerful single server) is limited and costly for spikes. Manual upgrades (Relying on manual server upgrades during peak times) cause downtime and delay. Single server (Using a single server with a large database) risks failure. Horizontal scaling with auto-scaling (Horizontal scaling with multiple servers and auto-scaling) adds/removes servers dynamically, balancing cost and uptime.
  3. Final Answer:

    Horizontal scaling with multiple servers and auto-scaling -> Option C
  4. Quick Check:

    Rapid growth needs horizontal auto-scaling for cost and uptime [OK]
Hint: Rapid growth? Use horizontal auto-scaling for flexibility [OK]
Common Mistakes:
  • Choosing vertical scaling for unpredictable spikes
  • Ignoring downtime caused by manual upgrades
  • Relying on single server risking failure
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard