Recommandations pour la conception d’une chaîne d’approvisionnement de développement de charge de travail
S’applique à cette recommandation de la liste de contrôle d’excellence opérationnelle bien conçue : Power Platform
OE:06 | Créez une chaîne d’approvisionnement de charge de travail qui pilote les changements proposés via des pipelines prévisibles et automatisés. Les pipelines testent et favorisent ces changements dans tous les environnements. Optimisez un chaîne d’approvisionnement pour rendre votre charge de travail fiable, sécurisée, rentable et performante. |
---|
Ce guide décrit les recommandations pour la conception d’une chaîne d’approvisionnement de développement de charge de travail basée sur des pipelines d’intégration et de livraison continues (CI/CD). Dans les charges de travail du cloud, une chaîne d’approvisionnement n’est autre qu’une suite standardisée d’outils et de processus que vous utilisez pour affecter la configuration et les changements de charge de travail dans les environnements. Développez une chaîne d’approvisionnement pour garantir que vous disposez d’une méthode prévisible et standardisée pour maintenir votre charge de travail. Les pipelines CI/CD sont la manifestation de la chaîne d’approvisionnement, mais vous devriez avoir une chaîne d’approvisionnement unique. Vous pouvez avoir plusieurs pipelines qui suivre les mêmes processus et utilisent les mêmes outils.
Intégrez une chaîne d’approvisionnement pour protéger votre charge de travail contre les dommages qui peuvent survenir lorsque vous ne gérez pas correctement les changements de charge de travail. Soyez toujours conscient de l’état de votre charge de travail, afin de ne pas risquer de subir un comportement imprévisible. Ce risque est aggravé si vous devez consacrer un temps critique à retracer les modifications non comptabilisées lorsque des problèmes surviennent. Pour minimiser ces risques, standardisez les processus et les outils qui définissent votre chaîne d’approvisionnement et assurez-vous que votre équipe chargée de la charge de travail s’engage pleinement à les utiliser.
Stratégies de conception clés
Les recommandations suivantes peuvent vous aider à définir les principes fondamentaux de votre chaîne d’approvisionnement.
Proposez des modifications de la charge de travail via les processus et outils de la chaîne d’approvisionnement. Appliquez une politique stricte de déploiements automatisés pilotés par modèle. Cette méthode permet de garantir que la configuration de votre charge de travail dans tous les environnements est standardisée, bien définie et étroitement contrôlée. Pour les environnements faisant partie d’une chaîne de promotion de code, n’effectuez pas de mises à jour à l’aide de processus manuels ou d’interactions humaines. Incorporez toutes les modifications apportées à l’environnement via un pipeline en suivant les pratiques de déploiement que vous définissez. Pour aider à appliquer cette stratégie, envisagez de limiter l’accès en lecture seule par défaut et d’utiliser une porte d’autorisation d’accès pour autoriser l’accès en écriture.
Un aspect important de ce principe n’est autre que tous les changements sont des propositions jusqu’à ce qu’ils soient déployés en production. Grâce à des tests automatisés, comme l’intégration et les tests de fumée, vous permettez à votre chaîne d’approvisionnement de rejeter automatiquement les changements.
Utilisez un ensemble d’actifs de code et d’artefacts dans tous les environnements et pipelines. Un problème courant pour les organisations est lorsque les environnements de non-production sont différents des environnements de production. La création manuelle d’environnements de production et de non-production peut entraîner des configurations incompatibles entre les environnements. Cette inadéquation ralentit les tests et augmente la probabilité que les modifications nuisent au système de production.
Reflétez votre structure organisationnelle dans la conception de votre chaîne d’approvisionnement et de votre pipeline. Votre organisation peut être cloisonnée entre les équipes. Chaque équipe peut gérer une partie de la chaîne d’approvisionnement. Par exemple, de nombreuses organisations disposent d’équipes qui gèrent les paramètres de sécurité et de conformité, ou les configurations d’environnement. Ces équipes sont distinctes des équipes de développement qui gèrent le développement, les tests et les déploiements d’applications. Il existe de nombreuses façons d’organiser les équipes impliquées dans une chaîne d’approvisionnement. Votre chaîne d’approvisionnement repose sur la collaboration harmonieuse de toutes les équipes. Assurez-vous que toutes les équipes suivent des processus standard et utilisent des outils standard pour rendre la chaîne d’approvisionnement aussi efficace que possible.
Votre chaîne d’approvisionnement peut s’appuyer sur des fournisseurs tiers si vous externalisez certaines parties du cycle de vie de la charge de travail. Ces fournisseurs sont aussi essentiels au succès de votre chaîne d’approvisionnement que les ressources internes. Assurez-vous qu’il existe un accord mutuel entre toutes les équipes sur les processus et les outils que vous utilisez.
Standardisez votre méthode de déploiement. Discutez avec le propriétaire du produit de la durée d’arrêt de production acceptable pour votre charge de travail. En fonction du temps d’arrêt acceptable, le cas échéant, vous pouvez choisir la méthode de déploiement adaptée à vos besoins. Idéalement, vous devriez effectuer des déploiements pendant une fenêtre de maintenance pour réduire la complexité et les risques.
Planifiez une stratégie de test holistique. L’un des principes fondamentaux de la fiabilité du système est le principe du "décalage vers la gauche". Le développement et le déploiement d’une application sont un processus décrit comme une série d’étapes allant de gauche à droite. Vous ne devriez pas limiter les tests à la fin du processus. Dans la mesure du possible, déplacez les tests vers le début ou vers la gauche. Les erreurs sont moins coûteuses à réparer lorsque vous les détectez tôt. Ils peuvent être coûteux ou impossibles à corriger plus tard dans le cycle de vie de l’application.
Lorsque cela est possible, utilisez des tests automatisés pour garantir la cohérence. Incluez les types de tests suivants dans la conception de votre chaîne d’approvisionnement :
Tests unitaires : les tests unitaires sont généralement exécutés dans le cadre d’une routine d’intégration continue. Les tests unitaires doivent être approfondis et rapides. Ils devraient idéalement couvrir 100 pour cent du code. Appliquez des tests unitaires à tous les actifs de code, y compris les modèles et les scripts.
Test de fumée : les tests de fumée vérifient qu’une charge de travail peut être supportée dans un test environnement et fonctionne comme prévu. Les tests de détection de fumée ne vérifient pas l’interopérabilité des composants. Ils vérifient que la méthodologie de déploiement de l’infrastructure et de l’application fonctionne et que le système répond comme prévu une fois le processus terminé.
Tests d’intégration : les tests d’intégration garantissent que les composants de l’application fonctionnent individuellement, puis déterminent si les composants peuvent interagir les uns avec les autres comme ils le devraient. L’exécution d’une vaste suite de tests d’intégration peut prendre un temps considérable. C’est pourquoi il est préférable d’intégrer le principe de décalage vers la gauche et d’effectuer des tests au début du cycle de vie du développement logiciel. Réservez les tests d’intégration aux scénarios que vous ne pouvez pas tester avec un test de détection de fumée ou un test unitaire. Vous pouvez exécuter des processus de test de longue durée à intervalles réguliers si nécessaire. Un intervalle régulier offre un bon compromis et détecte les problèmes d’interopérabilité entre les composants applicatifs au plus tard un jour après leur introduction. Certains scénarios de test bénéficient d’exécutions manuelles. Faites appel aux tests manuels lorsque vous devez introduire des éléments d’interactivité humaine dans les tests.
Tests d’acceptation : selon le contexte, vous pouvez effectuer manuellement des tests d’acceptation. Cela peut être partiellement ou intégralement automatisé. Les tests d’acceptation déterminent si le système logiciel répond aux spécifications des exigences. L’objectif principal de ce test est d’évaluer la conformité du système aux exigences commerciales et de déterminer si le système répond aux critères requis pour la livraison aux utilisateurs.
Implémentez des contrôles de qualité tout au long de votre processus de promotion de code grâce à des tests. Déployez votre code dans des environnements inférieurs, comme l’assurance qualité et les tests, et dans des environnements supérieurs, comme la préparation et la production. À mesure que votre déploiement passe par les étapes de qualité, assurez-vous qu’il répond à vos objectifs de qualité avant que les modifications ne soient mises en production. Les exigences de votre entreprise déterminent l’objectif de vos contrôles de qualité. Tenez également compte des principes fondamentaux de Power Platform Well-Architected : sécurité, fiabilité et efficacité des performances.
Intégrez également les flux de travail d’approbation dans vos contrôles qualité. Définissez clairement et automatisez les flux de travail d’approbation, le cas échéant. Définissez des critères d’acceptation de qualité dans votre automatisation, afin de pouvoir franchir vos portes de manière efficace et sûre.
Facilitation de Power Platform
Microsoft Power Platform Les outils de création pour Azure DevOps peuvent être utilisés pour automatiser les tâches de création et de déploiement courantes lié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 continue/livraison continue.
Automatisez les tests avec Azure Pipelines.
Power Apps L’API Web checker fournit un mécanisme permettant d’exécuter des contrôles d’analyse statique sur les personnalisations et les extensions de la Microsoft Dataverse plateforme.
Microsoft Power Platform CLI (PAC CLI) est un outil de ligne de commande qui prend en charge l’importation et l’exportation de Power Platform solutions, ainsi que l’empaquetage et le déballage à partir de Power Platform fichiers sources de solutions. PAC CLI est disponible en tant qu’ outil de ligne de commande autonome ou en tant qu’ extension pour Visual Studio Code.
Vous pouvez utiliser Terraform, Bicep et Azure Resource Manager pour les déploiements d’infrastructure immuable en tant que code (IaC). En fonction de vos besoins et de la familiarité de votre équipe avec les outils, vous pouvez utiliser un ou plusieurs de ces outils pour vos déploiements et la gestion des ressources.
Alignement de l’organisation
Cloud Adoption Framework fournit des conseils aux équipes centrales pour fournir des zones d’atterrissage des charges de travail. Les zones d’atterrissage de la charge de travail sont les endroits où le chaîne d’approvisionnement personnalisé de la charge de travail déploie les applications.
Pour en savoir plus, consultez Qu’est-ce qu’une zone d’atterrissage Azure ? et les principes de conception de zone d’atterrissage Azure.