Introduction

Effectué

Imaginez que vous travaillez en tant qu’ingénieur logiciel pour un détaillant de vêtements de loisirs en ligne. Vous êtes chargé(e) de déployer et de mettre à jour la vitrine en ligne du détaillant, une application .NET native cloud basée sur des microservices.

Pour répondre aux exigences du projet et améliorer les pratiques de développement agile de votre équipe, vous décidez de comparer l’intégration continue et le déploiement continu (CI/CD) via GitHub Actions et Azure Pipelines. Les pipelines CI/CD utilisent une série d’étapes automatisées pour compiler et déployer des applications à partir de l’environnement de build dans tous les environnements.

Étant donné que le site web actuel présente une architecture de microservices et que chaque microservice est déployé indépendamment, vous commencez par configurer CI/CD pour un seul service.

L’API web .NET, appelée service produit, prend en charge toutes les fonctionnalités du catalogue back-end du site web. Dans ce module, vous allez implémenter un pipeline CI/CD pour le service produit.

Ce module vous guide tout au long des étapes suivantes :

  • Authentifier GitHub Actions auprès d'un registre de conteneurs
  • Stocker de manière sécurisée les informations sensibles utilisées par GitHub Actions.
  • Implémenter une action GitHub pour générer l’image conteneur d’un microservice.
  • Modifier et valider le code du microservice pour déclencher une génération
  • Implémenter une action pour déployer le conteneur mis à jour sur un cluster Azure Kubernetes Service (AKS).
  • Modifier et commiter un chart Helm pour déclencher le déploiement.
  • Restaurer le microservice sur le déploiement précédent.

Vous utilisez votre propre abonnement Azure pour déployer les ressources de ce module. Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

Important

Pour éviter des frais inutiles dans votre abonnement Azure, veillez à supprimer vos ressources Azure quand vous en avez terminé avec ce module.

Prérequis

  • Connaissance conceptuelle des pratiques DevOps.
  • Connaissance conceptuelle des conteneurs, de Docker et d’AKS
  • Accès à un abonnement Azure avec des autorisations Propriétaire.
  • Accès à un compte GitHub.
  • Capacité à exécuter des conteneurs de développement dans Visual Studio Code ou GitHub Codespaces, comme décrit dans la section suivante.

Conteneur de développement

Ce module inclut des fichiers de configuration qui définissent un conteneur de développement ou conteneur dev. L’utilisation du conteneur de développement garantit un environnement standardisé préconfiguré avec les outils requis.

Le conteneur de développement peut s’exécuter dans l’un des deux environnements. Avant de commencer, suivez les étapes de l’un des liens suivants pour configurer votre environnement, notamment l’installation de Docker et des extensions Visual Studio Code nécessaires.