Let’s discuss different types of scaling:
Vertical scaling
Vertical scaling (also known as scaling up) expands a system’s scalability by adding more power to an existing machine. In other words, vertical scaling refers to improving an application’s capability via increasing hardware capacity.Advantages
- Simple to implement
- Easier to manage
- Data consistent
Disadvantages
- Risk of high downtime
- Harder to upgrade
- Can be a single point of failure
Horizontal scaling
Horizontal scaling (also known as scaling out) expands a system’s scale by adding more machines. It improves the performance of the server by adding more instances to the existing pool of servers, allowing the load to be distributed more evenly.Advantages
- Increased redundancy
- Better fault tolerance
- Flexible and efficient
- Easier to upgrade
Disadvantages
- Increased complexity
- Data inconsistency
- Increased load on downstream services