Postmortem: Immagine Docker non trovata
Rapporto sull'incidente per l'interruzione del servizio Logto del 2023-12-17 a causa della perdita dell'immagine Docker di produzione.
Rapporto sull'incidente per l'interruzione del servizio Logto del 2023-12-17 a causa della perdita dell'immagine Docker di produzione.
Abbiamo sperimentato un'interruzione del servizio il 2023-12-17 a causa della perdita dell'immagine Docker di produzione di Logto.
| Orario | Evento |
|---|---|
| Inizio 2023-12-17 (Orario specifico sconosciuto) | Esecuzione del workflow automatizzato di conservazione delle immagini GitHub di Logto. Le immagini di produzione logto e logto-cloud sono state cancellate per errore. |
| 2023-12-17 03:56:00 UTC | Il servizio cloud di Logto e il servizio core di Logto sono diventati non disponibili. L'incidente è stato rilevato dal nostro sistema di monitoraggio. |
| 2023-12-17 04:03:00 UTC | L'incidente è stato riconosciuto dal nostro ingegnere reperibile. |
| 2023-12-17 04:10:00 UTC | Nuovo deployment del servizio cloud di Logto e del servizio core di Logto avviato con l'ultima immagine disponibile. |
| 2023-12-17 04:15:00 UTC | Il servizio cloud di Logto e il servizio core di Logto sono tornati disponibili. L'incidente è stato risolto automaticamente |
Le immagini di produzione del servizio Logto sono state cancellate dal workflow automatizzato di conservazione delle immagini GitHub. Il servizio cloud non è riuscito a recuperare l'immagine dal GitHub Container Registry e non è stato disponibile.

Il workflow automatizzato di conservazione delle immagini GitHub ha cancellato per errore le immagini di produzione. Il workflow era progettato per cancellare tutte le immagini non taggate che erano più vecchie di 3 giorni.
Abbiamo taggato le immagini di produzione con il tag prod per identificarle come immagini di produzione. Ogni volta che viene avviato un deployment di produzione, una nuova immagine con il tag prod viene costruita e inviata al GitHub Container Registry. Il tag prod viene rimosso dall'immagine vecchia dopo che la nuova immagine è stata costruita e inviata con successo. L'immagine vecchia diventa non taggata e verrà cancellata dal workflow automatizzato di conservazione delle immagini GitHub.
Le immagini del servizio Logto sono state costruite per supportare architetture multiple. L'immagine è stata costruita con buildx e inviata al GitHub Container Registry con il flag --platform. Tutti i tag sono stati applicati alla lista manifest principale. Anche il tag prod è stato applicato alla lista manifest principale. Tutte le sottocategorie di immagini elencate sotto la lista manifest multi-arch sono rimaste non taggate.
A causa della mancanza di un'attenta revisione della struttura dei tag e della lista manifest delle immagini Docker, abbiamo semplicemente configurato il workflow automatizzato di conservazione delle immagini GitHub per cancellare tutte le immagini non taggate. Il workflow ha cancellato tutte le sottocategorie di immagini elencate sotto la lista manifest multi-arch.
Questo incidente ha causato l'indisponibilità del servizio cloud di Logto e del servizio core di Logto per circa 18 minuti. Gli utenti finali non sono stati in grado di accedere a Logto e alle loro applicazioni client. Anche il portale admin del cloud di Logto non era disponibile durante l'incidente.
Abbiamo interrotto il workflow automatizzato di conservazione delle immagini GitHub e distribuito una nuova immagine con il tag prod sul GitHub Container Registry. La nuova immagine è stata recuperata con successo dal servizio cloud di Logto e dal servizio core di Logto. Il servizio è tornato disponibile.