/
Elasticity

Elasticity

Something that is stretchy, it can expand and contract when it needs to

The Cloud has this characteristic because it can grow and shrink as demand changes.

We can expand horizontally (horizontal scaling) or vertically (vertical scaling)

  • Horizontal scaling

    • Replicating resources

    • to

    • or

    • The number of instances is limitless

  • Vertical scaling

    • Adding more resources to a unit

    • to e.g. increasing the number of CPUs or RAM

    • But there is a limit to how much can be added

    • The OS may not be able to physically access the amount of RAM on the new configuration

The fixed capacity problem

The traditional approach to provisioning infrastructure is to use historical data to estimate the number of required components. The problem is that you would either over-estimate or under-estimate the number of components. Leading to panic buying and provisioning of additional units or having wasted capacity.

An example of the above could be the launch of a web application requiring a number of physical web servers, let’s say 5.

As with most launches the number of required physical servers will be less then expected.

But as time progresses and the if the product is successful the initial capacity can be reached very quickly.

You now have to redo the maths and determine what the new capacity should, so you estimate it to be 10 and provision 10 more servers. But there is a downturn in the market and you now have more capacity than you needed

And this cycle of wakamo continues

 

The Cloud Solution

With the cloud model, you still need to do capacity planning, because there is a cost there. But unlike the model above as demand changes, AWS auto-scaling would bring servers in and out as demand changes. So the Capacity and Demand paths are in sync.