Associer les deux outils de Microsoft peut paraître contre-intuitif. D’un côté, Power Apps permet à des citizen developers de créer des applications simples sans maîtriser de langage de développement. Et de l’autre, Azure DevOps est la suite d’Application Lifecycle Management (ALM) de Microsoft.
Voici un retour d’expérience de l’équipe SmartView (REX)
Azure DevOps : suite ALM de Microsoft
L’Application Lifecycle Management (ALM) se traduit par la gestion du cycle de vie d’une application ou d’un produit. Une suite d’ALM permet donc de gérer, au travers de différents outils, les étapes d’une application (analyse / conception, développement, test, déploiement, exploitation). Intégrer ALM dans un système d’information (SI) peut se révéler d’une réelle complexité technique et/ou fonctionnelle. C’est même souvent un projet à part entière.
Azure DevOps offre plusieurs modules hébergés dans le cloud qui répondent à ces problématiques :
- Boards : Suivi des tâches suivant des processus agiles (Scrum, Kanban par exemple)
- Repos : Gestionnaire de sources utilisant par défaut des dépôts Git
- Pipelines : Automatisation de tâches de déploiement
- Test Plans : Exécution de plans de tests automatisés
- Artifacts : Stockage et partage des applications packagées
Pour plus de détails, rendez-vous sur le site d’Azure, juste ici.
Power Apps : livrer une application no-code
Avec Power Apps, l’idée consiste à créer des applications simples sans avoir de notions de développement. En quelques heures / jours, on peut avoir une application « Métier » fonctionnelle en production qui répond à un besoin simple. Cependant, maîtriser les concepts du développement demeure un sacré plus comme c’est expliqué dans cet article : « Low code avec Power Apps« .
Si Power Apps permet de livrer rapidement une application, quel est donc l’intérêt d’ajouter Azure DevOps au processus ?
L’expérience SmartView montre plusieurs avantages au couplage Azure DevOps – Power Apps :
- Le suivi du projet en méthode agile
- La documentation des versions de l’application
- L’automatisation du passage d’un environnement à un autre (du développement à la recette logicielle par exemple)
- La mise en place de tests automatisés
L’extension « Microsoft Power Apps BuildTools extension » est incluse dans Azure DevOps. Les différents modules permettent ainsi d’intégrer des composants Power Platform dans Azure DevOps.
![](https://www.smartview.fr/wp-content/uploads/2023/06/image-1.png)
Fig. Les composants d’Azure DevOps
L’équipe SmartView vous livre le résultat de ses tests, module Azure par module :
Azure Boards
Azure Boards assure le suivi agile des différentes demandes d’un projet avec Scrum (sprints, backlog) ou Kanban (board kanban). Le lien entre méthodes agiles et Power Apps est détaillé dans l’article Pourquoi Power Apps est-il adapté aux méthodes agiles ?. Il n’y a pas de lien technique entre Azure Boards et Power Apps. Le suivi Scrum ou Kanban de l’application Power Apps est réalisé dans Azure Boards. Il dispose d’un avantage comparé à Trello ou Jira par exemple : l’intégration des différents éléments (tâches, bugs, sprints) avec les autres modules.
Azure Repos
Azure Repos est un outil de gestion de sources (Git par défaut). Dans Power Apps, il n’y a pas de sources à proprement parler. On ne stocke pas de fichiers de code. Cependant, on peut gérer les différentes versions enregistrées (fichiers ZIP) depuis Power Apps dans Git. Il devient possible d’intégrer plusieurs applications, plusieurs flux de données ou plusieurs environnements.
Le module Azure Repos est particulièrement pertinent en complément d’Azure Pipelines.
Azure Pipelines
Azure Pipelines permet d’effectuer de l’intégration et du déploiement continus (“CI/CD”). C’est un élément essentiel de DevOps. Il accélère le temps de livraison en production et améliore la qualité logicielle en décloisonnant ce « mur » entre dévs et ops. Le cloud et les méthodes agiles sont très bien adaptées à cette approche.
Dans notre exemple, nous avons créé 2 environnements :
- « Développement » : contient une application Power Apps connectée à 3 flux Power Automate. Avec la Power Platform, nous pouvons (manuellement) encapsuler ces 4 éléments dans une solution*. Techniquement, une solution est constituée d’un fichier ZIP, qui permet à la Power Platform d’importer des applications/flux
- « Production » : l’idée est d’automatiser l’intégration de la solution dans Azure Repos (intégration continue) et de la déployer dans l’environnement de production (déploiement continu)
L’extension “Power Platform Build Tools” garantit le processus d’intégration continue :
- Valider qu’il n’y a pas d’erreur technique dans l’application
- Exporter la solution depuis l’environnement de dév
- Dé-packager la solution et l’intégrer dans Azure Repos
- Intégrer la solution dans Azure Artifacts
- Packager les données sur Azure Repos
- Déployer le package en production
L’intégration continue suppose de tester les applications. Azure DevOps propose également un module.
Azure Tests
Azure Test effectue des plans de tests automatisés s’appuyant sur de nombreuses technologies. Cependant, pour Power Apps, la mécanique est un peu différente. Azur Pipeline permet d’automatiser des tests et les exécuter, sans utiliser le module Azure Tests.
Le résultat des tests se trouve dans le pipeline d’intégration continue. Cela permet de stopper l’intégration en cas d’erreur dès le début de pipeline. A contrario, on peut valider de manière automatique le bon fonctionnement de l’application que l’on déploie en production.
Au sein du module Azure Tests, Tests Studio offre la possibilité de réaliser des tests automatisés. Cet outil est accessible depuis le logo « clé et tournevis » dans Power Apps. On peut alors valider (“assertions”) des instructions contenues dans l’application (ex : vérifier que la source contient bien des données). Le plan de tests peut être ainsi exécuté dans Azure Pipelines.
On peut aussi lancer des tests automatisés à la demande ou de manière planifiée. C’est dans l’ADN d’ALM / DevOps !
Azure Artifacts
Dernier module de la suite Azure DevOps, Azure Artifacts sert à héberger et partager des packages pour les déployer. Plusieurs types de packages sont gérés : npm (Node.js), NuGet (.NET) ou n’importe quel format de package.
Dans notre cas, le package de la solution est un fichier ZIP. Ainsi, Azure Artifacts permet l’installation sur n’importe quel environnement Power Apps, quelle que soit la version de l’application.
Conclusion
L’intégration de Power Apps dans Azure DevOps est plutôt poussée et bien réalisée.
Le module « Tests » est plutôt intuitif et simple à prendre en main, mais il gagnerait à être encore simplifié.
Le module Azure Boards est à la portée des « Citizen developers » sensibilisés à Kanban ou à Scrum (voir notre offre d’accompagnement sur l’agilité).
Les autres modules sont plus techniques, et sont intéressants à utiliser à condition que l’application remplisse deux conditions :
- Une application assez complexe qui va nécessiter plusieurs itérations, plusieurs environnements, etc.
- Une application réalisée par ou avec l’aide d’un développeur
Dans ces conditions, Azure DevOps apporte une vraie valeur ajoutée à Power Apps en termes de qualité de l’application et de simplification du processus de déploiement.
La solution nous semble donc pertinente à condition de bien cerner, en amont, la complexité de l’application à mettre en œuvre et les compétences nécessaires.
*les solutions sont un reliquat intéressant de Dynamics dont l’équipe produit est à l’origine de Power Apps