Présentation de l’architecture scalable
Commençons par l’étymologie. Puis chutons sur la définition.
Explications autour de l’étymologie
René J. Chevance tente de remonter jusqu’à l’étymologie du mot « scalable » pour expliquer le concept d’architecture scalable. Il pense que ce terme vient du mot Anglais « scalability ». Ce dernier est issu du verbe « to scale », il n’existe pas d’équivalence parfaite en Français. Néanmoins, la signification la plus proche est « changer d’échelle ». Donc, l’architecture scalable se traduirait comme :
- Passage à l’échelle ;
- Capacité à monter en puissance ;
- Évolutibilité ;
- Extension graduelle ;
- Facteur d’échelle ;
- Extensibilité ;
- Scalabilité.
Définition de l’architecture scalable
L’architecture scalable désigne la capacité de tout système à accroître ses capacités de calcul sous une charge accrue, lorsque les ressources sont ajoutées.
Autrement dit, c’est la capacité de tout dispositif informatique à s’adapter au rythme de la demande. Généralement, les capacités d’un matériel sont fixes. Ce qui signifie qu’il existe une limite dans le nombre de demandes pouvant être traitées dans un temps donné. Au-delà de ces seuils, les dispositifs informatiques doivent s’adapter. C’est ce que l’on appelle la scalabilité, extensibilité ou montée en puissance. Un tel environnement est appelé architecture scalable.
En guise d’exemple, une entreprise peut mettre en place un dispositif informatique capable de traiter 1000 demandes de clients par minute. Si les demandes par minute passent à 1500, l’entreprise peut rencontrer des difficultés à traiter les requêtes des nouveaux et anciens clients. C’est dans de telles circonstances qu’une architecture scalable, extensive ou évolutive trouve tout son intérêt.
Outils de mise en place de l’architecture scalable
La mise en place d’une architecture scalable fait intervenir plusieurs types d’évolutibilité.
L’évolutibilité horizontale : les répartiteurs de charge
Dans ce cas de figure, l’ajout d’autres ordinateurs au dispositif permet de faire face à la demande accrue. Ainsi, grâce aux répartiteurs de charge, on procède à une répartition des tâches entre les machines. Cette technique est récurrente pour mettre en place une architecture scalable sur les serveurs web. Les algorithmes de répartition repartissent les différentes tâches sur l’ensemble des ordinateurs. Cela optimise les temps de réponse et rend le système plus efficace. Cette répartition ne se fait pas au hasard. L’algorithme prend en compte la nature, la taille, la dépendance (vis-à-vis des autres) et la séparabilité de la tâche.
L’évolutibilité verticale : augmentation des ressources de calcul
Ici, l’on utilise un ordinateur qui offre plusieurs possibilités d’ajout de pièces. Autrement dit, une machine sur laquelle on peut mettre de nombreux processeurs, une grande quantité de mémoire, des cartes mères et plusieurs disques durs. Un tel dispositif est très onéreux, mais nécessaire pour mettre en place une architecture scalable. Ainsi, le système pourra tenir lorsque les demandes en ressources augmentent.
L’évolutibilité architecturale : traitement asynchrone
L’application créée utilise des requêtes asynchrones (avec AJAX, par exemple) et des serveurs complémentaires dans son backend. Le fonctionnement en mode client-serveur met en place ce type d’architecture scalable. En front, vous avez une application qui émet plusieurs requêtes parallèles. En back, un réseau de serveurs (web, applicatif et de base des données) qui les traitent. Ces serveurs s’adaptent au rythme des requêtes asynchrones du client.
_____________________________________________________________________________
Passionné par les méthodes Agile et les Architectures Réactives, je travaille depuis plusieurs années au cœur de Directions des Systèmes et d’Informations.
N’hésitez pas à me faire un retour sur cet article ou à me contacter sur LinkedIn pour partager nos actualités !