Aller au contenu

Disponibilité et adaptation à la charge des logiciels

Haute disponibilité

La haute disponibilité d’un logiciel vise à maintenir son fonctionnement, même lorsqu’un incident survient. Sa mise en œuvre repose sur deux volets complémentaires.

Schéma sur la haute disponibilité

Lors de la conception et du développement du logiciel, il faut prévoir son exécution sur plusieurs instances, gérer les défaillances de ses dépendances, et éviter qu’un état conservé dans la mémoire d’une instance empêche une autre instance de prendre le relais.

L’infrastructure sur laquelle le logiciel s’exécute doit aussi prendre en charge la haute disponibilité, en proposant des ressources redondantes, une répartition de la charge, une détection des pannes et un basculement vers les ressources disponibles. Cette disponibilité doit également concerner les bases de données et les autres services nécessaires au bon fonctionnement du logiciel.

Scalabilité

La scalabilité (capacité de mise à l’échelle) d’un logiciel désigne sa capacité à s’adapter à une augmentation temporaire ou permanente de la charge, comme un nombre croissant d’utilisateurs ou de requêtes HTTP, en adaptant les ressources utilisées tout en maintenant des performances satisfaisantes.

Schéma sur la scalabilité

La scalabilité doit être prévue dès la conception et le développement du logiciel, en limitant les goulots d’étranglement et en permettant de répartir les traitements sur plusieurs instances. L’infrastructure doit ensuite permettre d’augmenter les ressources allouées à une instance, comme la puissance de calcul ou la mémoire (scalabilité verticale), ou d’ajouter des instances du logiciel, exécutées dans des conteneurs ou sur des serveurs supplémentaires (scalabilité horizontale). Cette capacité d’adaptation concerne également les serveurs de bases de données et les autres services nécessaires au bon fonctionnement du logiciel.

Elasticité

L’élasticité d’un système désigne sa capacité à adapter automatiquement les ressources utilisées aux variations de la charge de travail. Lorsque la charge augmente, des ressources supplémentaires sont allouées pour maintenir des performances satisfaisantes. Lorsque la charge diminue, les ressources devenues inutiles sont libérées afin de réduire les coûts. Cette adaptation repose sur des mécanismes de supervision et des règles de mise à l’échelle, fondés par exemple sur l’utilisation du processeur, le nombre de requêtes ou la longueur d’une file d’attente. Le logiciel doit être conçu pour supporter ces ajustements, et l’infrastructure doit permettre de les exécuter automatiquement.

Schéma sur l'élasticité