What is Scalability?
The ability of a computer to flexibly expand or reduce its computational power, size, and resources dependent on the amount of workload or requests it receives is known as scalability. This becomes critical when a company wishes to expand its resources (or output) to meet the demands of a growing number of customers. Scalability is another crucial aspect of capacity planning. It is of two types- Horizontal Scaling and Vertical Scaling.
What is Horizontal Scaling?
Horizontal scaling is increasing the number of machines available so that multiple client requests can be distributed and processed efficiently. It’s also known as Scaling Out or Scaling In, depending on whether we’re adding or subtracting machines based on the number of requests we receive. Cloud horizontal scaling, on the other hand, refers to adding more servers to satisfy the client’s needs so that the load of requests is distributed among these servers.
Advantages of Horizontal scaling-
1. We can effectively share load by utilizing independent servers.
2. Servers can recover fast, implying that they are more resilient.
3. Scaling and upgrading the servers is simple.
4. Fault tolerance becomes reasonably straightforward.
5. In terms of how many users are added, scaling is linear.
6. The server may be scaled practically endlessly.
Disadvantages of Horizontal Scaling-
1. A lot of more components are needed, such as load balancers, routers, and virtualized software.
2. The licensing charge is more expensive.
3. It is reliant on network communication, which, like vertical scaling, is less efficient than internal communication.
4. Because numerous servers are used, more resources, such as energy, are required.
5. This type of scalability is prone to issues such as data inconsistency.
6. It produces a larger carbon footprint, which is harmful to the environment.
What is Vertical Scaling?
The goal of vertical scaling is to boost the processing capabilities (RAM, CPU, storage, and so on) of our existing computers so that they can process and handle more data. It’s also known as Scaling Up or Scaling Down, depending on whether we’re adding or decreasing computational power in response to the number of requests.
Advantages of Vertical scaling-
1. No extra components, such as load balancers, switches, or routers, are required.
2. There are no inconsistencies in the data.
3. Inter-process communication is faster and more efficient because there is only one machine.
4. There is a reduction in power consumption.
5. Licensing fees are less expensive than horizontal scaling.
6. This form of scaling is simple to implement.
Disadvantages of Vertical Scaling
1. It has only one point of failure, which means that if the machine fails for any reason, the related apps will stop running.
2. Although a server’s scalability can be increased, each server’s scalability has a finite limit.
3. The dangers of downtime are fairly significant.
4. A lot of upkeep is required
5. In vertical scaling, there are numerous vendor-lock issues.
6. High costs are involved in investment.
Differences between Horizontal and Vertical Scaling-