Zum Inhalt springen

Progressive Rollouts

A progressive rollout hält die stabile Veröffentlichung eines Kanals stable bundle am Platz, während eine separate rollout target Ziel an einem kontrollierten Teil der Geräte geliefert wird. Es ist nützlich, wenn Sie eine echte Produktionsvalidierung ohne das Wechseln des gesamten Kanals wollen.

Progressive-Rollout-Kontrollen in einem Capgo-Kanal
Konfigurieren Sie das Rollout-Ziel, den Prozentsatz, die Cache-Dauer und die automatische Pause-Politik von der Informationsseite eines Kanals.

Jeder Kanal kann zwei Veröffentlichungslinks haben:

  • Stabile Veröffentlichung — die normale Veröffentlichung, die dem Kanal zugewiesen ist.
  • Zielgruppe — der Kandidatenbundle, das allmählich freigegeben wird.

Eine Ausrollung benötigt einen stabilen Bundle. In der Dashboard, zuweisen Sie den stabilen Bundle vor der Auswahl der Zielgruppe; mit dem öffentlichen API, kann ein bestehender Kanal Lieferungen version und rolloutVersion in the same POST request. Capgo makes a random decision for each eligible device, then caches it using a hash of the device ID and the rollout ID. That makes the cohort sticky for the configured cache duration instead of changing on every update check.

Die Standard-Ausrollungsentscheidung-Cache-Dauer beträgt 30 Tage. Nachdem es abgelaufen ist, kann ein Gerät wieder ausgewählt werden. Die Änderung der Zielgruppe erstellt eine neue Ausrollung-IDs und startet eine neue Kohorte. Sie können die Cache-Dauer von 60 Sekunden bis 365 Tage einstellen.

Prozentsatzänderungen

Capgo preserves existing decisions when it can:

  • __CAPGO_KEEP_0__ bewahrt bestehende Entscheidungen, wenn es kann: Eine Erhöhung eines Prozentsatzes — Geräte, die bereits ausgewählt sind, bleiben ausgewählt; nur eine zufällige Teilmenge von zuvor nicht ausgewählten Geräten wird hinzugefügt.
  • Ein Prozentsatz verringern — eine zufällige Teilmenge der ausgewählten Kohorte kehrt zum stabilen Bundle zurück.
  • Den Prozentsatz auf 0 % setzen — keine neuen Geräte werden ausgewählt. Geräte, die bereits das aktivierte Rollout-Ziel laufen, erhalten dieses Ziel, bis Sie es deaktivieren, zurückrollen oder das Ziel ändern.
  • Pausieren — neue Geräte können nicht mehr in das System aufgenommen werden, während Geräte, die bereits das aktivierte Ziel laufen, weiterhin auf diesem Ziel bleiben.
  • Deaktivieren — die Auflösung des Rollout-Ziels wird eingestellt; Aktualisierungsprüfungen verwenden das stabile Bundle.
  1. Ein getestetes Bundle hochladen und diesem dem Channel als stabiles Bundle zuweisen.
  2. Das Kandidaten-Bundle hochladen, ohne das Stabil-Bundle zu ersetzen.
  3. Den Kanal’s Informationen Registerkarte, das Kandidaten-Bundle als Ziel, eine kleine Prozentsatz wählen und die Ausrollung aktivieren.
  4. Die Ausrollung in Beobachten, Log-Insights, und der Kanal-Geschichte überwachen. Erhöhen Sie den Prozentsatz nur, wenn die Kohorte gesund ist.
  5. Wenn es bereit ist, das Ziel auf Stabil versetzen. Wenn es nicht gesund ist, pausieren oder zurückrollen Sie es.

Starte eine Auslieferung für ein Bundle 1.3.0 bei 5%:

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

Erhöhe es ohne die Geräte neu zu konfigurieren, die bereits ausgewählt sind:

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

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

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

Siehe den vollständigen Kanal CLI Referenz und Bundle CLI Referenz für jede Rollout-Option.

AktionWie es funktioniert
PausierenHält neue Geräte von der Rollout-Einbindung ab. Geräte, die bereits auf der Zielgruppe sind, bleiben dort.
WiederaufnehmenErstellt neuen Geräten wieder die Möglichkeit, sich der Rollout-Einbindung zu unterziehen.
DeaktivierenBeendet die Auflösung des Rollout-Ziels und verwendet das stabile Bundle.
Rückgängig machenLeert das Ziel, deaktiviert den Rollout, setzt die Prozentsatz auf 0 % zurück und kehrt die Geräte auf stabil zurück.
VorschubKontext: Capgo-Marketing-Website. Rolle: Abschnitts- oder Seitenüberschrift. Gesehen in: Seite affiliate.astro. Nachrichtenschlüssel `affiliate_step2_title` (Affiliate-Schritt2-Titel).

Macht das Rollout-Ziel zum stabilen Bundle, dann löscht die Rollout-Zustand.

Benutze nur eine Terminal-Aktion zur Zeit:
# 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

Zur Zwischenablage kopieren

Halten Sie das Ziel-Bundle bis Sie es vorschubt oder rückgängig machen. Bundles, die als stabiles Bundle oder Rollout-Ziel verknüpft sind, sind vor der Löschung geschützt.

Automatischer Pausenrichtlinie (Auto-pause policy)

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

Automatische Pause ist standardmäßig deaktiviert. Konfigurieren Sie diese Felder in der Kanal’s Information Schwellenwert für Fehlerrate channel set:

  • in Basispunkten ( = 5%). Ein Schwellenwert ist erforderlich, damit die Politik ausgelöst wird.500 Zeitraum
  • in Minuten (Standard: 60). Vertrauen
  • zwischen und 0 __CAPGO_KEEP_0__ kann alle fünf Minuten eine aktivierte Rollout bewerten und handeln, wenn sein Fehlersignal Ihre Schwellenwerte überschreitet. Es misst die Installationen und Fehlschläge für das Rollout-Ziel in der ausgewählten Kanal und Zeitfenster und verwendet dann eine Wilson-Vertrauensschranke anstatt der Rohfehlschlagrate allein. 1 (default: 0.95).
  • Optionaler Mindestversuche und -fehler, um auf kleine Proben zu vermeiden.
  • Cooldown in Minuten (Standard: 60), das wiederholte Handeln verhindert.
  • Aktion: pause, rollback, oder notify.

pause stellt die neue Rollout-Exposition ein, rollback löscht das Ziel und kehrt zu stabil, und notify sendet eine Rollout-Alarmmeldung ohne Rollout-Lieferung 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 über den Steuerungsbereich:

  1. Öffnen Sie eine App, dann Kanäle.
  2. context:Capgo-Release-Kanäle-Funktion
  3. Wählen Sie den Kanal. Öffnen.
  4. Informationen Verwenden Sie den Progressive-Rollout-Bereich, um den Zielgruppe, den Prozentsatz, die Cache-Dauer und die automatische Pausepolitik auszuwählen.

Für allgemeine Kanalrouting und Gerätepriorität, siehe KanäleFür Notfall-Wiederherstellung eines Pakets außerhalb eines progressiven Rollouts, siehe Ein Live-Update rückgängig machen.