There are many aspects of cloud computing CIOs and IT managers should consider when deciding to add cloud services to their infrastructure. Cost, security, performance, availability, and reliability are some common key areas to consider. Another criterion that has been added to the list recently is cloud scalability and cloud elasticity.
Many have used these terms interchangeably but there are distinct differences between scalability and elasticity. Understanding these differences is very important to ensuring the needs of the business are properly met.
Scalability vs. Elasticity
The purpose of elasticity is to match the resources allocated with actual amount of resources needed at any given point in time. Scalability handles the changing needs of an application within the confines of the infrastructure via statically adding or removing resources to meet applications demands if needed. In most cases, this is handled by scaling up (vertical scaling) and/or scaling out (horizontal scaling). In addition, scalability can be more granular and targeted in nature than elasticity when it comes to sizing.
Common use cases where cloud elasticity works well include e-commerce and retail, SaaS, mobile, Dev Ops, and other environments that have ever changing demands on infrastructure services. Businesses that have a predictable workload where capacity planning and performance are stable and have the ability to predict the constant workload or a growth cloud scalability may be the better cost saving choice.
Elasticity is the ability to grow or shrink infrastructure resources dynamically as needed to adapt to workload changes in an autonomic manner, maximizing the use of resources. This can result in savings in infrastructure costs overall. Not everyone can benefit from elastic services though. Environments that do not experience sudden or cyclical changes in demand may not benefit from the cost savings elastic services offer. Use of “Elastic Services” generally implies all resources in the infrastructure be elastic. This includes but not limited to hardware, software, QoS and other policies, connectivity, and other resources that are used in elastic applications. This may become a negative trait where performance of certain applications must have guaranteed performance. It depends on the environment.
Cloud elasticity is a popular feature associated with scale-out solutions (horizontal scaling), which allows for resources to be dynamically added or removed when needed. Elasticity is generally associated with public cloud resources and is more commonly featured in pay-per-use or pay-as-you-grow services. This means IT managers are not paying for more resources than they are consuming and any given time. In virtualized environments cloud elasticity could include the ability to dynamically deploy new virtual machines or shutdown inactive virtual machines.
A use case that could easily have the need for cloud elasticity would be in retail with increased seasonal activity. For example, during the holiday season for black Friday spikes and special sales during this season there can be a sudden increased demand on the system. Instead of spending budget on additional permanent infrastructure capacity to handle a couple months of high load out of the year, this is a good opportunity to use an elastic solution. The additional infrastructure to handle the increased volume is only used in a pay-as-you-grow model and then “shrinks” back to a lower capacity for the rest of the year. This also allows for additional sudden and unanticipated sales activities throughout the year if needed without impacting performance or availability. This can give IT managers the security of unlimited headroom when needed. This can also be a big cost savings to retail companies looking to optimize their IT spend if packaged well by the service provider.
Scalability includes the ability to increase workload size within existing infrastructure (hardware, software, etc.) without impacting performance. These resources required to support this are usually pre-planned capacity with a certain amount of headroom built in to handle peak demand. Scalability also encompasses the ability to expand with additional infrastructure resources, in some cases without a hard limit. Scalability can either be vertical (scale-up with in a system) or horizontal (scale-out multiple systems in most cases but not always linearly). Therefore, applications have the room to scale up or scale out to prevent a lack of resources from hindering performance. There are cases where the IT manager knows he/she will no longer need resources and will scale down the infrastructure statically to support a new smaller environment. Either increasing or decreasing services and resources this is a planned event and static for the worse case workload scenario.
For example, there is a small database application supported on a server for a small business. Over time as the business grows so will the database and the resource demands of the database application. If the IT manager knows based on the growth rate of the business and/or the database he may purchase provisioned infrastructure (compute, network, and storage) so that the database application has the room to grow to its maximum performance and capacity expected. In other words, scale up performance without having to worry about not meeting SLAs in a steady pay-as-you-grow solution.
Another use case is virtual desktop infrastructure (VDI). There are an expected number of desktops based on employee population. To ensure the ability to support the maximum number of users and meet SLAs, the amount of services purchased must be enough to handle all users logged in at once as a maximum use case. In short, the amount of resources allocated are there to handle the heaviest predicted load without a degradation in performance.
Where Elasticity and Scalability Cross Paths
Some cloud services are considered adaptable solutions where both scalability and elasticity are offered. They allow IT departments to expand or contract their resources and services based on their needs while also offer pay-as-you-grow to scale for performance and resource needs to meet SLAs. Incorporation of both of these capabilities is an important consideration for IT managers whose infrastructures are constantly changing. Do not fall into the sales confusion of services where cloud elasticity and scalability are presented as the same service by public cloud providers.
There are distinct differences between elasticity and scalability. It depends on the business need or use case whether elastic or scalability services will be the best choice. A rule of thumb can help you make that decision: Cloud scalability is generally delivered more readily in private cloud environments while cloud elasticity is generally delivered more readily in public cloud environments.
Turbonomic allows you to effectively manage and optimize both cloud scalability and elasticity. It not only optimizes infrastructures for performance and efficiency while upholding compliance in an autonomic manner, it also keeps infrastructures right sized for scalability and elasticity in real time for on-premises, hybrid, and cloud environments.