Zum Inhalt springen

Progressive Rollouts

Ein fortschrittlicher Rollout hält einen Kanals stabile Bundle während der Bereitstellung einer separaten Zielgruppe für eine kontrollierte Teilmenge von Geräten. Es ist nützlich, wenn Sie eine echte Produktionsvalidierung ohne das Wechseln der gesamten Kanal auf einmal wünschen. Progressive-Rollout-Kontrollen in einem __CAPGO_KEEP_0__-Kanal

Progressive rollout controls in a Capgo channel
Wie progressive Rollouts funktionieren

Abschnitt mit dem Titel “Wie progressive Rollouts funktionieren”

Jeder Kanal kann zwei Bundle-Links haben:

Stabiler Bundle

  • — der normale Bundle, der dem Kanal zugewiesen ist. Zielgruppe für eine Rollout
  • — der Kandidaten-Bundle, der allmählich freigegeben wird. in place while delivering a separate

Ausrollout benötigen eine stabile Bundle. In der Dashboard, zuweisen Sie das stabile Bundle, bevor Sie den Ziel auswählen; mit dem öffentlichen API, kann ein bestehender Kanal zuführen version und rolloutVersion im gleichen POST-Anfrage. Capgo macht eine zufällige Entscheidung für jeden zustimmenden Gerät, dann speichert es mit einem Hash des Geräte-IDs und der Ausrollout-IDs. Das macht die Kohorte für die konfigurierte Cache-Dauer statisch anstatt sich auf jeder Aktualisierung zu ändern.

Capgo bewahrt bestehende Entscheidungen, wenn es kann:

  • Prozent erhöhen — ausgewählte Geräte bleiben ausgewählt; nur eine zufällige Teilmenge von zuvor nicht ausgewählten Geräten wird hinzugefügt.
  • Prozent verringern — eine zufällige Auswahl der ausgewählten Kohorte kehrt zur stabilen Bundle zurück.
  • Satz auf 0 % setzen — keine neuen Geräte werden ausgewählt. Geräte, die bereits das aktivierte Rollout-Ziel verwenden, erhalten dieses Ziel, bis Sie es deaktivieren, zurücksetzen oder das Ziel ändern.
  • Pause — stoppt neue Geräte von der Eingabe, während Geräte, die bereits das aktivierte Ziel verwenden, weiterhin auf diesem Ziel bleiben.
  • Deaktivieren — stoppt die Auflösung des Rollout-Ziels; Aktualisierungsprüfungen verwenden das stabile Bundle.
  1. Hochladen und zuweisen eines getesteten Bundles als stabiles Bundle des Kanals.
  2. Hochladen des Kandidaten-Bundles ohne das stabile Bundle zu ersetzen.
  3. Öffnen des Kanals’ Information Registerkarte, Kandidaten als Ziel festlegen Zielgruppe, eine kleine Prozentsatz auswählen und die Ausrollung aktivieren.
  4. Die Ausrollung in "Monitor" überwachen Beobachten, Log-Insights, und die Kanalhistorie. Erhöhen Sie den Prozentsatz nur, wenn die Kohorte gesund ist.
  5. Wenn sie bereit ist, das Ziel auf "Stable" vorziehen. Wenn sie nicht gesund ist, pausieren oder zurückrollen Sie.

Eine Ausrollung für das Bundle starten 1.3.0 bei 5%:

Terminalfenster
npx @capgo/cli@latest channel set production com.example.app \
--rollout-bundle 1.3.0 \
--rollout-percentage 5 \
--rollout-enable

Erhöhen Sie es ohne Geräte neu zu setzen, die bereits ausgewählt sind:

Terminalfenster
npx @capgo/cli@latest channel set production com.example.app \
--rollout-percentage 25

Die Befehlszeile zum Hochladen des Bundles kann die Upload-Option als Ziel für eine Rollout-Veröffentlichung in einem Schritt setzen, wenn der Kanal bereits ein stabiles Bundle hat:

Terminalfenster
npx @capgo/cli@latest bundle upload com.example.app \
--path ./dist \
--channel production \
--rollout 5

Siehe die vollständige Kanalreferenz CLI und bundle CLI Referenz für jede Rollout-Option.

AktionWas es tut
PauseNeue Geräte von der Rollout-Erweiterung ausschließen. Geräte, die bereits auf der Zielgruppe aktiviert sind, bleiben dort.
WiederaufnehmenErmöglicht es neuen wahlberechtigten Geräten, wieder in die Rollout-Erweiterung einzutreten.
DeaktivierenDie Auflösung des Rollout-Ziels beendet und die stabile Bundle verwendet.
Rückgängig machenStellt das Ziel zurück, deaktiviert die Ausrollung, setzt den Prozentsatz auf 0 % zurück und kehrt die Geräte in den stabilen Zustand zurück.
VorschlagenMacht das Ausrollungsziel auf das stabile Bundle aus, dann löscht die Ausrollungsstatus.

Benutze nur eine Aktion pro Terminal:

Terminalfenster
# 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

Halten Sie das Ziel-Bundle bis Sie es vorschlagen oder zurückrollen, verfügbar. Bundles, die als stabiles Bundle oder Ausrollungsziel verknüpft sind, sind vor der Löschung geschützt.

Capgo kann alle fünf Minuten eine aktivierte Ausrollung bewerten und handeln, wenn sein Fehlersignal Ihre Schwelle überschreitet. Es misst die Installationen und Fehlschläge für das Ausrollungsziel in der ausgewählten Kanal und Zeitfenster und verwendet dann eine Wilson-Vertrauensschranke anstelle der Rohfehlerrate allein.

Automatisches Pausieren ist standardmäßig deaktiviert. Konfigurieren Sie diese Felder im Kanal’s Information Taste oder mit channel set:

  • Schwellenwert für Fehlschläge in Basispunkten (500 = 5%). Ein Schwellenwert ist erforderlich, damit die Richtlinie ausgelöst wird.
  • Fenster in Minuten (Standard: 60).
  • Vertrauen zwischen 0 und 1 (Standard: 0.95).
  • Optional Mindestversuche und Fehlschläge, um vorzeitig auf kleine Stichproben zu reagieren.
  • Kühlzeit in Minuten (Standard: 60), die wiederholte Aktionen verhindert.
  • Aktion: pause, rollback, oder notify.

pause beendet die neue Rollout-Auslieferung, rollback löscht das Ziel und kehrt zur stabilen Version zurück, und notify sendet eine Rollout-Benachrichtigung ohne Rollout-Auslieferung zu ändern.

Terminal-Fenster
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

Sie können die gleiche Funktion über die Öffentliche Kanäle API oder das Dashboard:

  1. Öffnen Sie eine App, dann Kanäle.
  2. Wählen Sie den Kanal.
  3. Öffnen Informationen.
  4. Verwenden Sie das Progressive Rollout Abschnitt, um den Ziel, Prozentsatz, Cache-Dauer und Auto-Pause-Politik auszuwählen.

Für allgemeine Kanalrouting und Gerätevorzugung, sehen Sie Kanäle. Für Notfall-Paket-Wiederherstellung außerhalb eines progressiven Rollouts, siehe Rückgängigmachen eines Live-Updates.