Vai al contenuto

Rollback e recupero

Il rollback è una nuova mutazione controllata, non una conseguenza automatica di uno smoke fallito. Deve ripristinare soltanto il componente difettoso usando un target registrato prima della finestra.

flowchart TD
    esito["Verifica post-deployment"] --> ok{"Tutti i controlli passano?"}
    ok -->|"sì"| chiudi["Conserva evidenza e termina"]
    ok -->|"no"| stop["Ferma ogni altra mutazione"]
    stop --> causa{"Componente isolato?"}
    causa -->|"API"| api["Autorizza rollback API"]
    causa -->|"Frontend"| fe["Autorizza rollback Frontend"]
    causa -->|"D1 o ambiguo"| blocco["Nessun rollback improvvisato; Issue di recupero"]
    api --> smoke["Smoke rollback e controlli Access/D1"]
    fe --> smoke
    smoke --> prova{"Baseline ripristinata?"}
    prova -->|"sì"| evidenza["Registra target, risultato e rischio residuo"]
    prova -->|"no"| blocco

Trigger

  • route canonica non disponibile o servita dal Worker sbagliato;
  • revisione, artefatto o versione non corrispondenti;
  • health API o D1 non verde;
  • Access o CORS esatto regressi;
  • asset, sitemap, robots, redirect o 404 non conformi;
  • Frontend con binding o marker di credenziali;
  • routing duplicato, loop o ownership ambigua;
  • evidenza provider parziale o non univoca.

Rollback API

Il target è una versione API precedentemente registrata e compatibile con lo schema D1 corrente:

npx wrangler rollback <VERSIONE_API_PRECEDENTE> --env <AMBIENTE> --yes

Il comando è solo una forma tecnica: ambiente, versione e messaggio devono provenire dall'Issue autorizzato. Dopo il ripristino eseguire health, version, D1 health, Access, CORS e route API in sola lettura.

Rollback Frontend

Il target è una versione Frontend precedente:

npx wrangler rollback <VERSIONE_FRONTEND_PRECEDENTE> \
  --env <AMBIENTE> \
  --config apps/frontend/wrangler.jsonc \
  --yes

Il dominio resta Frontend-owned. Non si ripristina l'HTML legacy dell'API e non si modifica l'API durante un rollback Frontend.

Cosa il rollback non fa

  • non annulla migrazioni D1;
  • non cambia route, domini, DNS o Access;
  • non distribuisce l'altro Worker;
  • non corregge codice;
  • non ripete automaticamente l'operazione fallita;
  • non prova pubblicazione, email o altre mutazioni editoriali.

Usare i runbook rollback API, rollback Frontend e smoke test limitato.