Le logiciel doit être écrit, testé et déployé dans un environnement de production. Pour ce faire, de manière automatisée, les développeurs et DevOps construisent des pipelines CI/CD ou des pipelines de construction/déploiement qui automatisent une grande partie de cette activité.
A pipeline allows developers, DevOps teams and others to produce and deploy reliable code. In the Microsoft realm, the way to build a pipeline is with Azure DevOps with a feature called Azure Pipelines.
Les pipelines Azure vous permettent d’exécuter automatiquement des constructions, d’effectuer des tests et de déployer du code (release) dans divers environnements de développement et de production. Mais que se passe-t-il si vous n’avez jamais entendu parler de Azure DevOps ou d’un pipeline auparavant ou si vous n’en avez jamais construit un avec Azure DevOps ? Si c’est le cas, ce tutoriel sur les pipelines Azure est fait pour vous.
Un grand merci à Peter De Tender, formateur technique Microsoft Azure, pour son aide à la rédaction de cet article.
Présentation du projet
C’est un article de projet où nous expliquons comment construire un projet ou mettre en œuvre une solution. Chaque section sera des étapes cumulatives qui se construisent sur les précédentes.
Dans ce projet, vous allez apprendre, de zéro, comment créer votre premier pipeline Azure DevOps. Vous apprendrez des concepts tels que l’invocation de constructions à partir d’un commit de contrôle de version Git, l’exécution automatique de tests et enfin la libération de packages dans des environnements. À la fin de ce projet, vous aurez une application de commerce électronique de démonstration déployée en tant que WebApp Azure.
Ce projet devrait vous prendre 30 minutes pour le terminer.
Notez que si vous suivez ce projet et supprimez immédiatement les ressources créées, vous ne serez pas facturé sur votre compte Azure. N’oubliez pas de les supprimer !
Audience cible
Ce projet couvrira les bases de la mise en place de votre première pipeline Azure dans l’interface web Azure DevOps. Vous apprendrez beaucoup de choses grâce à ce projet si vous êtes totalement novice en Azure Pipelines, mais moins si vous avez déjà créé vos propres pipelines ou si vous êtes un expert en Azure Pipelines.
Exigences de l’environnement
Si vous prévoyez de suivre ce projet étape par étape, assurez-vous d’avoir au minimum ce qui suit :
- Un compte Azure
- Déjà connecté au Portail Azure en tant qu’administrateur global ou avec des droits similaires.
- A GitHub account
- Un référentiel Github vide créé
- Une application web Azure vide déployée en utilisant dotnetcore 2.2 et Linux comme plateforme.
Création d’une organisation Azure DevOps
Étant donné que nous partons de zéro, vous allez d’abord créer l’objet « base » qui contient toutes les fonctionnalités et services Azure DevOps appelé organisation. L’organisation est l’endroit où tous les projets sont stockés, ce que vous apprendrez à créer dans la prochaine section.
- Depuis le Portail Azure, accédez à Tous les services, recherchez DevOps et sélectionnez Azure DevOps. Vous pouvez voir à quoi vous attendre ci-dessous. Cela ouvrira la page Azure DevOps comme vous pouvez le voir ci-dessous.

2. Ensuite, cliquez sur Mes organisations Azure DevOps et fournissez vos informations d’identification Azure. Vous serez redirigé vers une page où vous pouvez créer une nouvelle organisation comme indiqué ci-dessous. Une fois ici, cliquez sur le bouton bleu Créer une nouvelle organisation.

3. Sur la page suivante, fournissez un nom pour l’organisation. Si vous rencontrez des problèmes avec l’utilisation d’un nom spécifique, assurez-vous de vérifier les conventions de dénomination des organisations Azure DevOps. Sur cette page, spécifiez également une région Azure la plus proche de vous. Une fois terminé, cliquez sur Continuer.

À ce stade, votre organisation Azure DevOps est créée!
Création d’un projet Azure DevOps
La prochaine étape consiste à créer un projet. Un projet est un conteneur pour le pipeline que vous allez créer, divers artefacts et toutes les autres informations relatives à un service ou à un logiciel spécifique.
Azure DevOps vous permet de créer un projet dans le même flux de travail que la création d’une organisation, comme indiqué ci-dessus. Si vous avez suivi les étapes, vous devriez maintenant voir une page de création de projet comme indiqué ci-dessous.
- Sur la page de création du projet, indiquez un nom pour votre projet dans le champ Nom du projet. Pour ce projet, vous utiliserez un projet Azure DevOps appelé devopsdemo.
- Confirmez la création du projet en cliquant sur le bouton + Créer un projet.
- Pour l’instant, laissez la Visibilité définie sur Privé. Cela garantit que votre projet n’est pas exposé à Internet. Un projet public permet aux non-membres d’un projet et aux utilisateurs non connectés un accès en lecture seule aux artefacts du projet.

À ce stade, votre espace de travail Azure DevOps (projet + organisation) a été créé. Si vous avez suivi les étapes, vous avez maintenant une organisation Azure DevOps appelée pdtitws123 et un projet dans cette organisation appelé devopsdemo.

Création d’un pipeline de génération Azure DevOps
Maintenant que vous avez une organisation Azure DevOps et un projet configurés, vous pouvez créer un pipeline de génération à l’intérieur. Le pipeline est l’endroit où toute la magie opère. C’est là que vous allez créer des génération pour effectuer différentes tâches comme la compilation du code, l’importation de dépendances, et bien plus encore.
- À partir du tableau de bord, sélectionnez Pipelines, puis Builds.

2. Vous verrez un message vous indiquant qu’aucune pipeline de construction n’a encore été trouvée. Cliquez sur Nouvelle pipeline pour commencer à créer la pipeline de construction.

3. Vous serez ensuite invité à indiquer où votre code est stocké. Dans ce projet, le code est stocké dans un référentiel GitHub. Sélectionnez GitHub. C’est l’endroit où le code est stocké et les déclencheurs pour lancer la construction viendront de là.

4. Une fois que vous avez cliqué sur GitHub, vous serez invité à fournir vos identifiants de compte GitHub, comme indiqué ci-dessous. Avant de commencer cette étape, n’oubliez pas de créer un référentiel GitHub vide tel que défini dans la section Prérequis de cet article !

5. Ensuite, confirmez l’étape où l’on vous demande d’autoriser Azure Pipelines. Cela garantit qu’Azure DevOps a la permission d’accéder à vos référentiels GitHub.

Liaison d’un référentiel GitHub à la pipeline de construction
Une fois que vous avez donné l’autorisation à Azure DevOps d’accéder à votre compte GitHub, liez maintenant un référentiel GitHub à la pipeline de construction.
- Sélectionnez le référentiel GitHub vide que vous avez créé pour ce projet.

2. Autorisez le projet à lire, écrire et vérifier le code source du référentiel que vous avez sélectionné précédemment. Ensuite, confirmez ce processus en cliquant sur Approuver et installer.

3. En cliquant sur confirmer, une erreur sera générée comme indiqué ci-dessous. Cette erreur se produira car le référentiel GitHub sélectionné est vide.

À ce stade, votre référentiel GitHub sera lié à votre pipeline de construction Azure DevOps.
Vous n’avez pas besoin de créer intégralement un nouveau pipeline à chaque fois que vous souhaitez lier un dépôt GitHub à un pipeline de build Azure DevOps.
Remplir le code d’exemple du dépôt GitHub
Le pipeline de build Azure DevOps ne fonctionnera pas sans code dans le dépôt GitHub. Le code importe peu à ce stade. Pour obtenir du code dans le dépôt, nous utiliserons un dépôt existant pour cloner du code. Dans ce dépôt, j’ai tout le code source nécessaire pour publier une application d’exemple d’e-commerce dans Azure WebApps.
Le code d’exemple de ce dépôt contiendra une application d’e-commerce appelée SimplCommerce. Cette application est une application dotnetcore open-source plus réaliste que le projet typique de « hello world ».
- Naviguez vers ce dépôt GitHub d’exemple et cliquez sur Importer le code comme indiqué ci-dessous.

2. Pour l’URL de clonage de l’ancien dépôt, utilisez http://github.com/007FFFLearning/SimplDev et cliquez sur Commencer l’importation.

Lorsque l’étape d’importation du dépôt est terminée avec succès, actualisez la fenêtre du Pipeline Azure DevOps, ce qui devrait vous permettre de continuer maintenant.
Inspection et visualisation du pipeline de build en YAML.
À ce stade, vous serez à la phase de révision du processus de création de pipeline. Vous serez maintenant présenté avec une représentation du pipeline de construction au format YAML. Ce fichier YAML est automatiquement généré en fonction de la détection du langage du code source, qui est dotnetcore dans ce projet.
Un des véritables avantages d’Azure DevOps est le pipeline YAML. Avec de nombreux autres outils DevOps, vous devez construire manuellement un fichier de pipeline.

Exécution manuelle du pipeline de construction Azure
Dans un pipeline d’intégration continue (CI), la construction est généralement déclenchée par un commit dans le contrôle de source. Mais vous pouvez également déclencher manuellement le pipeline de construction. Laissez-nous lancer manuellement un pipeline de construction pour voir ce qui se passe.
Si vous avez suivi jusqu’à présent, vous devriez maintenant être en mesure de cliquer sur Exécuter pour lancer le pipeline de construction. Cela démarrera le processus de construction du pipeline, comme vous pouvez le voir sur la capture d’écran ci-dessous.

Au bout de quelques secondes, vous pouvez voir que le processus s’exécute sous macOS, comme indiqué ci-dessous. Le pipeline de construction fournira des informations en temps réel à mesure que chaque tâche et chaque job s’exécute.

Le pipeline de construction répétera ensuite le même processus pour les autres systèmes d’exploitation (dans cet exemple), comme indiqué ci-dessous. Les étapes prises varieront considérablement en fonction de la façon dont le fichier YAML a été construit.

Une fois que la construction est terminée, vous êtes accueilli par des coches vertes, comme vous pouvez le voir ci-dessous. Cette capture d’écran indique que chaque construction de plateforme a réussi avec succès.

Vous avez maintenant créé une pipeline de compilation Azure DevOps !
Création d’une pipeline de déploiement Azure DevOps
La pipeline de compilation est créée, ce qui représente une excellente avancée. Si vous vous arrêtiez à ce stade, vous seriez bien parti pour une pipeline complète et automatisée. Mais nous n’en avons pas terminé ! L’objectif ultime d’un logiciel est d’être déployé afin que les clients puissent l’utiliser. Il est temps d’automatiser également le déploiement avec une pipeline de déploiement !
A release pipeline takes a build artifact, a result of the build process and deploys that to one or more environments. In this Project, you’re going to use a release pipeline to publish code in the GitHub repo to an Azure Web App.
- Depuis Azure DevOps, cliquez sur Pipelines, puis sur Releases.

2. Ensuite, sélectionnez Nouveau, puis Nouvelle pipeline de déploiement. Cela lance l’assistant de création de nouvelle pipeline de déploiement.

3. Dans la liste de modèles à droite, sélectionnez Déploiement Azure App Service. Vous verrez différents types de modèles disponibles pour gagner du temps lors de la création de futures pipelines de déploiement.

4. Fournissez une description pour le Nom de l’étape. L’étape contiendra des tâches de déploiement. Pour ce projet, utilisez le nom Déployer_sur_webapp.

La pipeline de déploiement devrait maintenant ressembler à la capture d’écran ci-dessous.

5. Dans le champ Étapes, sélectionnez 1 travail, 1 tâche. Ce champ est l’endroit où vous fournirez ultérieurement les paramètres de l’environnement Azure Web App que vous utiliserez pour le déploiement réel.
6. Une partie du modèle de déploiement Azure App Service comprend quelques paramètres que vous devrez définir dans cette fenêtre.
- Nom de scène – Deploy-to-webapps2 dans cet exemple.
- Abonnement Azure – sélectionnez votre abonnement et confirmez avec Autoriser (nécessite des informations d’identification)
- Type d’application – Application Web sur Linux
- Nom du service d’application – l’application web que vous avez créée précédemment

7. Une fois terminé, cliquez sur Pipeline dans le menu supérieur de votre projet Azure Pipeline, comme indiqué ci-dessous. Cela vous ramènera à l’écran principal et vous permettra d’effectuer l’étape suivante, qui consiste à spécifier les artefacts.

Ajout d’artefacts au pipeline de déploiement Azure DevOps
Dans un pipeline de déploiement, il y a de nombreux éléments différents à déployer. Ces éléments sont appelés artefacts. Les artefacts, simplement, sont des composants déployables de votre application. Azure Pipelines peut déployer des artefacts qui sont produits par un large éventail de sources d’artefacts.
Dans cette section, nous allons voir comment ajouter des artefacts au pipeline de déploiement.
- Sur l’écran Pipeline, cliquez sur Ajouter un artefact.
- Le Type de source est déjà défini sur Construire, ce qui est ce que vous voulez car vous allez déployer la sortie du pipeline de construction créé précédemment. Choisissez le pipeline de construction créé précédemment dans la liste déroulante Source (pipeline de construction).
- Lorsque vous avez terminé, cliquez sur Ajouter pour enregistrer la configuration.

4. Enfin, cliquez sur le bouton Enregistrer en haut à droite de l’écran pour enregistrer le pipeline de déploiement.
Création de la diffusion Azure DevOps
Une fois le pipeline de diffusion créé, vous commencerez à créer des diffusions. Une diffusion est une exécution particulière du pipeline. Pensez au pipeline de diffusion comme au modèle et aux instances spécifiques de ce pipeline de diffusion comme des diffusions. Une fois que vous avez une diffusion, cette diffusion peut ensuite être déployée.
Pour créer une diffusion :
- Cliquez sur le bouton Créer une diffusion en haut à droite de la fenêtre, comme indiqué ci-dessous.

2. Vous n’allez rien faire de spécial, donc à l’écran Créer une nouvelle diffusion, acceptez les valeurs par défaut et cliquez sur Créer. Vous n’avez qu’une seule étape à ce stade et une seule version de l’artefact de build à déployer maintenant.

3. Après quelques secondes, vous recevrez une notification (la barre verte) indiquant que la diffusion a été créée, comme indiqué ci-dessous. Cliquez maintenant sur Diffusion-1 ce qui vous redirigera vers les détails du processus de diffusion.

Vous avez maintenant créé une diffusion et elle est prête à être déployée !
Déploiement manuel d’une diffusion
A release is a set of instructions to perform on how to deploy a build. You’ve done all of that. Now it’s time to actually run those instructions and deploy code to an environment.
Pendant que vous êtes sur la diffusion Diffusion-1 que vous avez créée précédemment :
- Sélectionnez l’étape Déployer_sur_webapp et confirmez le Déploiement. Lorsque vous le faites, le statut changera en En cours comme indiqué ci-dessous. À ce stade, la version récupère le code source de la pipeline de construction exécutée précédemment et le pousse vers l’instance Azure WebApp.
Cette étape lancera un travail en arrière-plan sur un agent qui copie le code source et effectue le cycle de déploiement réel.

2. Cliquez sur l’étape en cours. Vous verrez les informations de journalisation affichées dans la zone de sortie de la console.

Lorsque l’étape est terminée, elle doit afficher Réussi comme indiqué ci-dessous.

Si tout s’est bien passé, le déploiement devrait être terminé et vous devriez maintenant avoir une application web publiée sur une Azure Web App !
Inspection de l’Azure WebApp déployée
Maintenant que tout le processus est terminé, assurez-vous de vérifier le résultat de votre travail.
- Connectez-vous au Portail Azure, accédez à l’Azure WebApp que vous avez sélectionnée comme cible dans la pipeline de déploiement et copiez l’URL comme indiqué ci-dessous.

2. Maintenant, collez cette URL dans un navigateur en fournissant l’URL de l’application Web Azure. Votre navigateur devrait maintenant charger l’application d’exemple de commerce électronique, similaire à la page d’accueil ci-dessous

Vous avez maintenant tout fait ! Vous avez maintenant une application Web Azure déployée à partir d’un référentiel GitHub pouvant être entièrement automatisée !
Nettoyage
Si vous avez suivi ce projet du début à la fin, vous disposez maintenant d’une nouvelle organisation Azure DevOps, d’un projet, d’un pipeline de construction, d’un pipeline de déploiement et d’une version. Si vous avez terminé vos tests, assurez-vous de supprimer l’organisation d’origine créée afin de ne pas risquer d’être facturé pour les ressources Azure.
Pour ce faire :
- Retournez dans votre espace de travail principal Azure DevOps.
- Cliquez sur Paramètres de l’organisation dans le coin inférieur gauche.
- Sur l’écran d’aperçu, cliquez sur le bouton Supprimer en bas de la page sous Supprimer l’organisation.
- Tapez le nom de l’organisation, puis cliquez sur Supprimer. Cela devrait supprimer tout le travail que vous venez d’effectuer.
Vos conclusions
Si vous avez suivi les instructions de ce projet, vous avez créé un pipeline CI/CD complet à partir de zéro dans Azure DevOps. Vous devriez maintenant avoir une bonne idée de ce que ce processus implique.
Les pipelines Azure peuvent aller beaucoup plus loin que ce que vous avez fait dans ce projet, mais vous devriez maintenant avoir des connaissances fondamentales sur l’ensemble du processus.