principes de conception d’excellence opérationnelle
Au cœur du pilier Excellence opérationnelle, les pratiques DevOps garantissent la qualité de la charge de travail par le biais de flux de travail standardisés et de la cohésion de l’équipe. Ce pilier définit des procédures d’exploitation pour les pratiques de développement, l’observabilité et la gestion des mises en production. L’objectif est de réduire la variance des processus, les chances d’erreur humaine et l’interruption des clients. Pour évaluer votre intégrité opérationnelle, commencez par les questions suivantes :
- Exécutez-vous des opérations avec discipline ?
- Les clients utilisent-ils la charge de travail avec une prévisibilité maximale ?
- Comment apprendre de l’expérience et des données collectées pour favoriser l’amélioration continue ?
Les opérations de charge de travail peuvent se transformer en pratiques chaotiques lorsqu’il n’y a pas de propriété ou de leadership clair. Dans ce type d’environnement, les équipes ont souvent recours à des méthodes exécutées avec un effort élevé et produisent des résultats faibles, ce qui conduit à une expérience utilisateur médiocre. Ces approches répondent uniquement aux objectifs à court terme. Les avantages à long terme sont réalisés grâce à l’évaluation continue et aux investissements stratégiques.
Les principes de conception fournissent des lignes directrices pour les stratégies opérationnelles qui doivent être prises en compte pour traiter les causes sous-jacentes et non seulement traiter les symptômes. Commencez par les approches recommandées, puis observez ce qui fonctionne et ce qui ne permet pas d’identifier les domaines d’amélioration. Après avoir défini votre stratégie, continuez à agir à l’aide de la liste de contrôle d’excellence opérationnelle.
Les exigences opérationnelles d’une charge de travail sont aussi importantes que ses besoins métier. Les processus efficaces garantissent que la charge de travail atteint les résultats métier dans les contraintes de conformité, que cette conformité soit organisationnelle ou externe. La clé consiste à trouver la répétabilité avec cohérence.
Les objectifs du pilier Excellence opérationnelle sont de faire la bonne chose, de le faire de la bonne façon et de résoudre les problèmes appropriés en tant qu’équipe.
Si vous atteignez ces objectifs, les charges de travail s’exécutent de manière fiable et prévisible même pendant les périodes de modification. L’incapacité à répondre aux exigences opérationnelles peut entraîner des déploiements défaillants, une expérience utilisateur incohérente et des coûts supplémentaires qui auraient pu être évités par le biais d’une planification appropriée et d’une exécution simplifiée.
Adopter la culture DevOps
permettre aux équipes de développement et d’exploitation d’améliorer continuellement leur conception et processus système en travaillant avec un état d’esprit de collaboration, de responsabilité partagée et de propriété. |
---|
DevOps est une communauté de pratique où la diversité du point de vue et des compétences s’oriente vers une mission. Les équipes doivent favoriser un environnement collaboratif de connaissances partagées au lieu d’apprendre en silo. Utilisez des fonctions partagées pour tenter de surmonter les contraintes de ressources.
Une bonne culture DevOps s’étend sur la responsabilité partagée. Les équipes de développement et d’exploitation doivent aligner leurs objectifs et leurs priorités avec les attentes de leurs clients et garder le focus sur l’entreprise à l’esprit. L’équipe de développement doit impliquer l’équipe des opérations dans la boucle de commentaires afin que les améliorations soient pilotées amont et d’autres équipes bénéficient également. À l’inverse, les équipes d’exploitation sont responsables de la réussite de l’équipe de développement dans leurs résultats métier en partageant des ressources et des commentaires pertinents pour la charge de travail.
En même temps, les pratiques DevOps appliquent des lignes claires de propriété et de responsabilité à chaque équipe. Quel que soit l’endroit où l’application s’exécute, l’équipe de charge de travail est responsable de cette application.
DevOps optimise les tâches opérationnelles afin qu’elles soient efficaces, mais pas fastidieuses. Pour tirer pleinement parti de DevOps, la culture doit optimiser les processus par le biais de la technologie et avoir des processus pour les personnes de l’organisation afin de promouvoir la communication transparente.
Approche | Avantages |
---|---|
Utilisez des systèmes et des outils courants qui favorisent un environnement collaboratif pour la communication et le suivi de la progression. | Les outils et processus courants permettent une communication transparente. Les équipes de développement et d’exploitation bénéficient à la fois de la sensibilisation à la situation dans différents environnements, des problèmes de support courants et des défis globaux et des victoires. Teams connaît déjà les chemins d’escalade existants s’il existe un incident. Un backlog partagé rend les priorités, telles que le travail sur de nouvelles fonctionnalités ou la résolution des bogues, clair. |
Créez un état d’esprit continu d’apprentissage et d’expérimentation tout au long du cycle de développement. Prenez en charge le partage des connaissances entre les équipes et gérez la documentation pour la réutilisation. Effectuez des analyses sans blâme et des évaluations post-publication et/ou post-incident. |
Grâce à des mécanismes d’expérimentation, tels que les tests A/B et le développement de preuves de concept, vous pouvez encourager l’innovation tout en conservant les coûts bas. Partagez des connaissances grâce à la collaboration qui rend l’équipe compétent dans les approches de conception, les outils et les processus. Faire des rétrospectives après un projet permet d’identifier les domaines d’amélioration et de célébrer le succès. |
Adoptez des pratiques agiles éprouvées du secteur qui se concentrent sur l’optimisation des actions. Recherchez des opportunités de « décalage vers la gauche » dans les opérations pour les processus manuels et automatisés, les pratiques de déploiement et d’assurance qualité, ainsi que l’observabilité. |
Les pratiques de développement agiles mènent à des cycles de vie de mise en production plus courts, qui sont un indicateur de valeur métier. La détection, la résolution et la prévention des problèmes plus tôt sont souvent moins intrusives pour le processus. |
Définissez des normes pour toutes les procédures opérationnelles et de développement, puis passez en revue et validez-les à une cadence régulière. Ces procédures incluent les tâches de routine, les processus hors bande, les exercices d’urgence et les situations, le choix d’outils, les procédures de surveillance, les plans de compétence et même la communication avec les parties prenantes et les divulgations des clients. Soyez intentionnel et explicite sur vos décisions. |
Les normes ajoutent la prévisibilité aux opérations et rendent les processus et les pratiques évolutifs. La validation des normes est un excellent moyen de dessiner des points d’amélioration. Préparez-vous aux situations d’urgence et de récupération en effectuant des exercices réguliers. Exécutez avec précision et activez la gouvernance pour éviter les anomalies qui entraînent des risques. |
Tirez parti des équipes d’opérations centralisées avec des compétences spécialisées et une étendue d’expérience. | Il existe un avantage pour utiliser des ressources partagées à la fois pour les opérations et les ressources. Bien que vous possédiez votre charge de travail, l’équipe centralisée vous aide à acquérir des compétences interfonctionnelles, telles que la gestion des incidents, une perspective proactive sur la surveillance et l’expertise en externalisation avec confiance. |
Établir des normes de développement
Optimiser la productivité en standardisant les pratiques de développement, en appliquant des portes de qualité et en effectuant le suivi des progrès et de la réussite grâce à une gestion systématique des changements. |
---|
L’équipe de développement est chargée de résoudre les problèmes de charge de travail avant la mise en production avec une friction minimale. N’oubliez pas l’efficacité du développeur et optimisez les cycles de traitement rapide, du codage aux résultats des tests. Implémentez des processus efficaces et de taille appropriée qui planifient et normalisent les activités techniques et favorisent également le consensus au sein de l’équipe et des parties prenantes.
Approche | Avantages |
---|---|
Documenter les fonctionnalités de charge de travail et capturer les avantages des clients. Dérivez l’étendue et les exigences fonctionnelles et non fonctionnelles détaillées de l’architecture. Créez des modèles d’estimation de dimensionnement pour signaler l’étendue et le coût des tâches impliquées. |
De bonnes spécifications réduisent les coûts opérationnels et les risques d’échec en soutenant des cycles de développement plus productifs et simplifiés. Les développeurs comprennent la conception technique, les objectifs et les critères d’achèvement avant de commencer le cycle de codage. Une bonne documentation facilite la communication et l’intégration reproductibles des nouveaux membres de l’équipe. |
Utilisez une méthodologie de développement de logiciels standard du secteur adaptée aux besoins de votre charge de travail et de votre taille d’équipe . Conservez un backlog partagé entre tous les rôles. |
L’adoption d’une méthodologie connue définit le rythme du projet. Elle supprime les ambiguïtés du processus en donnant aux membres de l’équipe des attentes claires et à la responsabilité. En suivant une liste commune, les tâches peuvent être affinées et hiérarchisées avec les pratiques standard. Le projet aura de meilleures chances d’être livré à temps. Les méthodologies standard aident à la gestion des risques. Avec des révisions de jalons granulaires, les développeurs peuvent résoudre les problèmes potentiels avant qu’ils ne deviennent des afficheurs. |
Utilisez le contrôle de code source unifié pour tous les codes, scripts, modèles de déploiement, définitions de pipeline et documentation associée. La stratégie de branchement doit prendre en charge la mise en production sans friction des fonctionnalités indépendantes et interdépendantes, des correctifs de bogues et des correctifs logiciels. Utilisez des connaissances partagées au sein de l’organisation pour créer votre stratégie de branchement et vos processus de déploiement. |
L’utilisation appropriée du contrôle de code source est essentielle pour prendre en charge les modifications simultanées et le contrôle de version. Conservez un flux de travail reproductible pour libérer des modifications de différentes tailles et risques, effectuer des révisions par les pairs dans le cadre du processus et conserver une piste d’audit. |
Disposer de processus d’assurance qualité qui mettent l’accent sur les tests au début du cycle de vie du développement. Incluez tous les artefacts pour les procédures de test planifiées, notamment les composants d’application, l’infrastructure et les opérations de plan de données qui font partie d’une version ou d’une mise à jour de fonctionnalités. Traitez les artefacts comme immuables lorsqu’ils sont promus par le biais d’environnements, en obtenant confiance chaque fois qu’ils passent par une porte de qualité. Là où c’est pratique, automatisez les case activée de routine. |
L’assurance qualité garantit que les exigences fonctionnelles et non fonctionnelles ont été satisfaites avec confiance, ce qui entraîne un impact positif sur le client. Le fait d’avoir des plans de test garantit la qualité et l’exhaustivité et prend en compte les cas d’échec possibles. Avec des portes de qualité, vous pouvez appliquer les meilleures pratiques pour réduire les risques. L’immuabilité apporte confiance, car elle garantit que le système que vous testez est exactement ce que vous relâchez. Les cycles de test bloquent efficacement la progression, sauf si les critères de qualité sont remplis. |
Favoriser la cohérence à l’aide de guides de style et d’outils, qui appliquent des conventions et adoptent une chaîne d’outils commune pour le développement, le test et la communication avec les parties prenantes. Les normes technologiques pour les développeurs doivent nécessiter l’implémentation de modèles, de conception d’API, de journalisation, de gestion des exceptions et d’autres processus. |
La cohérence dans le code permet de lire et de faciliter la maintenance. Elle réduit également la complexité et permet la réutilisation du code. Les outils et conventions courants aident également les équipes à optimiser les processus sans avoir à répondre aux choix ponctuels. |
Systématiquement et délibérément insister sur la documentation du développeur du code comme écrit. | La documentation sur le code clair garantit que la logique et les fonctionnalités sont facilement comprises lorsque l’ancien code doit être revisité ou lorsque les équipes de développement pivotent. |
Signaler la progression et les tendances pour mesurer l’efficacité. | Les tendances des bogues, des mises à jour ayant échoué, du temps de déploiement, des boucles de commentaires et d’autres métriques sont publiées, et qui entraînent des améliorations. |
Faire évoluer les opérations avec observabilité
obtenir une visibilité sur le système, dériver des insights et prendre des décisions pilotées par les données. |
---|
Créez une culture qui améliore continuellement la qualité en analysant la charge de travail et en prenant en compte tous les piliers de l’infrastructure Azure Well-Architected. Permettre à l’équipe et aux parties prenantes de prendre des décisions à court et à long terme sur de nombreuses facettes en fournissant les données, les statistiques et les tendances nécessaires. Découvrez vos données et apportez des améliorations.
Les opérations conçues à des fins d’observation sont essentielles à la maintenance proactive de l’application, de la qualité et de la sécurité, de la planification de la capacité et de la gestion des produits.
Un aspect crucial de la supervision est l’application à l’aide de la modélisation de l’intégrité pour vous aider à anticiper les problèmes avant qu’ils ne deviennent des incidents et affectent l’expérience client. Une surveillance efficace réduit les cycles réactifs consacrés à la gestion des incidents.
Approche | Avantages |
---|---|
Créez un système de surveillance avec sa propre pile et ses propres flux. Traitez le système de surveillance comme une dimension de la charge de travail découplée de son utilitaire. La pile doit couvrir toutes les couches, notamment l’infrastructure, l’intégrité de l’application et les processus de génération et de mise en production. La capture ou l’échantillonnage des données métier est hors de portée pour les implémentations d’observabilité. |
Dissocier la surveillance et les piles de charge de travail pour séparer les exigences fonctionnelles et les exigences d’observabilité et rendre possible une évolution indépendante. Les modifications du code ne doivent pas affecter la surveillance, et inversement. Étant donné que les exigences d’observabilité sont distinctes des exigences fonctionnelles, les données métier ne seront pas perturbées par la surveillance des modifications de configuration ou des pannes. |
Cohérence du lecteur dans le processus de collecte pour chaque type de source de données. Normaliser l’instrumentation dans le code à l’aide de normes du secteur pour la télémétrie, la collecte des métriques d’infrastructure et les outils. |
La cohérence empêche la variance dans la détection et la mesure, car la familiarité entre les ressources similaires réduit le temps consacré à la corrélation et à l’analyse des données. Vous avez une perspective holistique pour anticiper les problèmes. |
Émettez des données de télémétrie à partir du code d’application qui corréler les points clés du flux d’exécution et donne une vue de bout en bout à différents niveaux de granularité. | Hiérarchisez les actions en fonction du niveau de gravité et comprenez le contexte en fonction de sa détail. Ces informations sont cruciales à des fins de résolution des problèmes. |
Vous êtes propriétaire de l’émission et de la collecte de données, même lorsque les récepteurs de données sont partagés par plusieurs équipes et gérés par des équipes centrales. | En localisant les données de surveillance dans l’environnement de charge de travail, l’équipe peut accéder aux journaux et aux métriques pour répondre aux problèmes de charge de travail. |
Collectez suffisamment de données et conservez-les pendant suffisamment de temps. Tenez compte des compromis liés à la journalisation et au stockage des données. |
La collecte intentionnelle de données vous permet d’optimiser les coûts financiers et opérationnels associés à la collecte de plus de données que nécessaire. Réduisez le bruit et évitez un calcul intensif pendant l’analyse et réduisez le coût de stockage des données dont vous n’avez plus besoin. |
Faites une distinction entre les différents signaux de surveillance : profils, journaux, métriques et traces. Utilisez chaque signal à des fins appropriées. Hiérarchiser l’utilisation des métriques pour déclencher des actions qui s’appuient sur des mesures numériques. Utilisez des profils pour obtenir une visibilité de niveau inférieur, telle que l’allocation de mémoire, dans le système. Réservez l’utilisation des journaux et des traces pour fournir un contexte pour les flux et les dépendances. |
En utilisant les signaux à des fins appropriées, vous pouvez empêcher l’implémentation inefficace du système de surveillance. Par exemple, l’utilisation de journaux pour les actions nécessite l’analyse. Vous pouvez peut-être atteindre les mêmes objectifs plus rapidement avec les métriques. |
Agréger et visualiser des données dans des tableaux de bord pour présenter des données de surveillance adaptées aux audiences et garder à l’esprit le contexte métier. Utilisez des tableaux de bord situationnels pour faire face aux données afin de sensibiliser les parties prenantes. Utilisez des tableaux de bord opérationnels et des classeurs avec des fonctionnalités d’exploration pour les activités d’opérateur telles que la réponse aux incidents . Actualisez fréquemment les tableaux de bord et fournissez des données granulaires. |
Avec des visualisations, vous pouvez analyser les tendances, effectuer le suivi des cibles métier et gérer les incidents. Les tableaux de bord adaptés à l’intérêt du client rendent l’interprétation pertinente et accélèrent la détection et l’action. |
Rendez les alertes exploitables en informant les rôles responsables avec des descriptions standardisées et des niveaux de gravité. Fournissez des informations compilées à partir de différentes sources et suivez les écarts des cibles métier. Déclenchez des alertes uniquement pour les incidents nécessitant une action. S’efforcez d’obtenir des alertes proactives et provocantes qui lancent des actions avant qu’un état dégradé ne devienne une défaillance. |
Les alertes mettent l’attention sur des événements importants tels que définis par l’organisation. Un bon système d’alerte identifie les actions et la gravité et fournit juste suffisamment de données pour améliorer la clarté et l’objectif. Les opérateurs peuvent commencer à corriger sans délai. |
Déployer avec confiance
Atteindre l’état souhaité du déploiement avec prévisibilité. |
---|
Créez une chaîne d’approvisionnement de charge de travail qui vous permet d’atteindre de manière cohérente l’objectif de prévisibilité dans tous vos environnements, dans les plateformes d’hébergement, les applications, les données et les ressources de configuration de la charge de travail. Le mécanisme de déploiement doit être capable d’automatisation, de test, de supervision et de contrôle de version. Il doit être modulaire et prêt à s’exécuter à la demande. Elle ne doit pas être représentée comme un processus monolithique de bout en bout. La chaîne d’approvisionnement n’est pas nécessairement pour une exécution plus rapide, mais pour obtenir une cohérence et une auto-documentation sur plusieurs itérations.
L’équipe de charge de travail est responsable de la chaîne d’approvisionnement, car elle est liée à sa propre charge de travail.
Approche | Avantages |
---|---|
Utilisez l’infrastructure en tant que code (IaC) pour définir les aspects reproductibles de la chaîne d’approvisionnement prêts pour la production. Préférer les approches déclaratives aux méthodes impératives. |
Les technologies IaC déclaratives sont conçues avec automatisation et réutilisation à l’esprit. Vous pouvez décharger les déploiements d’infrastructure des individus en outils et obtenir une qualité cohérente. Du point de vue de l’infrastructure, le fait d’avoir moins de choix technologiques supprime la variance des outils et facilite la détection de la dérive de configuration. La maintenance sera également plus facile. Si vous alignez les choix avec l’ensemble de compétences existant de l’équipe, l’équipe peut facilement les adopter. |
Préparez l’équipe à utiliser la technologie IaC choisie. Découvrez son modèle d’extensibilité, ses fonctionnalités et ses limitations. Tirez parti de la spécialisation au sein de l’équipe et partagez des connaissances au sein de l’organisation. |
L’amélioration des compétences augmente la productivité et favorise un environnement de collaboration grâce à l’apprentissage partagé. Vous pouvez combler les lacunes avec la formation au lieu d’embaucher. |
Suivez les recommandations logicielles pour le développement et la maintenance IaC. Modulariser en modération. Évitez les abstractions personnalisées ou à faible valeur. Suivez une approche en couches pour refléter différents cycles de vie. Formez des couches fondamentales où les couches inférieures restent constantes et les couches supérieures changent selon les besoins. Les artefacts de déploiement, tels que les fichiers binaires d’application, les modèles IaC et les paramètres, font partie de la surface d’attaque. Appliquez des garanties, telles que la gestion des secrets, le contrôle d’accès et d’autres principes du pilier Sécurité. |
Les artefacts connaissent le même niveau de rigueur d’ingénierie que le code d’application. Les contrôles de qualité par le biais de révisions d’homologues et de tests vous donnent confiance en déploiement. Une approche en couches facilite la maintenance et crée des limites qui établissent des lignes claires de responsabilité. L’ajout de contrôles de sécurité aux artefacts permet de renforcer le système pendant le processus de déploiement. |
Développez un manifeste de déploiement commun utilisé dans tous les environnements. Utilisez ce manifeste comme mécanisme par défaut pour les projets greenfield, les mises à jour de charge de travail incrémentielles ou la récupération d’urgence. | Supprimez la surcharge liée à la maintenance de plusieurs ressources. En cas de sinistre, la récupération sera rapide et fiable, car vous pouvez déployer un manifeste essayé et testé au lieu de créer un environnement improvisé. |
Recherchez une infrastructure immuable et éphémère déployée via l’automatisation IaC. | Interdire la dérive de configuration et rendre l’idempotent de déploiement. Ce type d’infrastructure supprime des charges opérationnelles importantes, telles que la mise à jour corrective. Il bénéficie également de scénarios de validation de base, tels que les déploiements d’infrastructure bleu-vert. |
Remarque
Réduisez l’étendue de l’utilisation du portail aux tâches d’enquêteur non répétées uniquement.
Automatiser l’efficacité
Remplacez les tâches manuelles répétitives par l’automatisation logicielle qui les termine plus rapidement, avec une cohérence et une précision accrues, et réduit les risques. |
---|
La charge de travail peut avoir des workflows avec des processus qui impliquent des membres de l’équipe qui effectuent des tâches banales, répétitives et fastidieuses qui n’ont pas réellement besoin de l’intelligence humaine. Selon la fréquence, vous pouvez consacrer beaucoup de temps à ces efforts, en investissant plus de temps à mesure que la charge de travail augmente. En outre, ces processus sont souvent sujettes aux erreurs en raison d’une entrée humaine.
Grâce à l’automatisation, vous économisez du temps, de l’effort et de l’argent, et vous évitez les erreurs.
Approche | Avantages |
---|---|
Évaluez tous les flux de travail par rapport aux critères qui sont au bon niveau de complexité, d’effort, de fréquence, de précision, de chronologie et de durée de vie. Automatisez les flux de travail en fonction de cette évaluation et hiérarchisez les flux de travail avec les retours attendus les plus élevés. Supprimez les flux de travail redondants ou ajoutez une valeur pour justifier l’effort humain. |
Vous pouvez réinvestir la capacité d’équipe dans un travail de valeur plus élevée et augmenter la productivité et la cohérence. La création d’un inventaire des flux de travail vous permet d’automatiser les tâches appropriées. La suppression de tâches redondantes réduit la complexité et les erreurs. |
Soyez explicite sur votre décision lorsque vous évaluez s’il faut créer des outils personnalisés ou acheter des logiciels. Réservez l’automatisation des bâtiments pour des travaux hautement spécialisés et à valeur élevée. |
En achetant des logiciels hors service et en tirant parti du contrat de support, vous économisez sur les coûts de maintenance. En créant des logiciels, vous avez plus de contrôle et pouvez répondre aux cas d’usage uniques à votre équipe et à votre charge de travail. Toutefois, il y a un impact sur les coûts. Le choix d’outils apporte un niveau de normalisation à vos opérations. Avec la formation, vous pouvez obtenir un niveau uniforme de préparation à l’adoption. |
Concevez vos composants de charge de travail pour prendre en charge les fonctionnalités d’automatisation. | Évitez la situation où l’absence d’automatisation dans la conception de votre système favorise l’anti-modèle des tâches répétitives, ralentit la croissance et commence à accumuler la dette technique. |
Traitez toutes les automatisations comme une dépendance critique de votre charge de travail. Adaptez-vous à la croissance attendue de la charge de travail. Vos outils d’automatisation font partie intégrante de votre charge de travail et doivent respecter les cinq piliers de l’infrastructure bien architecte. |
Concevez votre composant d’automatisation pour résister aux risques, tels que les menaces de sécurité. Avec les meilleures pratiques appliquées, vous pouvez éviter l’extension de l’implémentation. La charge de travail continuera à fonctionner avec une garantie de haut niveau si cette dépendance est maintenue fonctionnelle et sécurisée. |
Automatisez à grande échelle en explorant des options au-delà de votre charge de travail. Privilégiez un modèle de « conception une fois, exécuté partout » en fournissant des modèles et des frameworks pour intégrer de nouveaux projets et promouvoir la réutilisation des conceptions et implémentations existantes. |
Utilisez des méthodes testées et testées et réduisez les risques d’échec. |
Adopter des pratiques de déploiement sécurisées
Implémenter des garde-fous dans le processus de déploiement pour réduire l’effet des erreurs ou des conditions inattendues. |
---|
Pendant le cycle de développement, les artefacts de charge de travail passent par de nombreuses modifications à mesure qu’ils sont implémentés et testés et que les bogues sont corrigés.
Le processus de déploiement doit suivre une procédure d’exploitation standard. Toute modification doit être déployée avec le même niveau de rigueur. Ce principe s’applique également au code, à la configuration et à tous les artefacts associés. La clé consiste à appliquer des pratiques sécuritaires dès que possible afin que vous ayez une prévisibilité en production. Même si des erreurs atteignent les clients, vous devriez pouvoir déployer les modifications de récupération dès que possible.
Approche | Avantages |
---|---|
Normalisez le processus pour déployer toute modification à l’aide de processus de déploiement automatisés, tels que des pipelines. Tous les environnements doivent utiliser des pipelines. Classifiez les ressources et les versions par environnement pour les rendre facilement traceables et identifiables. |
Les méthodes de déploiement cohérentes réduisent les problèmes causés par les erreurs de processus et la variance et vous permettent de concentrer votre effort sur les problèmes de charge de travail. La normalisation garantit que le déploiement est effectué de manière sécurisée, fiable et reproductible. La classification facilite l’affichage des journaux d’activité des déploiements et problèmes précédents qui se sont produits. Vous pouvez peut-être utiliser ces informations pour accélérer la restauration et les opérations de restauration. |
Déployez de petites mises à jour incrémentielles à une cadence régulière. | Les petites mises à jour fréquentes et testées facilitent la validation de la version. Résolvez les problèmes plus rapides avec un impact minimal sur le client en raison d’une empreinte plus petite. |
Testez les mises à jour rigoureusement à l’aide de différents mécanismes tout au long du cycle de vie du développement. | Interceptez les problèmes au début du développement. Les correctifs itératifs et les pratiques de déploiement cohérentes provoquent des problèmes de désactivation au moment où la mise à jour est prête pour la production. |
Déployez progressivement les mises à jour, avec diligence raisonnable. Utilisez des modèles de déploiement qui vous donnent le contrôle pour augmenter progressivement le nombre d’instances et de clients jusqu’à ce que la mise à jour soit adoptée en toute sécurité par tous. |
Testez chaque mise à jour de manière contrôlée afin que les problèmes soient résolus au début de la production. Évitez de déployer une mise à jour défectueuse qui a un impact sur l’ensemble de votre base de clients. Vérifiez si la mise à jour est compatible vers l’arrière et vers l’avant. |
Disposer d’une stratégie d’atténuation pour récupérer rapidement des défaillances de déploiement. La stratégie devrait couvrir la prise de décision sur la restauration ou l’avenir en fonction de la critique de la question. Disposez de processus bien définis et de systèmes automatisés capables de déployer rapidement des correctifs à l’aide des pipelines de déploiement standard. |
Réduisez la durée de l’impact potentiel. Restaurez le système vers la version de travail précédente ou restaurez-le vers une version qui a été soigneusement testée. |
Disposer d’un plan de secours qui réinitialise le système à un état de travail en cas d’urgence et pour récupérer des défaillances inattendues. Utilisez cette stratégie uniquement si nécessaire et avec approbation. S’efforcez d’améliorer le plan au fil du temps. |
Vous pouvez suivre rapidement les correctifs à priorité élevée, tels que la correction de la sécurité. Le pipeline accéléré n’a peut-être pas toutes les vérifications de vos procédures d’exploitation standard, mais vous obtiendrez des clients vers une version sécurisée de la façon la plus rapide possible, ce qui l’emporte sur les erreurs à impact inférieur. |
Étapes suivantes
Nous vous recommandons de consulter la liste de contrôle d’excellence opérationnelle pour explorer d’autres concepts.