In this world of cloud computing, one of the biggest and most important features of the cloud environment is the ability to scale. Let us take an example of a small business company which is deploying its resources and application on the private cloud.
The advantage of deploying your resources on cloud computing is that it is available on demand and has a pay-per-use model. Scaling from an IT resource perspective represents the ability of IT resources to manage and handle increased or decreased use on demand.
Scaling and pay-per-use are not only two characteristics of cloud computing. The characteristics of cloud computing make it easy and more convenient for small businesses.
What is Scaling or Scalability in Cloud Computing?
Scalability is the ability to increase or decrease the size and volume of application or product (software or hardware) to meet the needs of the clients or customers.
A scalable architecture is one in which the components attached are independent of each other. There are two ways to accomplish scaling. One is vertical scaling and other is horizontal.
Here the question arises what is vertical and horizontal scaling. What is the difference between the two? Let’s try to understand what is vertical scaling.
Vertical Scaling – Scaling Up and Scaling Down
In the case of vertical scaling, It resource is replaced by another having higher or lower capacity, vertical scaling is considered to occur. The replacement of IT resources with another having higher capacity than the older one is referred as scaling up.
Scaling down is replacing the IT resource with other having lower capacity. Vertical scaling is generally not preferred over horizontal scaling due to the downtime required while the replacement of resources is taking place.
Both in the case of horizontal and vertical scaling, you only have to pay for the additional services or capacity you are adding to the existing system.
Horizontal Scaling – Scaling Out or Scaling In
Horizontal scaling does not require any replacement. It affords the ability to scale the IT resources wider to deal with the increase in traffic. In Horizontal Scaling, we can connect multiple hardware and software components/entities according to the requirements.
All the components work as a single logical unit and this type of scaling is called horizontal scaling.
Scalability can be in any case increasing memory, disk space, cache processing power etc. In cloud computing, it is deploying a more powerful server with increased memory and disk space.
Vertical scaling is making changes in the existing server it can be allowing more threads increasing cache or more database connections. In horizontal scaling, if the load on any server increases, it transfers it to other server and this is also termed as load balancing.
Scaling is an important feature and is beneficial as we can scale up and down according to our requirement. It should be noted that not all the businesses are deployed in the cloud environment. According to the requirements, the applications are either depleted on the public cloud, private cloud or hybrid cloud.
The changing enterprise demands are changing the way of cloud computing and now with the introduction of fog computing, we not actually need to send all the raw data to the cloud environment.
Example of Scalability in Cloud Computing
The difference between vertical and horizontal computing is easily understood by following this simple example. Horizontal scaling can be more easily understood by following this example
Let us consider an expressway constructed to handle 10,000 vehicles traveling through that passageway. Now after some years, the traffic at expressway increases to 50,000 vehicles. This can be a problem as people have problems with traffic jams while traveling through that way.
The solution of this problem can be constructing more lanes and adding it with the earlier passage lanes. This is a perfect example of horizontal scaling.
To understand vertical scaling, take an example of hotel having capacity of 40 people having 10 rooms which can accommodate maximum 4 people at the same time. Now if any family wanted an extra room than they have to pay for extra room and this will be depending on the no of extra members arriving at the hotel.
Another example can be any cloud service provider can only provide a 1Gb or 4Gb server to its customers and if you want to increase your space than you have to shift from 1Gb to 4Gb and there is no alternative of that. This is quite a problem as shifting may take some time and during that time, all your applications and services will be unavailable.
Scaling can be done at the technology level, component level or product level.
Horizontal Scaling Vs Vertical Scaling
When it comes to comparison between horizontal and vertical scaling, these points are enough to differentiate between the two.
- Vertical scaling is expensive as compared to horizontal scaling because in the case of vertical scaling specialized servers are used whereas in horizontal scaling commodity hardware components.
- IT resources are instantly available in horizontal scaling which is not seen in the vertical scaling.
- No additional IT resources are needed in vertical scaling whereas on another side, additional resources like middleware systems, software are needed.
- Vertical scaling is limited by maximum hardware capacity and horizontal scaling has no limit on hardware capacity.