Cloud Elasticity is the property of a cloud to grow or shrink capacity for CPU, memory, and storage resources to adapt to the changing demands of an organization. Cloud Elasticity can be automatic, without need to perform capacity planning in advance of the occasion, or it can be a manual process where the organization is notified they are running low on resources and can then decide to add or reduce capacity when needed. Monitoring tools offered by the cloud provider dynamically adjust the resources allocated to an organization without impacting existing cloud-based operations.
A cloud provider is said to have more or less elasticity depending on the degree to which it is able to adapt to workload changes by provisioning or deprovisioning resources autonomously to match demand as closely as possible. This eliminates the need for IT administration staff to monitor resources to determine if additional CPU, memory, or storage resources are needed, or whether excess capacity can be decommissioned.
Cloud Elasticity is often associated with horizontal scaling (scale-out) architecture, and it generally associated with public cloud provider resources that are billed on a pay-as-you-go basis. This approach brings real-time cloud expenditures more closely in alignment with the actual consumption of cloud services, for example when virtual machines (VMs) are spun up or down as demand for a particular application or service varies over time.
Cloud Elasticity provides businesses and IT organizations the ability to meet any unexpected jump in demand, without the need to maintain standby equipment to handle that demand. An organization that normally runs certain processes on-premises can ‘cloudburst’ to take advantage of Cloud Elasticity and meet that demand, returning to on-premises operations only when the demand has passed. Thus, the result of cloud elasticity is savings in infrastructure costs, in human capital, and in overall IT costs.
Without Cloud Elasticity, organizations would have to pay for capacity that remained unused for most of the time, as well as manage and maintain that capacity with OS upgrades, patches, and component failures. It is Cloud Elasticity that in many ways defines cloud computing and differentiates it from other computing models such as client-server, grid computing, or legacy infrastructure.
Cloud Elasticity helps businesses avoid either over-provisioning (deploying and allocating more IT resources than needed to serve current demands) or under-provisioning (not allocating enough IT resources to meet existing or imminent demand).
Organizations that over-provision spend more than is necessary to meet their needs, wasting valuable capital which could be applied elsewhere. Even if an organization is already utilizing public cloud, without elasticity, thousands of dollars could be wasted on unused VMs every year.
Under-provisioning can lead to the inability to serve existing demand, which could lead to unacceptable latency, user dissatisfaction, and ultimately loss of business as customers abandon long online and take their business to more responsive organizations. In this way the lack of Cloud Elasticity can lead to lost business and severe bottom-line impacts.
Cloud Elasticity enables organizations to rapidly scale capacity up or down, either automatically or manually. Cloud Elasticity can refer to ‘cloudbursting’ from on-premises infrastructure into the public cloud for example to meet a sudden or seasonal demand. Cloud Elasticity can also refer to the ability to grow or shrink the resources used by a cloud-based application.
Cloud Elasticity can be triggered and executed automatically based on workload trends, or can be manually instantiated, often in minutes. Before organizations had the ability to leverage Cloud Elasticity, they would have to either have additional stand-by capacity already on hand or would need to order, configure, and install additional capacity, a process which could take weeks or months.
If and when demand eases, capacity can be removed in minutes. In this manner organizations pay only for the amount of resources in use at any given time, without the need to acquire or retire on-premises infrastructure to meet elastic demand.
Typical use cases for Cloud Elasticity include
The benefits of cloud elasticity include:
Agility: By eliminating the need to purchase, configure, and install new infrastructure when demand changes, Cloud Elasticity prevents the need to plan for such unexpected demand spikes, and enables organizations to meet any unexpected demand, whether due to seasonal spike, mention on Reddit, or selection by Oprah’s book club.
Pay-as-needed pricing: Rather than paying for infrastructure whether or not is is being used, Cloud Elasticity enables organizations to pay only for the resources that are in use at any given point tin time, closely tracking IT expenditures to the actual demand in real-time. In this way, although spending may fluctuate, organizations can ‘right-size’ their infrastructure as elasticity automatically allocates or deallocates resources on the basis of real-time demand. Amazon has stated that organizations that adopt its instance scheduler with their EC2 cloud service can achieve savings of over 60 percent versus organizations that do not.
High Availability: Cloud elasticity facilitates both high availability and fault tolerance, since VMs or containers can be replicated if they appear to be failing, helping to ensure that business services are uninterrupted and that users do not experience downtime. This helps ensure that users perceive a consistent and predictable experience, even as resources are provisioned or deprovisioned automatically and without impact on operations.
Efficiency: As with most automations, the ability to autonomously adjust cloud resources as needed enables IT staff to shift their focus away from provisioning and onto projects that are more beneficial to the organization.
Speed/Time-to-market: organizations have access to capacity in minutes instead of the weeks or months it may take through a traditional procurement process.
Cloud Elasticity is only useful to organizations that experience rapid or periodic increases or decreases in demand for IT services. Organizations with predictable, steady demand most likely would not find an advantage in the benefits of Cloud Elasticity. Here are some potential challenges with Cloud Elasticity
Time to provision: Although cloud VMs can be spun up on-demand, there can still be a lag time of up to several minutes before it is available for use. This may or not be enough time base on a specific application or service demands, and can impact performance when a sudden surge occurs, such as when a sign-on storm occurs at the beginning of the business day.
Cloud Provider Lock-in: Although all major public cloud providers offer Cloud Elasticity solution, each are implemented differently, which cloud mean that organizations are locked into a single vendor for their cloud needs.
Security Impact: Cloud services that spin up and down in an elastic fashion can impact existing security workflows and require them to be reimagined. Since elastic systems are ephemeral, incident response may be impacted, for example when a server experiencing a security issue spins down as demand wanes.
Resource Availability: Cloud Elasticity does require modifications to existing cloud or on-premises deployments. Organizations that do not outsource their IT management will need to acquire technical expertise including architects, developers, and admins to help ensure that a Cloud Elasticity plan is properly configured to meet the organization’s specific needs. This can also introduce a learning curve delay as the newly acquired talent come up to speed on new environments, languages, and automation tools and processes that need to be implemented.