Cloud Computing and Elasticity vs Scalability
I was recently helping at a Azure Fundamentals exam training day and the concepts of elasticity and scalability came up. Both of which are benefits of the cloud and also things you need to understand for the AZ-900 exam. 😉 So I thought I'd throw my hat into the ring and try my best to explain those two terms and the differences between them.
Elasticity in the cloud allows you to adapt to your workload needs quickly. For example, say you are running the monthly payroll job for your organisation and you need more processing power on the server for that job to run a lot quicker (and let's face it everyone wants their pay check to be processed quickly!) you can add additional resources to that server to complete the task then remove the resources once the task has completed.
Of course on prem you could potentially do that if you had the spare resources, and certainly with the virtual machines I used to manage on VMware or Hyper-V I used to do that, but it always involved a little maths calculating and weighing up if we had the spare capacity, even for a short time. In terms of the cloud, you don't have to worry about that. Cloud providers have LOTS of resources available and generally (sometimes there are resources shortages) you can increase what you need without worrying you are going to bring down the rest of your systems. 😉
Scalability is very similar to elasticity but it's on a more permanent, less makeshift type scale. With scalability in the cloud you can move in lots of directions, so you can scale up or scale out. A good example of scalability is helping a call centre run their operations (which is one of the roles I previously held), often call centres process lots of data, whether that be customer information or how many calls the staff are taking, how longs calls are etc, and on top of that data they do lots of analysis to try and make their services more efficient. As the call centre gets more data, more clients, more contracts the amount of data and data crunching they have to do increases and so does the demand on the infrastructure and services that help to make that happen so scaling out (adding new servers/components to the service) or scaling up (increasing resources to the servers etc) needs to happen on a more permanent basis.
Being able to add resources on an ad hoc basis or on a permanent basis very quickly and knowing if you aren't using them any more you can reduce them and therefore reduce your costs is what I really enjoy about the cloud. 😀
I hope the above helps to clarify what elasticity vs scalability is, but if you have any questions or comments please don't hesitate to reach out or leave a comment below.