Scalability: la montée en charge
De nos jours, les infrastructures informatiques doivent accueillir un grand nombre de connexions et des variations de connexions extrêmes. Nous l’avons vu récemment avec l’ouverture du service de partage de fichier Mega. En les connexions 10 gigabits se sont chargés en 10 minutes selon le créateur du service.
Wow. I have never seen anything like this. From 0 to 10 Gigabit bandwidth utilization within 10 minutes.
— Kim Dotcom (@KimDotcom) 19 janvier 2013
C’est là qu’intervient la notion de Scalability.
La scalability c’est la capacité d’un système à montée en charge face à des variations de connexions clientes. Elle permet d’anticiper les évolutions de son système.
Il existe deux types de scalability: vertical et horizontal.
Scale vertically (scale Up)
On peut utiliser la métaphore d’un canon (l’arme de guerre) pour expliquer les deux types de scalability. Pour avoir plus de puissance (de capacité de montée en charge), le type vertical, veut qu’on augmente le diamètre du canon. On prend un canon qui tire plus gros, plus fort.
Pour un système informatique, on prend un serveur plus puissant.

Scale horizontally (scale Out)
Le type horizontal préfère prendre plusieurs canons au lieu d’un plus gros. On répartit la puissance sur plusieurs équipements.

Ce type se base sur des technologies d’équilibrage de charge.
Les deux types de scalability proposent des architectures différentes. De nos jours, la scalability horizontale est préférée car elle permet plus de flexibilité.
Le cloud
Les architectures des infrastructures cloud se basent sur les techniques de scalability pour monter en charge. Ils décomposent leur infrastructure en 3 niveaux: le réseau, le stockage et les systèmes.
Chaque niveau se voit agrandir avec une scalabilité horizontale. Vous voulez plus de stockage? On rajoute une seconde baie de disque qui va s’interconnectée avec l’existante. Vous voulez plus de systèmes et de puissance? On rajoute des systèmes.

Ce mode de croissance permet de répondre à des demandes de charge très variable. On peut activer à tout moment des briques pour recevoir de la charge.
La scalabilité s’adapte très bien aux applications Web. Dans tout les cas il faut avoir cette notion dans toutes les couches d’un système et surtout dans les phases de conception, de développement.