What are the similarities and differences between cloud elasticity and cloud scalability, and what do they mean for you?
There are many aspects of cloud computing that CIOs, cloud engineers 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 evaluate. Two additional criteria that have become increasingly important are 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 the actual amount of resources needed at any given point in time.
Scalability, on the other hand, 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 adding resources to existing instances—called scaling up or vertical scaling—and/or adding more copies of existing instances—called scaling out or 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, DevOps and other environments that have ever-changing demands on infrastructure services. For businesses that have a predictable workload where capacity planning and performance are stable and have the ability to predict the constant workload (or growth), cloud scalability may be the better cost-savings 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.
Executed properly, capitalizing on elasticity can result in savings on infrastructure costs, overall. Not everyone can benefit from elastic services, however. 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 requires that all resources in the infrastructure be elastic. This includes (but is 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 be guaranteed. It depends on the environment.
Cloud elasticity is a popular feature associated with scale-out solutions (horizontal scaling), and it allows for resources to be dynamically added or removed when needed. Elasticity is generally used 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 at 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 where cloud elasticity is necessary would be in retail during increased seasonal activity. For example, during the holiday season (e.g., Black Friday spikes and special sales) 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. It can also provide big cost savings to retail companies looking to optimize their IT spend, if packaged well by the service provider.
Cloud scalability includes the ability to increase workload size within existing infrastructure (hardware, software, etc.) without impacting performance. The resources required to support scalability 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—sometimes linearly). This means 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 they 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 is a planned event and static for the worse-case workload scenario.
For example, say 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, they may purchase provisioned infrastructure (e.g., compute, network and storage) so that the database application has the room to grow to its maximum performance and capacity. In other words, you can 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 offering 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. There is a rule of thumb that 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.
IBM Turbonomic Application Resource Management
IBM Turbonomic Application Resource Management 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, but it also keeps your infrastructures right-sized for scalability and elasticity in real-time for on-premises, hybrid and cloud environments.
Try out IBM Turbonomic Application Resource Management today.