Scalability is a feature of Cloud Computing, But what is this terminology Scalability actually means ? We wrote in the previous detailed article on Cloud Computing that Cloud Computing’s one of the feature is “Scalability by decoupling the use of swings and infrastructure limitations”. This is an explanatory article in details on Scalability in Cloud Computing.
What Scalability actually means ?
In the context of software scalability means that a system of hardware and software, increases its performance with the addition of resources or other nodes / computers in a defined area in a proportional or linear pattern. Resources can be, for example, CPU, RAM, hard drives, network bandwidth etc. Scalability of a system measured with scaling factor or SpeedUp.
One can increase the performance of a system in two different ways:
- By scaling up also known as vertical scaling
- By scaling out also known as horizontal scaling
Example of scaling up would be the increasing of storage space, adding a CPU or installing a more powerful graphics card. Scaling out means increasing the performance of the system by adding additional computers / nodes. This is the important point of Scalability in Cloud Computing.
Types of Scalability
Spatial scalability has a system or application when the memory requirement in an increasing number of elements to be managed not in at an unacceptably high levels. Temporal spatial scalability comprises by increasing the number of objects which a system will not significantly affect its performance. Structural scalability is distinguished from others, its not an implementation, increasing the number of objects within a defined area even hindered significantly.
Scalability in Cloud Computing
The scaling factor or SpeedUp describes the actual performance gain of an additional resource unit. For example, a second CPU to dedicate its 90% extra performance. The term Super-linear scalability is used when the scaling factor adds greater resources.
Cloud Computing system now scales as been proven in practice, using layered model for its implementation, because with this approach to Scalability, the individual layers and each layer logically gets separated from each other can be scaled themselves.
Scalability is used in Cloud Computing for Scaling for database access, horizontal and vertical fragmentation, or to reduce DNS lookups and number of objects and there by increasing the speed. Scalability for these reasons can not be isolated from Cloud Computing and that is the reason why Scalability is a feature of Cloud Computing.