Saltare alla navigazione

Distribuzioni progressive

Pronto per incollare Include installazione, sincronizzazione e la guida markdown della fonte. In fase di esecuzione, mentre si distribuisce un canale separato. Obiettivo di distribuzione Per una validazione di produzione reale senza passare al canale intero.

Controlli di distribuzione progressive in un canale Capgo
Configura l'obiettivo di distribuzione, il percentuale, la durata della cache e la politica di pausa automatica dalla scheda Informazioni del canale.

Ogni canale può avere due collegamenti di bundle:

  • Bundle stabile – il bundle normale assegnato al canale.
  • Obiettivo di distribuzione – il bundle candidato che viene rilasciato gradualmente.

Una distribuzione richiede un bundle stabile. Nel dashboard, assegna il bundle stabile prima di scegliere il target; con il Public API, un canale esistente può fornire version e rolloutVersion nella stessa richiesta POST. Capgo fa una decisione casuale per ogni dispositivo eleggibile, quindi la memorizza utilizzando un hash dell'ID dispositivo e dell'ID distribuzione. Ciò rende il cohort adesivo per la durata di cache configurata invece di cambiare con ogni verifica di aggiornamento.

Capgo preserva le decisioni esistenti quando può:

  • Aumenta un percentuale — i dispositivi già selezionati restano selezionati; solo un sottogruppo casuale di dispositivi precedentemente non selezionati viene aggiunto.
  • Diminuisci un percentuale — una selezione casuale del lotto selezionato torna al bundle stabile.
  • Imposta il percentuale a 0% — nessun nuovo dispositivo viene selezionato. I dispositivi già in esecuzione con il target di rollout abilitato continuano a ricevere quel target fino a quando non disabiliti, non torni indietro o non cambi il target.
  • Sospendi — ferma i nuovi dispositivi dall'ingresso mentre i dispositivi già in esecuzione con il target abilitato rimangono su di esso.
  • Disabilita — ferma la risoluzione del target di rollout; le verifiche di aggiornamento utilizzano il bundle stabile.
  1. Carica e assegna un bundle testato come bundle stabile del canale.
  2. Carica il bundle candidato senza sostituire il bundle stabile.
  3. Apri il canale’s Informazioni tab, impostare il candidato come il Destinazione, scegliere un piccolo percentuale, e abilitare il rilascio.
  4. Monitorare il rilascio in Osservare, Log Insights, e la storia del canale. Aumentare la percentuale solo dopo che il cohort è sano.
  5. Quando è pronto, promuovere il target a stabile. Se non è sano, fermarlo o riprenderlo.

Avviare un rilascio per bundle 1.3.0 in 5%:

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

Aumentalo senza riportare dispositivi già selezionati:

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

Il comando di caricamento del pacchetto può impostare l'upload come obiettivo di distribuzione in un passo quando il canale ha già un pacchetto stabile:

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

Vedi il riferimento completo del canale CLI e bundle CLI reference per ogni opzione di distribuzione.

AzioneCosa fa
SospendiFermi nuovi dispositivi dall'ingresso nella distribuzione. I dispositivi già sul target abilitato rimangono lì.
RipristinaConsente nuovi dispositivi idonei di rientrare nuovamente.
DisabilitaFermi la risoluzione del target di distribuzione e utilizza il bundle stabile.
RipristinaElimina il target, disabilita il rilascio, resetta la percentuale al 0% e restituisce i dispositivi allo stato stabile.
PromuoviFa del target stabile il bundle, poi elimina lo stato di rilascio.

Usa un'azione della finestra di terminale alla volta:

Finestra di terminale
# 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

Conserva il bundle di destinazione disponibile fino a quando non lo promuovi o lo ripristini. I bundle collegati come bundle stabile o target di rilascio sono protetti dalla cancellazione.

Capgo può valutare ogni cinque minuti un rilascio abilitato e agire quando il segnale di fallimento supera il tuo livello di soglia. Misura gli installi e le fallite per il target di rilascio nel canale selezionato e nella finestra temporale selezionata, poi utilizza un confine inferiore di Wilson piuttosto che la sola percentuale di fallite.

La pausa automatica è disabilitata di default. Configura questi campi nel canale’ Informazioni tasto o con channel set:

  • Tasso di fallimento di soglia in punti base (500 = 5%). È richiesta una soglia per attivare la politica.
  • Fermata in minuti (predefinito: 60).
  • Confidenza tra 0 e 1 (predefinito: 0.95).
  • Minimo opzioni e fallimenti facoltativo, per evitare di agire su piccoli campioni.
  • Timeout in minuti (predefinito: 60), che impedisce azioni ripetute.
  • Azione: pause, rollback, o notify.

pause ferma la nuova esposizione di rollout, rollback svuota il bersaglio e torna allo stato stabile, e notify invia un'allerta di rollout senza modificare la consegna di rollout.

Finestra del terminale
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

Puoi gestire la stessa funzionalità attraverso il Canali pubblici API o la dashboard:

  1. Apri un'app, quindi Canali.
  2. Scegli il canale.
  3. Apri Informazioni.
  4. Usa il Rilascio progressivo sezione per scegliere il target, il percentuale, la durata della cache e la politica di pausa automatica.

Per la routing dei canali generali e la precedenza dei dispositivi, vedi Canali. Per la ripristino del pacchetto di emergenza fuori da un rollout progressivo, vedere Ripristino di un aggiornamento in tempo reale.