Principes de conception de la fiabilité
Concevoir une application fiable dans le cloud est un processus différent du développement d’applications traditionnelles. Vous aviez peut-être l’habitude d’acheter des niveaux de matériel haut de gamme redondants pour réduire le risque de panne d’une plateforme d’application entière.
Dans le cloud, nous reconnaissons que des échecs se produisent. Au lieu d’essayer d’empêcher toutes les défaillances, l’objectif est de réduire les répercussions d’une défaillance potentielle au niveau de chaque composant.
Pour évaluer votre charge de travail selon les principes d’Azure Well-Architected Framework, consultez l’évaluation de Microsoft Azure Well-Architected.
Les principes de conception fournissent ce qui suit :
- Contexte pour les questions
- Pourquoi un aspect particulier est important
- Dans quelle mesure un aspect est applicable à la fiabilité
Ces principes de conception critiques sont utilisés comme objectifs pour évaluer la fiabilité d’une application déployée sur Azure. Ces objectifs fournissent un framework pour les questions relatives à l’évaluation des applications.
Concevoir en fonction des besoins métier
La fiabilité est un concept subjectif. Pour qu’une application soit suffisamment fiable, elle doit refléter les exigences métier qui l’entourent.
Par exemple, une application stratégique avec un contrat de niveau de service (SLA) de 99.999%
exige un niveau de fiabilité plus élevé qu’une autre application avec un SLA de 95%
.
Les implications sur les coûts sont inévitables lors de l’introduction d’une plus grande fiabilité et d’une haute disponibilité. Ce compromis doit être examiné attentivement.
Concevoir en anticipation des défaillances potentielles
Il est impossible d’éviter les défaillances dans un environnement hautement distribué et multilocataire comme Azure.
En anticipant les défaillances, des composants individuels aux régions Azure entières, vous pouvez développer une solution résiliente et accroître la fiabilité.
Observer l’intégrité de l’application
Avant d’atténuer les problèmes ayant un impact sur la fiabilité de l’application, vous devez d’abord détecter ces problèmes.
En monitorant le fonctionnement d’une application par rapport à son état sain, vous pouvez détecter et prédire les problèmes de fiabilité.
Le monitoring vous permet de prendre des mesures rapides et correctives.
Encourager l’automatisation
L’une des causes principales du temps d’arrêt des applications est l’erreur humaine due au déploiement de logiciels insuffisamment testés ou à une configuration incorrecte.
Pour minimiser la possibilité et les conséquences d’erreurs humaines, il est essentiel de promouvoir l’automatisation dans tous les aspects d’une solution cloud.
L’automatisation améliore les éléments suivants :
- Fiabilité
- Tests automatisés
- Déploiement
- Gestion
Conception de la réparation spontanée
La réparation spontanée décrit la capacité d’un système à gérer automatiquement les défaillances. Les défaillances sont gérées dans le cadre de protocoles de correction prédéfinis. Ces protocoles se connectent aux modes de défaillance dans la solution.
Il s’agit d’un concept avancé qui exige un haut niveau de maturité du système avec des mécanismes de monitoring et d’automatisation.
Dès le départ, la réparation spontanée doit être une aspiration à maximiser la fiabilité.
Concevoir en vue d’un scale-out
Le scale-out est un concept qui se concentre sur la capacité d’un système à répondre à la demande par le biais d’une croissance horizontale. À mesure que le trafic augmente, au lieu d’accroître la taille des ressources existantes, davantage d’unités de ressources sont ajoutées en parallèle.
Les unités d’échelle permettent à un système de gérer des augmentations de trafic attendues et inattendues, essentielles à la fiabilité globale.
Les unités d’échelle réduisent davantage les effets d’une défaillance de ressource unique.