*This article could be a summary of content for learning purposes. For more information and knowledge, read the original articles in the References section.
Scalability is the system’s ability to scale (allocate/deallocate) resources. Agility is the ability to scale quickly. If that scaling is happening automatically, then we are talking about Elasticity. All of those terms directly explain the system’s ability to change resources at will.
Scalability: The ability to increase or decrease resources for any given workload. You can add additional resources to service a workload (known as scaling out), or add additional capabilities to manage an increase in demand to the existing resource (known as scaling up). Scalability doesn’t have to be done automatically.
Agility: The ability to react quickly. Cloud services can allocate and deallocate resources quickly. They are provided on-demand via self-service, so vast amounts of computing resources can be provisioned in minutes. There is no manual intervention in provisioning or deprovisioning services.
Elasticity The ability to automatically or dynamically increase or decrease resources as needed. Elastic resources match the current needs, and resources are added or removed automatically to meet future needs when it’s needed (and from the most advantageous geographic location). A distinction between scalability and elasticity is that elasticity is done automatically.