Les organisations qui exploitent Microsoft Dynamics 365 ont souvent besoin d'une méthode structurée pour développer, tester et déployer des solutions personnalisées. Une approche robuste de ALM (Application Lifecycle Management) garantit que les modifications sont introduites de manière prévisible, avec une perturbation minimale pour les utilisateurs finaux. Du point de vue du développeur et des opérations (Ops), ALM rationalise la collaboration, réduit les erreurs et permet une amélioration continue.
Mais quelle solution choisir ? Ci-dessous, nous allons explorer les trois méthodes les plus populaires pour ALM dans Dynamics 365 et Power Platform : Azure DevOps, GitHub Actions et Power Platform Pipelines.
Actions Github
Pipelines Azure
Pipelines de la plateforme énergétique
Pourquoi ALM est important pour les développeurs et les opérations
1. Contrôle des versions et ramification (perspective du développement) : les développeurs doivent suivre les modifications dans plusieurs environnements : développement, assurance qualité, préparation et production. Des stratégies de ramification appropriées (par exemple, branches de fonctionnalités, branches de correctifs) réduisent au minimum les conflits de base de code.
2. Déploiements automatisés (perspective des opérations) : les déploiements manuels augmentent le risque d'erreurs et peuvent retarder les versions. Les pipelines automatisés garantissent des déploiements répétables et fiables, essentiels pour les solutions à grande échelle ou fréquemment mises à jour.
3. Rapid Feedback (Dev + Ops) : les pratiques d'intégration continue/livraison continue (CI/CD) permettent une détection rapide des problèmes, ce qui permet aux équipes de réagir plus rapidement aux bogues ou aux goulots d'étranglement des performances.
1. Azure DevOps
Azure DevOps est une suite complète d'outils (repos, pipelines, tableaux, artefacts) qui prend en charge l'ALM de bout en bout pour Dynamics 365 et Power Platform. Il y a cinq ans, il s'agissait de la seule solution disponible pour réaliser une gestion complète du cycle de vie des applications (ALM) avec Dynamics 365.
Azure DevOps offre les fonctionnalités suivantes :
- Contrôle de code source avec Azure Repos : les développeurs peuvent stocker et contrôler les versions des fichiers de solution dans Git ou TFVC. Les stratégies de branche et les demandes d'extraction aident à maintenir la qualité du code.
- Pipelines de build : les builds automatisées peuvent valider l'intégrité des solutions en important et en exportant des solutions, en exécutant des tâches de vérification de solution et en les empaquetant pour la publication.
- Pipelines de publication : les équipes d'exploitation peuvent automatiser la configuration spécifique à l'environnement, garantissant ainsi qu'une solution se déploie de manière transparente du développement à l'assurance qualité jusqu'à la production. Des approbations et des portes peuvent être définies pour la conformité et la gouvernance.
- Avantages : mature, largement adopté, hautement personnalisable, s'intègre à d'autres services Azure (Key Vault, Artifacts, etc.)
- Considérations : nécessite une configuration et une licence pour Azure DevOps ; peut être plus complexe à apprendre au départ pour les petites équipes.
Si vous souhaitez configurer Azure DevOps pour votre intégration Dynamics 365, vous pouvez lire cet article de Microsoft qui présente toutes les étapes requises.
À mon avis, Azure DevOps est une excellente solution pour les grandes organisations travaillant sur des projets avec un budget conséquent. Il est gratuit pour un maximum de 5 utilisateurs, mais une licence est requise pour les utilisateurs supplémentaires. Un autre point important à prendre en compte est que l'exécution de machines virtuelles sur Azure, par exemple pour les agents de build ou les environnements de test, consommera des crédits Azure.
2. GitHub Actions
GitHub avec GitHub Actions offre un cadre d'automatisation CI/CD étroitement intégré aux référentiels GitHub. GitHub Actions a commencé à fournir des fonctionnalités pour Microsoft Power Platform, qui inclut Dynamics 365, en juillet 2021. Ces actions permettent d'automatiser les flux de travail tels que la création, le test, le packaging, la publication et le déploiement d'applications, ainsi que la gestion des composants développés sur Microsoft Power Platform.
Voici ce dont vous bénéficierez avec les actions Github :
- Configuration du flux de travail : les développeurs définissent des flux de travail basés sur YAML pour les opérations de création, de test et de déploiement. Ceux-ci peuvent exploiter les actions GitHub Power Platform officielles de Microsoft pour automatiser l'importation/exportation de solutions, le packaging et les vérifications de solutions.
- Intégration des demandes d'extraction : chaque fois qu'une demande d'extraction est ouverte, les actions GitHub peuvent exécuter des validations telles que le vérificateur de solution ou les tests unitaires, fournissant ainsi des commentaires avant la fusion du code.
- Déploiement : les opérateurs peuvent configurer des flux de travail ou des variables d'environnement distincts pour différents environnements. Vous pouvez utiliser les environnements GitHub pour définir les approbations ou les secrets requis pour des déploiements sécurisés.
- Avantages : idéal pour les équipes open source ou centrées sur GitHub, flux de travail faciles à partager entre les projets, intégrations prêtes à l'emploi avec de nombreux services (Slack, Teams, etc.).
- Considérations : certains scénarios avancés peuvent nécessiter des scripts personnalisés ou des actions tierces ; de plus, bien que GitHub Actions soit intuitif, la configuration peut devenir plus complexe pour les grands projets.
Avec GitHub et GitHub Actions, vous disposez d'une solution ALM presque complète à un coût minimal. Microsoft a considérablement investi dans GitHub depuis son acquisition, et en utilisant des exécuteurs publics, vous pouvez effectuer la plupart des actions, telles que les builds et les déploiements. Cependant, pour les projets privés ou une utilisation prolongée, des coûts supplémentaires peuvent s'appliquer. Pour plus d'informations, consultez la documentation de Microsoft
3. Power Platform Pipelines
Power Platform Pipelines (actuellement en disponibilité générale, bien qu'en version préliminaire dans certaines régions) vise à rationaliser ALM au sein de Power Platform, réduisant ainsi le besoin de services externes. Power Platform Pipelines est uniquement compatible avec les environnements gérés, ce qui peut limiter l'accès des utilisateurs ou des organisations opérant dans des environnements non gérés, les empêchant potentiellement d'exploiter cette fonctionnalité.
- Expérience dans le produit : offre une approche simplifiée pour exporter des solutions d'un environnement et les importer dans un autre, directement dans le centre d'administration Power Platform ou le portail Maker.
- Accent mis sur le code nul/faible : idéal pour les équipes de fusion (développeurs citoyens + développeurs professionnels). Les opérations peuvent définir des garde-fous tandis que les développeurs/créateurs exécutent des pipelines à partir d'une interface conviviale.
- Sécurité et gouvernance : les administrateurs peuvent définir des autorisations d'environnement et les étapes du pipeline peuvent être configurées pour demander une approbation avant le déploiement.
- Avantages : moins de frais généraux pour les équipes qui travaillent principalement dans Power Platform ; Temps de configuration minimal par rapport aux solutions CI/CD complètes dans Azure DevOps ou GitHub.
- Considérations : moins de fonctionnalités avancées que celles d'Azure DevOps ou de GitHub Actions, elles peuvent ne pas convenir aux scénarios d'entreprise complexes nécessitant une ramification rigoureuse du code ou des intégrations tierces.
Bien que cette solution n'inclue pas la gestion du code, elle offre une méthode accessible aux utilisateurs professionnels pour gérer les déploiements et les environnements avec une expertise technique minimale. Son intégration profonde au sein de l'écosystème Power Platform garantit une expérience transparente, permettant aux créateurs d'automatiser les déploiements directement à partir de leurs applications. Cela en fait une option attrayante pour les organisations qui cherchent à améliorer les processus de gouvernance et de déploiement sans avoir besoin de connaissances approfondies en DevOps.
Conseils Dev & Ops pour réussir ALM
- Adoptez une stratégie multi-environnement : au minimum, disposez d'environnements de développement, de test/assurance qualité et de production. Validez les solutions dans un environnement hors production avant de les mettre en ligne.
- Automatisez autant que possible : automatisez le packaging, les tests et les déploiements des solutions pour minimiser les erreurs humaines et accélérer les versions.
- Utilisez Solution Checker : que ce soit dans Azure DevOps ou GitHub Actions, intégrez le Solution Checker officiel pour maintenir la qualité et les performances du code.
- Sécurisez vos secrets : utilisez Azure Key Vault, GitHub Secrets ou les variables d'environnement Power Platform pour stocker des données sensibles (comme les secrets client ou les chaînes de connexion).
- Documentez tout : conservez une documentation claire de votre processus ALM, de vos rôles et de vos responsabilités. Cela simplifie l’intégration et garantit des déploiements cohérents.
Conclusion
La mise en œuvre des meilleures pratiques ALM dans Dynamics 365 ne consiste pas seulement à disposer d’un processus de développement soigné. Il s’agit également de garantir la fiabilité, de maintenir la qualité du code et de permettre une innovation continue à grande échelle. Que vous optiez pour les fonctionnalités riches d’Azure DevOps, les flux de travail flexibles de GitHub Actions ou la simplicité rationalisée de Power Platform Pipelines, la clé est la cohérence. À mesure que les développeurs et les équipes d’exploitation adoptent les déploiements automatisés, les révisions de code et les tests robustes, les solutions Dynamics 365 deviennent plus stables, plus sûres et plus évolutives.