# Azure DevOps - Présentation > Par Ryan BOUCHERIHA et Noa PORTELLI ## Avant-propos Le **DevOps**, c'est quoi ? Le terme DevOps est né de la fusion entre le développement et l'opération. L'objectif est de favoriser la communication entre les deux équipes, afin qu'elles ne fassent qu'un. C'est avant tout une méthode de travail, une philosophie, (et non pas un métier à part entière) qui permet d'accélérer le développement d'un projet, d'améliorer sa qualité de manière fluide et continue. Il regroupe un certain nombres de domaines et de métiers (qui peuvent être dans certains cas être pratiqués par la même personne). Principaux avantages de l'approche DevOps : - Amélioration de la qualité du code - Optimisation du temps - Amélioration de la productivité - Moins de risques et moins d'erreurs - Réduction des coûts à long terme ## Azure DevOps **Azure DevOps** (anciennement [Team Foundation Server](https://fr.wikipedia.org/wiki/Team_Foundation_Server)) est un regroupement d'outils proposé par Microsoft. Ces outils favorisent la culture collabrative et permettent la mise en place d'un ensemble de processus propres au DevOps. Cette documentation d'Azure DevOps illustre les principales missions d'un membre d'une équipe DevOps : la gestion du code, la documentation, l'automatisation, et le suivi des erreurs/bugs. Chacun des services présenté correspond à une de ces missions. ### Azure Repos #### Stockage Dans Azure Repos seront stockés les codes sources des applications, les scripts de déploiement d'infrastructures ainsi que les fichiers de configuration des projets sur lesquels nous travaillerons. #### Suivi et historique Grâce au système de contrôle de version nous pourrons suivre les modifications apportées à notre code au fil du temps. Lorsque nous modifierons notre code, un instantané du projet sera enregistré. Le système de version conserve cette capture afin de pouvoir la consulter ultérieurement si nécessaire. Nous utiliserons ce gestionnaire de version pour enregistrer notre travail et coordonner les modifications du code au sein de notre équipe, en cas d'erreur nous pourrons également revenir en arrière, en récupérant un code "stable" enregistré plus tôt dans le développement. ![](https://i.imgur.com/AyWLGGr.png) ### Azure Pipelines Azure Pipelines permet de tester et de déployer automatiquement un projet. On y définit à l'avance une suite d'action qui s'éxécute à certaines conditions. Cette suite d'action, appellée pipeline, se rédige en `YAML` ([voir documentation](https://learn.microsoft.com/en-us/azure/devops/pipelines/yaml-schema/?view=azure-pipelines)) mais peut également être ajoutée via l'interface graphique d'Azure Pipeline. Cet outil combine l'intégration continue (CI) et la livraison continue (CD) afin de tester notre code et l'expédier vers n'importe quelle cible. **L'intégration continue (CI)** est la pratique utilisée par les équipes de développement, afin de tester le code et d'automatiser son évolution. L'utilisation du CI permet de détecter les erreurs au début du cycle de développement, afin de pouvoir rapidement les corriger. **La livraison continue (CD)** est un processus par lequel le code est généré, testé et déployé dans un ou plusieurs environnements de test ou de production. ![](https://i.imgur.com/hsjxMX5.png) ### Azure Artifacts Azure Artifacts permet de gérer les dépendances de projets applicatifs (en Python, en JavaScript ou encore en Java). Nous recommandons de désactiver ce menu pour les projets contenant uniquement des scripts de déploiement (Terraform, Kubernete, Ansible, etc...). Azure Artifacts permet aux développeurs de consommer et de publier différents type de packages sur des flux Artifacts et des registres publics tels que nuget.org et npmjs.com. Il permet également la gestion de versions, en prévenant lorsqu'une dépendance est obsolète. Nous utiliserons Azure Artifacts avec Azure Pipelines afin d'intégrer les dépendances nécessaires pour tester ou déployer nos applications. Azure Artifacts est gratuit pour chaque organisation jusqu’à 2 Gio de stockage. Une fois que vous atteignez la limite de stockage maximale, vous ne pouvez plus charger de nouveaux artefacts et vous devez supprimer certains de vos artefacts existants ou configurer la facturation pour augmenter votre limite de stockage. ![](https://i.imgur.com/aduRr5Y.png) ### Azure Boards Azure Boards fournit un ensemble de fonctionnalités, notamment la prise en charge native des processus Agile, Scrum et Kanban, des vues de calendrier, des tableaux de bord configurables et des rapports intégrés. :::danger **Efisens** utilise déjà un autre outil de gestion des tickets : AutoTask. Nous n'utiliseront donc pas le menu "Boards". Nous recommandons de le désactiver par défaut pour chaque nouveau projet. ::: ### Azure Test Plan Azure Test Plans fournit des outils que tous les membres de l'équipe peuvent utiliser pour favoriser la qualité et la collaboration tout au long du processus de developpement. Les principaux avantages d'Azure Test Plans : - Fonctionne sur n'importe quelle plateforme : avec le portail web Test Plans, vous pouvez utiliser n'importe quel navigateur pris en charge pour accéder à toutes les fonctionnalités de test. Il vous permet de créer et d'éxecuter des test manuels via une interface facile à utiliser, sur navigateur. - Collecte de données de diagnostic enrichie. Vous pouvez collecter des données de diagnostic enrichies pendant vos tests manuels. Cela inclut des captures d’écran, un journal d’action d’image, des enregistrements d’écran. Ces données sont automatiquement enregistrées ce qui facilite la reproduction des problèmes par les développeurs. - Traçabilité de bout en bout : Azure DevOps fournit une traçabilité de bout en bout des builds, des tests et des erreurs. - Analytique intégrée : le service Analytics fournit des données qui alimentent des rapports intégrés, des widgets de tableau de bord configurables et des rapports personnalisables à l’aide de Power BI. - Plateforme extensible : Vous pouvez combiner les outils et technologies que vous connaissez déjà avec les outils de développement qui conviennent le mieux à votre intégration et à l’extension d’Azure DevOps. ![](https://i.imgur.com/TN9czy6.png) ### Overview L'Overview permet d'avoir une vue d'ensemble sur le projet. Il propose des fonctionnalités utiles pour la rédaction de documentations, et est directement intégré à l'environnement de travail. :::warning Nous recommandons l'utilisation du Wiki inclu dans Azure DevOps. Cependant **Efisens** utilise IT Glue pour gérer sa documentation. Deux possibilités sont donc envisageables : - écrire la documentation sur le Wiki d'Azure DevOps et mettre le lien vers celui-ci dans IT Glue (recommandé) - écrire la documentation sur IT Glue et masquer le menu Wiki dans les projets Azure DevOps ::: ## Conclusion et recommandations **Azure DevOps** est une solution tout en un, faite pour faciliter le travail et la mise en commun des ressources dans le DevOps. Cet outil doit être adapté lorsqu'il s'intègre dans un workflow déjà bien établi. En effet, chez Efisens la documentation a déjà fait sa place sur IT Glue, et le suivi d'erreurs se fait via Autotask, l'utilisation d'Azure DevOps serait donc réduite au stockage du code. Et Github ?