Rapid Elasticity in Cloud Computing

Elasticity is a 'rename' of scalability, a known non-functional requirement in IT architecture for many years already. Scalability is the ability to add or remove capacity, mostly processing, memory, or both, from an IT environment.

Ability to dynamically scale the services provided directly to customers' need for space and other services. It is one of the five fundamental aspects of cloud computing.

It is usually done in two ways:

  • Horizontal Scalability: Adding or removing nodes, servers, or instances to or from a pool, such as a cluster or a farm.
  • Vertical Scalability: Adding or removing resources to an existing node, server, or instance to increase the capacity of a node, server, or instance.

Most implementations of scalability are implemented using the horizontal method, as it is the easiest to implement, especially in the current web-based world we live in. Vertical Scaling is less dynamic because this requires reboots of systems, sometimes adding physical components to servers.

A well-known example is adding a load balancer in front of a farm of web servers that distributes the requests.

Why call it Elasticity?

Traditional IT environments have scalability built into their architecture, but scaling up or down isn't done very often. It has to do with Scaling and the amount of time, effort, and cost.

Servers have to be purchased, operations need to be screwed into server racks, installed and configured, and then the test team needs to verify functioning, and only after that's done can you get the big There are. And you don't just buy a server for a few months - typically, it's three to five years. So it is a long-term investment that you make.

The latch is doing the same, but more like a rubber band. You 'stretch' the ability when you need it and 'release' it when you don't have it. And this is possible because of some of the other features of cloud computing, such as "resource pooling" and "on-demand self-service". Combining these features with advanced image management capabilities allows you to scale more efficiently.

Three forms for scalability

Below I describe the three forms of scalability as I see them, describing what makes them different from each other.

  • Manual Scaling

Manual scalability begins with forecasting the expected workload on a cluster or farm of resources, then manually adding resources to add capacity. Ordering, installing, and configuring physical resources takes a lot of time, so forecasting needs to be done weeks, if not months, in advance. It is mostly done using physical servers, which are installed and configured manually.

Another downside of manual scalability is that removing resources does not result in cost savings because the physical server has already been paid for.

  • Semi-automated Scaling

Semi-automated scalability takes advantage of virtual servers, which are provisioned (installed) using predefined images. A manual forecast or automated warning of system monitoring tooling will trigger operations to expand or reduce the cluster or farm of resources.

Using predefined, tested, and approved images, every new virtual server will be the same as others (except for some minor configuration), which gives you repetitive results. It also reduced the manual labor on the systems significantly, and it is a well-known fact that manual actions on systems cause around 70 to 80 percent of all errors. There are also huge benefits to using a virtual server; this saves costs after the virtual server is de-provisioned. The freed resources can be directly used for other purposes.

  • Elastic Scaling (fully automatic Scaling)

Elasticity, or fully automatic scalability, takes advantage of the same concepts that semi-automatic scalability does but removes any manual labor required to increase or decrease capacity. Everything is controlled by a trigger from the System Monitoring tooling, which gives you this "rubber band" effect. If more capacity is needed now, it is added now and there in minutes. Depending on the system monitoring tooling, the capacity is immediately reduced.

Scalability vs. Elasticity in Cloud Computing

Imagine a restaurant in an excellent location. It can accommodate up to 30 customers, including outdoor seating. Customers come and go throughout the day. Therefore restaurants rarely exceed their seating capacity.

The restaurant increases and decreases its seating capacity

within the limits of its seating area. But the staff adds a table or two to lunch and dinner when more people stream in with an appetite. Then they remove the tables and chairs to de-clutter the space.

A nearby center hosts a bi-annual event that attracts hundreds of attendees for the week-long convention.

The restaurant often sees increased traffic during convention weeks. The demand is usually so high that it has to drive away customers. It often loses business and customers to nearby competitors. The restaurant has disappointed those potential customers for two years in a row.

Elasticity allows a cloud provider's customers to achieve cost savings, which are often the main reason for adopting cloud services.

Depending on the type of cloud service, discounts are sometimes offered for long-term contracts with cloud providers. If you are willing to charge a higher price and not be locked in, you get flexibility.

Let's look at some examples where we can use it.

Cloud Rapid Elasticity Example 1

Let us tell you that 10 servers are needed for a three-month project. The company can provide cloud services within minutes, pay a small monthly OpEx fee to run them, not a large upfront CapEx cost, and decommission them at the end of three months at no charge.

We can compare this to before cloud computing became available. Let's say a customer comes to us with the same opportunity, and we have to move to fulfill the opportunity. We have to buy 10 more servers as a huge capital cost.

When the project is complete at the end of three months, we'll have servers left when we don't need them anymore. It's not economical, which could mean we have to forgo the opportunity.

Because cloud services are much more cost-efficient, we are more likely to take this opportunity, giving us an advantage over our competitors.

Cloud Rapid Elasticity Example 2

Let's say we are an eCommerce store. We're probably going to get more seasonal demand around Christmas time. We can automatically spin up new servers using cloud computing as demand grows.

It works to monitor the load on the CPU, memory, bandwidth of the server, etc. When it reaches a certain threshold, we can automatically add new servers to the pool to help meet demand. When demand drops again, we may have another lower limit below which we automatically shut down the server. We can use it to automatically move our resources in and out to meet current demand.

Cloud-based software service example

If we need to use cloud-based software for a short period, we can pay for it instead of buying a one-time perpetual license. Most software as service companies offers a range of pricing options that support different features and duration lengths to choose the most cost-effective one.

There will often be monthly pricing options, so if you need occasional access, you can pay for it as and when needed.

What is the Purpose of Cloud Elasticity?

Cloud elasticity helps users prevent over-provisioning or under-provisioning system resources. Over-provisioning refers to a scenario where you buy more capacity than you need.

Rapid Elasticity in Cloud Computing

Under-provisioning refers to allocating fewer resources than you are used to.

Rapid Elasticity in Cloud Computing

Over-provisioning leads to wastage of cloud costs, while under-provisioning can lead to server outages as the available servers overwork. Server shutdowns result in revenue loss and customer dissatisfaction, which is bad for business.

Scaling with Elasticity provides a middle ground.

Rapid Elasticity in Cloud Computing

Elasticity is ideal for short-term needs, such as handling website traffic spikes and database backups.

But Elasticity Cloud also helps to streamline service delivery when combined with scalability. For example, by spinning up additional VMs in the same server, you create more capacity in that server to handle dynamic workload surges.

So, how does cloud elasticity work in a business environment?

Rapid Elasticity Use Cases and Examples

At work, three excellent examples of cloud elasticity include e-commerce, insurance, and streaming services.

Use case one: Insurance.

Let's say you are in the auto insurance business. Perhaps your customers renew auto policies at roughly the same time every year. Policyholders will rush to exceed the renewal deadline. You can expect a surge in traffic when you arrive at that time.

If you rely on scalability alone, a traffic spike can quickly overwhelm your provisioned virtual machine, causing service outages. It will result in a loss of revenue and customers.

But if you have "leased" a few more virtual machines, you can handle the traffic for the entire policy renewal period. Thus, you will have multiple scalable virtual machines to manage demand in real-time.

Policyholders wouldn't notice any changes in performance whether you served more customers this year than the previous year. To reduce cloud spending, you can then release some of them to virtual machines when you no longer need them, such as during off-peak months.

An Elastic Cloud Platform will let you do just that. It will only charge you for the resources you use on a pay-per-use basis and not for the number of virtual machines you employ.

Use case two: e-commerce.

The more effectively you run your awareness campaign, the more potential buyers' interest you can expect to peak. Let's say you run a limited-time offer on notebooks to mark your anniversary, Black Friday, or a techno celebration. You can expect more traffic and server requests during that time.

New buyers will register new accounts. This will put a lot of load on your server during the campaign's duration compared to most times of the year.

Existing customers will also revisit abandoned trains from old wishlists or try to redeem accumulated points.

You can provide more resources to absorb the high festive season demand with an elastic platform. After that, you can return the excess capacity to your cloud provider and keep what is doable in everyday operations.

Use case three: Streaming services.

Netflix is probably the best example to use here. When the streaming service released all 13 episodes of House of Cards' second season, viewership jumped to 16% of Netflix's subscribers, compared to just 2% for the first season's premiere weekend.

Those subscribers streamed one of those episodes within seven to ten hours that Friday. Now, Netflix has over 50 million subscribers (February 2014). So a 16% jump in viewership means that over 8 million subscribers streamed a portion of the show in a single day within a workday.

Netflix engineers have repeatedly stated that they take advantage of the Elastic Cloud services by AWS to serve multiple such server requests within a short period and with zero downtime.

Bottom line: If your cloud provider offers Cloud Elasticity by default, and you have activated the feature in your account, the platform will allocate you unlimited resources at any time. It means that you will be able to handle both sudden and expected workload spikes.

Benefits and Limitations of Cloud Elasticity

Elasticity in the cloud has many powerful benefits.

  • Elasticity balances performance with cost-effectiveness

An Elastic Cloud provider provides system monitoring tools that track resource usage. Then they automatically analyze resource allocation versus usage. The goal is always to ensure that these two metrics match to ensure that the system performs cost-effectively at its peak.

Cloud providers also price it on a pay-per-use model, allowing you to pay for what you use and no more. The pay-as-you-expansion model will let you add new infrastructure components to prepare them for growth.

  • It helps in providing smooth services.

Cloud elasticity combines with cloud scalability to ensure that both the customer and the cloud platform meet changing computing needs when the need arises.

For a cloud platform, Elasticity helps keep customers happy.

While scalability helps it handle long-term growth, Elasticity currently ensures flawless service availability. It also helps prevent system overloading or runaway cloud costs due to over-provisioning.

But, what are the limits or disadvantages of cloud elasticity?

Cloud elasticity may not be for everyone. Cloud scalability alone may be sufficient if you have a relatively stable demand for your products or services online.

For example, if you run a business that doesn't experience seasonal or occasional spikes in server requests, you may not mind using scalability without Elasticity. Keep in mind that Elasticity requires scalability, but not vice versa.

Still, no one could have predicted that you might need to take advantage of a sudden wave of interest in your company. So, what do you do when you need to be up for that opportunity but don't want to ruin your cloud budget speculation? Enter cloud cost optimization.

How is cloud cost optimization related to cloud elasticity?

Elasticity uses dynamic variations to align computing resources to the demands of the workload as closely as possible to prevent wastage and promote cost-efficiency. Another goal is usually to ensure that your systems can continue to serve customers satisfactorily, even when bombarded by heavy, sudden workloads.

But not all cloud platform services support the Scaling in and out of cloud elasticity.

For example. Some AWS services include Elasticity as a part of their offerings, such as Amazon Simple Storage Service (S3), Amazon Simple Queue Service (SQS), and Amazon Aurora. Amazon Aurora qualifies as serverless Elastic, while others like Amazon Elastic Compute Cloud (EC2) integrate with Amazon Auto Scaling and support Elastic.

Whether or not you use the Elastic service to reduce cloud costs dynamically, you'll want to increase your cloud cost visibility in a way that Amazon Cloud Watch doesn't offer.

CloudZero allows engineering teams to track and oversee the specific costs and services driving their products, facilities, etc. You can group costs by feature, product, service, or account to uncover unique insights about your cloud costs that will help you answer what's changing, why, and why you want to know more about it.

You can also measure and monitor your unit costs, such as cost per customer. Here's a look at Cloud Xero's cost per customer report, where you can uncover important cost information about your customers, which can help guide your engineering and pricing decisions.