Scalability means the ability to handle a growing amount of work. But which time of scalability are you needing?

Autoscaling, or automatic scaling, is a method used in cloud computing to dynamically adjust the amount of computational resources.

Autoscaling can be done by adding more capacity, to existing systems, or distributing workloads across additional machines, to accommodate growing demands. This has led to two types of scalabilities: vertical and horizontal.

Vertical Scalability

With vertical scalability, also referred as scaling up, more capacity is added to existing infrastructure, for example by adding more CPU or RAM to a server or a DB.

Horizontal Scalability

With horizontal scaling, also referred as scaling out, more machines are added to the distributed workloads. For example by adding more servers, or by adding more nodes to a DB cluster.

Which one is better?

None of the two is “better”. Vertical scaling is simple, gives an immediate performance boost, and, for smaller clusters, is cost effective. But has some limitations, like hardware limits and bottlenecks. Often, requires downtime. And, applied at larger scale, can be costly. Also, it does not cover all kind of issues, as geographical coverage.
On the other hand, horizontal scalability, can open new workloads and opportunities, for example by having systems nearer to where the workload has to be executed. Can provide fault tolerance, and redundancy. Improves performance, through load distribution. And offers cost efficiency at scale.
At the same time, this does not come for free. This model increases the complexity, requires more attention for data consistency, and, if the load is spread over large geographical areas, can introduce a significant latency.

Conclusion

As usual, in engineering there is no absolute reply, the right approach depends on business requirements, and may vary with the time. For a quick comparinson, you may find useful to following table.

ApprochProsCons
Vertical Scalability– Simple
– Immediate improvements
– Cost effective for smaller clusters
– Affected by hardware limits and bottlenecks
– Require downtime
– Costly at larger scale
– Does not offer geographical coverage
Horizontal Scalability– Fault tolerance and redundancy
– Improves performance through load distribution
– Offers cost efficiency at scale
– Increases complexity
– Requires more attention for data consistency
– Can introduce a significant latency.

Leave a Reply

Your email address will not be published. Required fields are marked *