Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between scalability and elasticity?

I've heard many people using both terms interchangeably. However, in my opinion there is difference between them:

SCALABILITY - ability of a software system to process higher amount of workload on its current hardware resources (scale up) or on current and additional hardware resources (scale out) without application service interruption;

ELASTICITY - ability of the hardware layer below (usually cloud infrastructure) to increase or shrink the amount of the physical resources offered by that hardware layer to the software layer above. The increase / decrease is triggered by business rules defined in advance (usually related to application's demands). The increase / decrease happens on the fly without physical service interruption.

Again, scalability is a characteristic of a software architecture related to serving higher amount if workload, where elasticity is a characteristic of the physical layer below, entirely related to hardware budget optimizations.

Have I got the difference between these two non-functional architectural characteristics right? May someone give specific examples, so we could draw more distinctive border between these two terms?

like image 302
Miroslav Dzhokanov Avatar asked Mar 06 '12 16:03

Miroslav Dzhokanov


People also ask

What is the difference between scalability and elasticity in Azure?

Scalable environments only care about increasing capacity to accommodate an increasing workload. Elastic environments care about being able to meet current demands without under/over provisioning, in an autonomic fashion.

Does scalability equal to elasticity in cloud computing?

According to the definition of cloud computing, as stated by NIST in 2011, Elasticity is considered a fundamental characteristic of cloud computing. In contrast, Scalability does not. Elasticity does not exist without Scalability.

What is the difference between elasticity and agility?

Agility for many organizations means reacting swiftly to a changing environment. This is jumping from one task to the next, change requirements, being able to change scope and adapt to an ever moving target. Elastic is stretching out but at the same time holding on to the past, e.g. legacy systems.

What is the meaning of elasticity in cloud computing?

Cloud Elasticity is the property of a cloud to grow or shrink capacity for CPU, memory, and storage resources to adapt to the changing demands of an organization.


1 Answers

Scalability is the ability of the system to accommodate larger loads just by adding resources either making hardware stronger (scale up) or adding additional nodes (scale out).

Elasticity is the ability to fit the resources needed to cope with loads dynamically usually in relation to scale out. So that when the load increases you scale by adding more resources and when demand wanes you shrink back and remove unneeded resources. Elasticity is mostly important in Cloud environments where you pay-per-use and don't want to pay for resources you do not currently need on the one hand, and want to meet rising demand when needed on the other hand.

like image 60
Arnon Rotem-Gal-Oz Avatar answered Sep 28 '22 00:09

Arnon Rotem-Gal-Oz