In cloud computing, Scalability is not equal to Elasticity and Vice Versa.

Standard

I believe that it’s important to understand terms. And to understand terms scalability and elasticity in cloud computing context, I did a little research on what is the difference between scalability and elasticity when used in context of cloud computing.

e·las·tic·i·ty: The ability of something to change and adapt; adaptability [Dictionary]

scal·a·ble: Able to be changed in size or scale [Dictionary]

So my first step was to lookup meaning of each word in dictionary and honestly, that did helped me understand the meaning of each word but I was not able to appreciate the use of each word in cloud computing terms. I researched a little more came to a conclusion that

  • When we talk about elasticity – it is from cloud platform perspective. By this I mean, it is the characteristic of the “cloud platform” that allows end users to spawn resources in no time. For instance, with a click of a mouse, end users are able to spawn a 10 GIG SQL Azure database. And this characteristic that allows end users to QUICKLY provision resources is what is referred to as elasticity. And alternatively, De-provisioning is “elastic” too. From, a cloud vendor perspective, these means they also should report usage to the end-user and charge end-users for only what they use. It’s important as one of the important characteristic of cloud is that it is supposed to be “Measurable” by end-user
  • Scalability: It refers to ability of an “application” (NOT cloud) to handle INCREASED workload. Traditionally, to meet increased workload, hardware was thrown at the problem. But it had it’s own set of limitation that it was not infinitely scalable because hardware could be upgraded to certain limit only. Now in cloud computing era, we can provision as many resources as we need – but it is important to architect the application in a way that embraces “scalability”. So when you deploy an app on a cloud platform, it does NOT “scale” automatically and the app should be architected to embrace scalability – On other hand, you are guaranteed “elasticity” by the cloud vendor.

Let’s take an example.

Suppose I have an app and I wish to deploy it on Windows Azure. Now, it’s my responsibility to architect app to embrace scalability by making my application stateless, etc, etc. Now once I have architected my app to embrace scalability – I deploy it on Windows Azure. And here, Windows Azure gives my app the “elasticity” it may need. That means, I can provision/de-provision resources at my will.

Thus, In cloud computing,

Scalability ≠ Elasticity

0 thoughts on “In cloud computing, Scalability is not equal to Elasticity and Vice Versa.

  1. Ash

    This is an interesting discussion… so does Cloud possess the feature of ‘scalability’? – I assume that the context you are speaking is with respect to IaaS, if I am not wrong. Nevertheless the question still stands as to which type offers ‘scalability’ feature – SaaS? Will be happy to hear your suggestions…

    Cheers
    Ash

    • You also asked: “Nevertheless the question still stands as to which type offers ‘scalability’ feature – SaaS?” . Ans: can you please expand your question because i not able to figure out exactly what you mean. sorry for that. In general, the conclusion of the blog post was: “cloud” is “elastic” and “apps” are “scalable”.

      • Ash

        Yes, the later part of your first reply has the answer to the question in your second reply. To be a little more specific in my question with view to add clarity, you said

        Cloud (IaaS in this case) is elastic – completely agreed

        Apps (SaaS in this case or probably any application) is scalable – agreed to this also

        Correct me if I am wrong,
        When referring to IaaS, we say we can scale up and down based on our demand. So this is not referred to as scalability but elasticity – is this your conclusion??

        • Interesting Q.
          [rephrasing your statement and adding a comment]

          Rephrasing: When referring to IaaS (/PaaS), we say we can scale up and down (apps/unit of deployment) on demand.

          Comment: So that means that apps/unit-of-deployment are being scaled up and down by leveraging the elasticity of the cloud (IaaS/PaaS)

What do you think? Leave a comment below.