Sauter au contenu

Déploiements progressifs

Un lancement progressif garde un canal's bundle stable Une mise en production progressive garde un canal's bundle stable en place tout en délivrant une version séparée cible de déploiement vers une sous-ensemble de dispositifs contrôlés. Il est utile lorsque vous souhaitez une validation de production réelle sans passer par tout le canal à la fois.

Contrôles de déploiement progressifs dans un canal Capgo
Configurez la cible de déploiement, le pourcentage, la durée de cache et la politique d'arrêt automatique à partir de l'onglet « Informations » du canal.

Chaque canal peut avoir deux liens de bundle :

  • Bundle stable — le bundle normal affecté au canal.
  • Cible de déploiement — le bundle candidat qui est déployé progressivement.

Une mise en production nécessite un bundle stable. Dans le tableau de bord, affectez le bundle stable avant de choisir la cible ; avec le Public API, un canal existant peut fournir version et rolloutVersion dans la même requête POST. Capgo prend une décision aléatoire pour chaque appareil éligible, puis la cache en utilisant une hachage de l'ID de l'appareil et de l'ID de la mise en production. Cela fait que le groupe cohérent est collant pour la durée de cache configurée au lieu de changer à chaque vérification de mise à jour.

Capgo conserve les décisions existantes lorsqu'il le peut :

  • Augmenter un pourcentage — les appareils déjà sélectionnés restent sélectionnés ; seuls un sous-ensemble aléatoire de dispositifs non sélectionnés précédemment est ajouté.
  • Diminuer un pourcentage — un sous-ensemble aléatoire du lot sélectionné revient à la version stable.
  • Définir le pourcentage à 0% — aucun nouveau appareil n'est sélectionné. Les appareils déjà en cours d'exécution avec la cible de déploiement activée continuent à recevoir cette cible jusqu'à ce que vous désactiviez, reveniez en arrière ou modifiiez la cible.
  • Pause — arrête les nouveaux appareils d'entrer tandis que les appareils déjà en cours d'exécution avec la cible activée restent sur elle.
  • Désactiver — arrête la résolution de la cible de déploiement; les mises à jour utilisent la version stable.
  1. Télécharger et affecter un bundle testé en tant que version stable du canal.
  2. Télécharger le bundle candidat sans remplacer la version stable.
  3. Ouvrir le canal’s Informations Ouvrir la fenêtre de configuration, sélectionnez le candidat comme cible CibleChoisissez une petite proportion et activez le lancement.
  4. Surveillez le lancement dans Observez, Log Insightset l'historique du canal. Augmentez la proportion uniquement après que le groupe soit en bonne santé.
  5. Lorsqu'il est prêt, promouvez la cible vers stable. Si ce n'est pas en bonne santé, arrêtez ou revenez en arrière.

Lancez un lancement pour le bundle 1.3.0 à 5% :

Fenêtre de terminal
npx @capgo/cli@latest channel set production com.example.app \
--rollout-bundle 1.3.0 \
--rollout-percentage 5 \
--rollout-enable

Augmentez-le sans réinstaller les appareils déjà sélectionnés :

Fenêtre de terminal
npx @capgo/cli@latest channel set production com.example.app \
--rollout-percentage 25

La commande d'upload du bundle peut définir son upload comme une cible de lancement en une étape lorsque le canal a déjà un bundle stable :

Fenêtre de terminal
npx @capgo/cli@latest bundle upload com.example.app \
--path ./dist \
--channel production \
--rollout 5

Voir la documentation complète du canal __CAPGO_KEEP_0__ channel CLI reference et bundle CLI référence pour chaque option de déploiement.

ActionCe qu'il fait
PauseArrête les nouveaux appareils d'entrer dans le déploiement. Les appareils déjà sur la cible activée restent là.
RétablirPermet aux nouveaux appareils éligibles d'entrer à nouveau.
DésactiverArrête de résoudre la cible de déploiement et utilise la version stable.
AnnulerEfface la cible, désactive le déploiement, réinitialise le pourcentage à 0% et renvoie les appareils à l'état stable.
PromouvoirFixe la cible de déploiement sur le bundle stable, puis efface l'état de déploiement.

Utilisez une action de terminal à la fois :

Fenêtre de terminal
# Stop adding devices while you investigate
npx @capgo/cli@latest channel set production com.example.app --rollout-pause
# Make the candidate stable for everyone
npx @capgo/cli@latest channel set production com.example.app --rollout-promote
# Discard the candidate and return to stable
npx @capgo/cli@latest channel set production com.example.app --rollout-rollback

Conservez la bundle cible disponible jusqu'à ce que vous la promouviez ou l'annuliez. Les bundles liés comme un bundle stable ou une cible de déploiement sont protégés de suppression.

Capgo peut évaluer un déploiement activé toutes les 5 minutes et agir lorsque son signal de défaillance franchit votre seuil. Il mesure les installations et les défaillances pour la cible de déploiement dans le canal sélectionné et la fenêtre de temps, puis utilise une limite inférieure de confiance de Wilson plutôt que le taux de défaillance brut seul.

L'arrêt automatique est désactivé par défaut. Configurez ces champs dans le canal « Informations souris ou avec channel set:

  • Taux de défaillance de seuil en points base (500 = 5%). Un seuil est requis pour que la politique déclenche.
  • Fenêtre en minutes (par défaut: 60).
  • Confiance entre 0 et 1 (par défaut: 0.95).
  • Nombre minimum optionnel d'essais et de défaillances, pour éviter d'agir sur des échantillons minuscules.
  • Temps de refroidissement en minutes (par défaut : 60), qui empêche les actions répétées.
  • Action: pause, rollbackou notify.

pause arrête la nouvelle exposition de l'expérimentation, rollback efface la cible et revient à l'état stable, et notify envoie un avertissement d'expérimentation sans modifier la livraison de l'expérimentation.

Fenêtre de terminal
npx @capgo/cli@latest channel set production com.example.app \
--auto-pause-enabled \
--auto-pause-failure-rate-bps 500 \
--auto-pause-window-minutes 60 \
--auto-pause-confidence 0.95 \
--auto-pause-min-attempts 100 \
--auto-pause-min-failures 5 \
--auto-pause-action pause \
--auto-pause-cooldown-minutes 120

Vous pouvez gérer la même fonctionnalité à travers Canaux publics API ou la table de bord :

  1. Ouvrez une application, puis Canaux.
  2. Choisissez le canal.
  3. Ouvrir Informations.
  4. Utilisez le Déploiement progressif section pour choisir la cible, le pourcentage, la durée de cache et la politique d'arrêt automatique.

Pour la routage de canal général et la priorité des appareils, voir Canaux. Pour la récupération d'un bundle d'urgence en dehors d'une mise en production progressive, voir Annuler une mise à jour en direct.