0Pricing
CI/CD with GitHub Actions & DevOps Pipelines · Leçon

Mises en production progressives avec Actions

Mettez en œuvre des modèles de mise en production progressive pour déployer graduellement de nouvelles fonctionnalités auprès d’un sous-ensemble d’utilisateurs, tout en surveillant les performances et la stabilité.

Mises en production progressives avec Actions est une leçon CI/CD with GitHub Actions & DevOps Pipelines gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage CI/CD with GitHub Actions & DevOps Pipelines, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours CI/CD with GitHub Actions & DevOps Pipelines comprend 4 leçons au total.

Introduction aux mises en production Canary

Imaginez que vous lanciez une nouvelle fonctionnalité ou une mise à jour. Que se passerait-il si elle contenait un bogue qui affectait tous vos utilisateurs ? Cela fait peur, n’est-ce pas ?

Les mises en production Canary contribuent à réduire ce risque en déployant progressivement les modifications auprès d’un petit sous-ensemble d’utilisateurs. C’est comme envoyer un « canari dans une mine de charbon » pour tester l’air avant que les autres n’y entrent.

Avantages des mises en production Canary

Les mises en production Canary offrent plusieurs avantages importants :

  • Risque réduit : limitez l’impact des problèmes à un petit groupe d’utilisateurs.
  • Retour d’expérience en conditions réelles : obtenez des données de production sur les performances et la stabilité.
  • Restauration rapide : en cas de problème, restaurez rapidement le petit groupe Canary ou l’ensemble du service.
  • Exposition contrôlée : augmentez progressivement l’exposition des utilisateurs à mesure que la confiance s’installe.

Canary ou Blue/Green

Vous vous souvenez peut-être des déploiements Blue/Green, dans lesquels le trafic bascule instantanément entre deux environnements identiques.

Les mises en production Canary sont différentes. Au lieu d’une bascule instantanée, elles impliquent un transfert progressif du trafic. Une nouvelle version s’exécute en parallèle de l’ancienne, et seul un faible pourcentage des utilisateurs voit initialement la nouvelle version. Cela permet une surveillance détaillée avant le déploiement généralisé.

Fonctionnement des mises en production Canary

Voici le déroulement de base d’une mise en production Canary :

  1. Déployer la nouvelle version : une nouvelle version de votre application est déployée sur un petit ensemble de serveurs ou d’instances, en parallèle de la version stable existante.
  2. Diriger une petite partie du trafic : un répartiteur de charge ou un maillage de services est configuré pour envoyer un faible pourcentage (par exemple, 5 à 10 %) du trafic des utilisateurs vers la nouvelle version.
  3. Surveiller : les performances, les taux d’erreur et les retours des utilisateurs du groupe Canary sont surveillés attentivement.
  4. Promouvoir ou restaurer : si tout semble correct, le trafic est augmenté progressivement, ou la nouvelle version est déployée auprès de 100 % des utilisateurs. En cas de problème, la version Canary est restaurée et le trafic est redirigé vers la version stable.

Orchestrer avec GitHub Actions

GitHub Actions peut orchestrer l'ensemble du processus de mise en production canary. Il ne gère pas directement le trafic — c'est le rôle de votre infrastructure —, mais il déclenche les étapes suivantes :

  • Compiler et tester votre application.
  • Déployer la nouvelle version dans un environnement canary.
  • Déclencher les changements de répartition du trafic via des appels d'API à votre répartiteur de charge ou à votre maillage de services.
  • Attendre les résultats de la surveillance ou les validations manuelles.
  • Promouvoir la version canary ou déclencher une restauration.

Structure d'un flux de travail canary

Un flux de travail GitHub Actions classique pour une mise en production canary pourrait ressembler à ceci :

name: Canary Deployment

on: push

jobs:
  build:
    # ... build and test steps ...

  deploy-canary:
    needs: build
    steps:
      - name: Deploy to Canary Group
        # ... call script/tool to deploy and shift 10% traffic ...

  monitor-canary:
    needs: deploy-canary
    # ... wait for monitoring/approval ...

  promote-or-rollback:
    needs: monitor-canary
    # ... conditionally promote to 100% or rollback ...

Chaque étape interagirait avec vos outils de déploiement.

Simuler la logique d'un déploiement canary

GitHub Actions orchestre le processus, mais les décisions et les commandes de déploiement sont souvent exécutées dans des scripts. Voici un exemple en Python qui simule la logique d'un déploiement canary. Imaginez qu'une Action exécute ce script :

def deploy_version(version, traffic_percent):
    print(f"Deploying {version} to {traffic_percent}% traffic.")
    if traffic_percent == 100:
        print("Full rollout complete!")
    elif traffic_percent > 0:
        print("Canary deployed. Monitoring for stability...")
    else:
        print("Version removed (rollback).")

if __name__ == "__main__":
    print("--- Starting Canary Workflow ---")
    new_app_version = "v2.1-canary"
    stable_app_version = "v2.0"

    # Step 1: Deploy new version to 10% traffic
    deploy_version(new_app_version, 10)

    # Step 2: Simulate monitoring (e.g., waiting for metrics)
    print("Monitoring canary performance...")
    import random
    canary_successful = random.choice([True, True, True, False]) # 75% chance of success

    if canary_successful:
        print("Canary looks good! Proceeding to full rollout.")
        # Step 3a: Promote new version to 100%
        deploy_version(new_app_version, 100)
    else:
        print("Canary issues detected! Rolling back.")
        # Step 3b: Rollback to stable version
        deploy_version(stable_app_version, 100)
    print("--- Canary Workflow Finished ---")

Surveiller votre version canary

Une surveillance efficace est essentielle. Votre flux de travail GitHub Actions peut s'intégrer aux systèmes de surveillance de plusieurs façons :

  • Appels d'API : Interroger les outils de surveillance (par exemple, Datadog et Prometheus) pour obtenir les indicateurs clés.
  • Contrôles d'état : Interroger régulièrement les points de terminaison d'état de l'application.
  • Étapes de validation manuelle : Mettre le flux de travail en pause pour permettre une vérification et une validation humaines.
  • Attentes temporisées : Attendre une durée définie afin que les indicateurs se stabilisent.

Le flux de travail utilise ensuite ces signaux pour décider de promouvoir la version ou d'effectuer une restauration.

Promotion ou restauration conditionnelle

Après la phase de surveillance, GitHub Actions utilise une logique conditionnelle pour décider de l'étape suivante. Vous pouvez utiliser des instructions if dans les définitions de vos tâches ou de vos étapes.

  promote-or-rollback:
    needs: monitor-canary
    if: success() && needs.monitor-canary.outputs.canary_ok == 'true'
    steps:
      - name: Promote Full Rollout
        # ... command to shift 100% traffic to new version ...

  rollback:
    needs: monitor-canary
    if: failure() || needs.monitor-canary.outputs.canary_ok == 'false'
    steps:
      - name: Rollback to Stable
        # ... command to shift 100% traffic to old version ...

Cela garantit une réaction automatique aux performances de la version canary.

Vérification d'une mise en production canary

Vous avez découvert les avantages et le fonctionnement des mises en production canary. Vérifions maintenant votre compréhension.

Récapitulatif : mises en production canary avec Actions

Dans cette leçon, vous avez découvert les mises en production canary, une stratégie de déploiement puissante qui consiste à déployer progressivement de nouvelles versions logicielles auprès d'une partie des utilisateurs.

  • Les mises en production canary réduisent les risques et fournissent des retours en conditions réelles.
  • GitHub Actions orchestre la compilation, le déploiement vers l'environnement canary, la surveillance et les étapes conditionnelles de promotion ou de restauration.
  • Une surveillance efficace et une logique conditionnelle sont essentielles à la réussite des flux de mise en production canary.

Grâce aux versions canary, vous pouvez déployer avec davantage de confiance et de contrôle !

Questions Fréquemment Posées

La leçon « Mises en production progressives avec Actions » est-elle gratuite ?

Oui — le texte complet de « Mises en production progressives avec Actions » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours CI/CD with GitHub Actions & DevOps Pipelines, passe à CoddyKit PRO. Le cours CI/CD with GitHub Actions & DevOps Pipelines comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Mises en production progressives avec Actions » ?

Mettez en œuvre des modèles de mise en production progressive pour déployer graduellement de nouvelles fonctionnalités auprès d’un sous-ensemble d’utilisateurs, tout en surveillant les performances e… Tu pratiques CI/CD with GitHub Actions & DevOps Pipelines avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer CI/CD with GitHub Actions & DevOps Pipelines ?

Aucune expérience préalable n'est requise. CI/CD with GitHub Actions & DevOps Pipelines sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Mises en production progressives avec Actions » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon CI/CD with GitHub Actions & DevOps Pipelines ?

Oui. Chaque leçon CI/CD with GitHub Actions & DevOps Pipelines inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Déploiements bleu-vert
  2. Mises en production progressives avec Actions
  3. Retours en arrière et reprise après sinistre
  4. Indicateurs de fonctionnalité et déploiements progressifs
← Retour à CI/CD with GitHub Actions & DevOps Pipelines