J'ai entendu beaucoup de gens utiliser ces deux termes de manière interchangeable. Cependant, à mon avis, il y a une différence entre eux:
SCALABILITÉ - capacité d'un système logiciel à traiter des charges de travail plus élevées avec ses ressources matérielles actuelles (mise à l'échelle verticale) ou avec des ressources matérielles actuelles et supplémentaires (mise à l'échelle horizontale) sans interruption du service d'application;
ÉLASTICITÉ - capacité de la couche matérielle en dessous (généralement l'infrastructure cloud) à augmenter ou réduire le nombre de ressources physiques offertes par cette couche matérielle à la couche logicielle au-dessus. L'augmentation / diminution est déclenchée par des règles métier définies à l'avance (généralement liées aux demandes de l'application). L'augmentation / diminution se fait en temps réel sans interruption physique du service.
Encore une fois, la scalabilité est une caractéristique d'une architecture logicielle liée à la prise en charge d'une charge de travail plus élevée, tandis que l'élasticité est une caractéristique de la couche physique en dessous, entièrement liée aux optimisations du budget matériel.
Ai-je bien saisi la différence entre ces deux caractéristiques architecturales non fonctionnelles? Quelqu'un pourrait-il donner des exemples spécifiques, afin que nous puissions établir une frontière plus distinctive entre ces deux termes?