Tech Hub

@ Solution Architecture Works

Créer des applications avec Azure DevOps

Qu’est-ce qu’Azure Pipelines ?

Temps estimé :8 minutes 91 vues

Choisissez votre environnement de développement pour le module de formation.

  • Environnement de développement local utilisant un agent hébergé par Microsoft
  • Environnement de développement GitHub Codespaces utilisant un agent auto-hébergé.

Microsoft Azure Pipelines est un service cloud que vous pouvez utiliser pour compiler, tester et déployer automatiquement votre projet de code. Vous pouvez également le rendre accessible à d’autres utilisateurs, et il fonctionne avec presque tous les langages et types de projets.

Mara est enthousiaste à l’idée de reproduire le processus de compilation de l’équipe sur Azure Pipelines. Amita, la testeuse, a enfin un peu de temps libre et souhaite se remettre à jour. Mara décide que c’est le moment idéal pour lui parler de son plan : mettre en place un pipeline de compilation automatisé pour le site web du jeu Space Game en utilisant Azure Pipelines.

En entendant le plan de Mara, Amita est un peu hésitante, mais comme le but est de reproduire le processus de compilation et non de le remplacer, elle est aussi curieuse. Elle sait que le processus actuel pourrait être amélioré.

Amita : Ça semble être un exercice intéressant, mais tu veux sûrement prouver un point sur le DevOps !

Mara : Tu me connais trop bien !

Amita : Quelles améliorations espères-tu voir, surtout si tu fais ce qu’on fait déjà ?

Mara : Je pense que le simple fait de passer à Azure Pipelines apportera de nombreux avantages. Rappelle-toi, Azure Pipelines est un service cloud. On peut l’utiliser pour compiler et tester automatiquement le code. Et il sera accessible à d’autres aussi. Il fonctionne avec presque tous les langages et types de projets.

Notre serveur de compilation a des problèmes, et même le maintenir à jour est difficile. Azure Pipelines fournit des serveurs de compilation hébergés et maintenus par Microsoft, donc ils ont toujours les derniers correctifs et mises à jour de sécurité. On n’aura plus à se soucier de la maintenance des serveurs.

En plus, nous avons toutes sortes de scripts écrits par différentes personnes. On ne comprend même pas comment certains fonctionnent. Azure Pipelines propose un catalogue de tâches. Une tâche est un script ou une procédure packagée, abstraite avec un ensemble d’entrées. Je vais essayer de faire correspondre nos scripts de compilation à ces tâches. Au moins, on pourra standardiser les processus et augmenter le niveau d’automatisation.

Et Azure Pipelines fonctionne avec de nombreux langages et types d’applications. Si on veut évoluer dans ces directions, on n’aura pas besoin de tout refaire.

Amita : Je sais que c’est égoïste, mais pourquoi ça m’intéresserait ? Un de mes gros problèmes, c’est que je ne sais jamais quand une compilation est prête à être testée. Parfois quelqu’un pense à mettre à jour le tableau Excel, mais souvent ils oublient. J’ai l’impression d’être toujours la dernière informée.

Mara : Exactement, ça on peut le corriger facilement. On peut configurer le pipeline pour te notifier automatiquement, par email ou autre, quand une compilation est prête. Tu n’auras plus besoin d’attendre qu’on te le dise.

Amita : D’accord, donc ton objectif pour l’instant, c’est de compiler l’application et de me prévenir quand elle est prête ?

Mara : C’est ça ! Bien sûr, j’ai des plans plus ambitieux. Je sais que vous allez tous adorer cette première étape, donc je veux aller plus loin et nous amener vers une véritable intégration continue.

Amita : Donne-moi un résumé de cinq minutes sur l’intégration continue.

Mara : Laisse-moi te faire un dessin.

Mara se dirige vers le tableau blanc et dessine le pipeline.

Mara : Voici mon pipeline d’intégration continue (CI).

La CI est le processus d’automatisation de la compilation et des tests du code chaque fois qu’un membre de l’équipe effectue un commit dans le système de gestion de version. Je sais que nous ne faisons pas encore de tests automatisés, mais ça viendra.

Un pipeline définit le processus d’intégration continue pour l’application. Il est composé d’étapes appelées tâches. On peut le voir comme un script qui définit comment les étapes de compilation, de test et de déploiement sont exécutées. Je vais essayer de faire correspondre nos scripts actuels à ces tâches.

Le pipeline s’exécute lorsque vous soumettez des modifications de code. Vous pouvez le configurer pour qu’il s’exécute automatiquement ou manuellement. Vous connectez votre pipeline à un dépôt de code source comme GitHub, Bitbucket ou Subversion. Une de nos tâches pour ce sprint est de commencer à utiliser GitHub, donc nous allons l’utiliser pour ce projet.

Un agent de compilation compile ou déploie le code. Lorsqu’une compilation ou un déploiement est lancé, le système démarre un ou plusieurs jobs. Un agent est un logiciel installable qui exécute un job de compilation ou de déploiement à la fois.
Comme nous utilisons Azure Pipelines, nous pouvons utiliser un agent hébergé par Microsoft. Avec ces agents, la maintenance et les mises à jour sont prises en charge par Microsoft. À chaque exécution du pipeline, nous obtenons une machine virtuelle neuve. Il existe plusieurs images de machines virtuelles disponibles, y compris Ubuntu 22.04, que nous utilisons.

Le produit final du pipeline est un artefact de compilation. Pensez à un artefact comme à la plus petite unité compilée dont nous avons besoin pour tester ou déployer l’application. Par exemple, un artefact peut être :

  • Une application Java ou .NET empaquetée dans un fichier .jar ou .zip
  • Une bibliothèque C++ ou JavaScript
  • Une image de machine virtuelle, cloud ou Docker

Et voilà ! Je sais que nous pouvons y arriver.

Amita : Ça a l’air génial. Voyons ce que tu dois faire pour que ça fonctionne et combien de temps ça te prend. Tu pourras nous faire une démo.

Mara : Avec plaisir !

Gérer les agents de compilation

Maintenant que vous et l’équipe êtes familiarisés avec Azure Pipelines, parlons un peu plus des agents de compilation.
Un agent de compilation est un logiciel installable qui exécute un job de compilation ou de déploiement à la fois. Pour compiler votre code ou déployer votre logiciel, vous avez besoin d’au moins un agent. À mesure que vous ajoutez du code et des membres à l’équipe, vous aurez besoin de plusieurs agents.

Il existe deux grandes catégories d’agents :

Agents hébergés par Microsoft

Ce sont des agents gérés par Microsoft, donc la maintenance et les mises à jour sont prises en charge pour vous.
À chaque exécution du pipeline, vous obtenez un nouvel agent pour chaque job.
Dans ce module, lorsque vous choisissez « Environnement de développement local avec un agent hébergé par Microsoft », vous exécutez votre pipeline sur un agent hébergé.
Pour utiliser ces agents, votre organisation doit disposer d’au moins un job parallèle hébergé par Microsoft.
Vérifiez le nombre de jobs parallèles hébergés pour vous assurer que vous en avez au moins un.
Si ce nombre est zéro (ce qui est souvent le cas pour les nouvelles organisations Azure DevOps), vous pouvez demander une attribution gratuite.
Le processus d’approbation prend généralement deux à trois jours ouvrables.

Agents auto-hébergés

Ce sont des agents que vous gérez vous-même.
Vous configurez les machines virtuelles ou les conteneurs en installant le logiciel de l’agent et les outils nécessaires, puis vous enregistrez les agents dans Azure DevOps.
Dans ce module, lorsque vous choisissez « Environnement de développement GitHub Codespaces avec un agent auto-hébergé », vous utilisez un agent auto-hébergé exécuté dans un conteneur GitHub Codespaces.
L’auto-hébergement dans un conteneur GitHub Codespaces n’est pas un scénario de production typique, mais il fournit un environnement adapté à ce module de formation.

Share this Doc

Qu’est-ce qu’Azure Pipelines ?

Or copy link

CONTENTS