Partager via


Recommandations relatives aux pratiques de déploiement sécurisées

S’applique à cette recommandation de liste de contrôle Excellence opérationnelle Power Platform Well-Architected :

OE:10 Définissez clairement les pratiques de déploiement sécurisées de votre charge de travail. Insistez sur les idéaux des petites méthodes de publication incrémentielles et contrôlées par la qualité. Utilisez des modèles de déploiement modernes pour contrôler les risques. Tenez compte des déploiements de routine et des déploiements d’urgence ou de correctifs.

Ce guide décrit les recommandations pour l’utilisation de pratiques de déploiement sûres. Les processus et procédures de déploiement sécurisé définissent comment apporter et déployer en toute sécurité des modifications à votre charge de travail. Leur mise en œuvre nécessite de réfléchir aux déploiements sous l’angle de la gestion des risques. Vous pouvez minimiser le risque d’erreur humaine dans vos déploiements et limiter les effets des déploiements problématiques sur vos utilisateurs en mettant en œuvre ces pratiques.

Stratégies de conception clés

Il existe des directives importantes à garder à l’esprit lors de la mise en œuvre de pratiques de déploiement sécurisées :

  • Sécurité et cohérence : toute modification de la charge de travail de production est intrinsèquement risquée et doit être effectuée en mettant l’accent sur la sécurité et la cohérence.
  • Modèles de santé : les déploiements doivent passer des contrôles de santé avant que chaque phase d’exposition progressive puisse commencer.
  • Détection de problèmes : lorsque des problèmes sont détectés, le déploiement doit être immédiatement interrompu et la récupération lancée.

Les sections suivantes fournissent des recommandations détaillées sur chacun de ces points.

Sécurité et cohérence

Que vous déployiez une mise à jour de votre code d’application, de votre infrastructure en tant que code (IaC), de votre indicateur de fonctionnalité ou de votre configuration, vous introduisez un risque dans la charge de travail. Il n’existe aucun déploiement à faible risque en production. Chaque déploiement doit suivre un modèle standard et doit être automatisé pour garantir la cohérence et réduire au minimum le risque d’erreur humaine. Il est essentiel que votre chaîne d’approvisionnement de charge de travail et vos pipelines de déploiement soient fiables, sécurisés et répondent à des normes de déploiement clairement définies. Traitez chaque déploiement comme un risque possible et soumettez chaque déploiement au même niveau de gestion des risques.

Malgré les risques, vous devez continuer à déployer des modifications régulières dans votre charge de travail. Ne pas déployer de mises à jour régulières introduit d’autres risques, tels que des vulnérabilités de sécurité qui doivent être corrigées via des déploiements. Pour en savoir plus, consultez les Recommandations pour la conception d’un développement de charge de travail chaîne d’approvisionnement.

Les petits déploiements fréquents sont préférables aux grands déploiements peu fréquents. Les petits changements sont plus faciles à résoudre lorsque des problèmes surviennent et des déploiements fréquents aident votre équipe à renforcer la confiance dans le processus de déploiement. Il est également important que vous appreniez de la production en examinant vos processus de charge de travail lorsque vous rencontrez une anomalie lors du déploiement. Vous pourriez découvrir des faiblesses dans la conception de votre infrastructure ou dans son déploiement. Lorsque des problèmes surviennent lors des déploiements, assurez-vous que des analyses rétrospectives irréprochables font partie de votre processus pour tirer des leçons de l’incident.

Modèles de santé

Développez un modèle de santé robuste dans le cadre de votre plateforme de surveillance de l’observabilité et de vos stratégies de fiabilité. Votre modèle d’intégrité doit fournir une visibilité approfondie des composants et de l’état global de la charge de travail. Surveillez de près les indicateurs de santé après un déploiement. Si vous recevez une alerte concernant un changement d’intégrité pendant le déploiement, examinez immédiatement le problème et déterminez la marche à suivre suivante, comme l’annulation de la modification. Si les utilisateurs ne signalent pas de problèmes et que tous les indicateurs de santé restent verts, le déploiement devrait se poursuivre. Assurez-vous d’inclure des mesures d’utilisation dans votre modèle de santé pour garantir qu’un manque de problèmes signalés par les utilisateurs et de signaux de santé négatifs ne masque pas un problème. Pour en savoir plus, consultez les Recommandations pour effectuer une analyse des modes de défaillance.

Détection d’un problème

Lorsque votre déploiement provoque un problème dans l’un des groupes de déploiement, le déploiement doit s’arrêter immédiatement. Recherchez la cause du problème et la gravité des effets dès la réception de l’alerte. La récupération après le problème peut inclure :

  • Retour en arrière en annulant les modifications apportées au déploiement et en revenant à la dernière configuration de travail connue.
  • Avancer en résolvant le problème lors du déploiement. Vous pouvez résoudre les problèmes en cours de déploiement en appliquant un correctif ou en minimisant le problème.
  • Déployez une nouvelle infrastructure en utilisant la dernière configuration de travail connue.

Restaurer par annulation des modifications, en particulier des modifications de base de données, de schéma ou d’autres composants avec état, peut se révéler complexe. Vos directives sur les pratiques de déploiement sécurisées doivent fournir des instructions claires sur la manière de gérer les modifications de données en fonction de la conception du parc de données pour votre charge de travail. De même, le déploiement doit être géré avec précaution pour garantir que les processus de déploiement sûrs ne sont pas négligés et que le correctif ou d’autres efforts de minimisation sont exécutés en toute sécurité.

Recommandations générales

  • Implémentez le contrôle de version sur vos artefacts de build pour vous assurer que vous pouvez effectuer une restauration par annulation et par progression, le cas échéant.

  • Utilisez un flux de versions ou une structure de branchement basée sur le tronc, qui applique une collaboration étroitement synchronisée au sein de l’équipe de développement, au lieu d’une structure de branchement Gitflow ou basée sur l’environnement.

  • Automatisez autant que possible vos pratiques de déploiement sécurisé. Pour en savoir plus, consultez les Recommandations pour la mise en œuvre de l’automatisation.

  • Utilisez des pratiques d’intégration continue (CI) pour intégrer régulièrement les modifications de code dans les référentiels. Les pratiques CI peuvent vous aider à identifier les conflits d’intégration et à réduire la probabilité de fusions importantes et risquées. Pour en savoir plus, consultez les Recommandations pour l’intégration continue.

  • Utilisez les indicateurs de fonctionnalités pour activer ou désactiver de manière sélective de nouvelles fonctionnalités ou des modifications en production. Les indicateurs de fonctionnalités peuvent vous aider à contrôler l’exposition du nouveau code et à annuler rapidement le déploiement si des problèmes surviennent.

  • Déployez les modifications dans des environnements de test qui reflètent votre environnement de production. Les environnements de pratique vous permettent de tester les modifications dans un environnement contrôlé avant de les déployer dans l’environnement réel.

  • Établissez des contrôles avant le déploiement, notamment une révision du code, des analyses de sécurité et des contrôles de conformité, pour garantir que les modifications peuvent être déployées en toute sécurité.

  • Implémentez des disjoncteurs pour arrêter automatiquement le trafic vers un service rencontrant des problèmes et aider à prévenir une dégradation supplémentaire du système.

Protocoles d’urgence

Établissez des protocoles prescriptifs qui définissent comment vos processus de déploiement sécurisés peuvent être ajustés en cas de correctif ou de problèmes d’urgence tels qu’une faille de sécurité ou une exposition à une vulnérabilité. Par exemple, vos protocoles d’urgence pourraient inclure :

  • Accélération des étapes de promotion et d’approbation
  • Accélération des tests de fumée et des tests d’intégration
  • Réduction du temps de cuisson

Dans certains cas, l’urgence peut limiter les contrôles de qualité et de test, mais les contrôles doivent néanmoins être exécutés aussi rapidement que possible dans le cadre d’un exercice hors bande. Assurez-vous de définir qui peut approuver l’accélération du déploiement en toute sécurité en cas d’urgence et les critères qui doivent être respectés pour que l’accélération soit approuvée. Aligner vos protocoles d’urgence avec votre plan d’urgence réponse pour garantir que toutes les urgences soient traitées selon les mêmes protocoles.

Considérations

Créer et maintenir des pratiques de déploiement sûres est complexe. Votre réussite dans la mise en œuvre complète de normes robustes dépend de la maturité de vos pratiques dans de nombreux domaines du développement logiciel. L’utilisation de l’automatisation, de l’IaC uniquement pour les modifications d’infrastructure, de la cohérence dans les stratégies de ramification, des indicateurs de fonctionnalités et d’autres pratiques peuvent contribuer à garantir un déploiement sûr. Utilisez ce guide pour optimiser votre charge de travail et éclairer vos plans d’amélioration à mesure que vos pratiques évoluent.

Facilitation de Power Platform

Les pipelines dans Power Platform visent à démocratiser la gestion du cycle de vie des applications (ALM) pour les clients Power Platform et Dynamics 365 en intégrant l’automatisation ALM et les fonctionnalités d’intégration continue et de livraison continue (CI/CD) dans le service.

Microsoft Power Platform Build Tools pour Azure DevOps peut être utilisé pour automatiser les tâches courantes de création et de déploiement associées aux applications créées sur Power Platform.

Les actions GitHub permettent aux développeurs de créer des flux de travail automatisés tout au long du cycle de vie du développement logiciel. Power Platform Avec les actions GitHub pour Microsoft Power Platform, vous pouvez créer des flux de travail dans votre référentiel afin de créer, tester, empaqueter, publier et déployer des applications, effectuer l’automatisation et gérer les bots et autres composants basés sur Power Platform.

ALM Accelerator est un outil open source composé d’un ensemble d’applications, de scripts et de pipelines conçus pour automatiser le processus d’intégration et de livraison continue.

Automatiser les tests avec les pipelines Azure avec YAML.

Les variables d’environnement dans les solutions stockent les clés et les valeurs des paramètres, qui servent ensuite d’entrée à divers autres objets d’application. La séparation des paramètres des objets qui les consomment vous permet de modifier les valeurs dans le même environnement ou lorsque vous migrez des solutions vers d’autres environnements.

Les environnements Power Platform fournissent une fonctionnalité de restauration à un moment précis qui peut vous aider à effectuer une restauration par annulation.

Étapes suivantes