Analiza powypadkowa: obraz Docker nie znaleziony
Raport z incydentu w związku z przerwą w działaniu usługi Logto w dniu 2023-12-17 z powodu utraty produkcyjnego obrazu Docker.
Raport z incydentu w związku z przerwą w działaniu usługi Logto w dniu 2023-12-17 z powodu utraty produkcyjnego obrazu Docker.
Doświadczyliśmy przerwy w działaniu usługi w dniu 2023-12-17 z powodu utraty produkcyjnego obrazu Docker dla Logto.
| Czas | Wydarzenie |
|---|---|
| Wczesny 2023-12-17 (dokładny czas nieznany) | Automatyczny przepływ pracy retencji obrazów GitHub Logto został wykonany. Obrazy produkcyjne logto i logto-cloud zostały usunięte przypadkowo. |
| 2023-12-17 03:56:00 UTC | Usługa chmurowa Logto i usługa podstawowa Logto stały się niedostępne. Incydent wykryty przez nasz system monitorowania. |
| 2023-12-17 04:03:00 UTC | Incydent został potwierdzony przez naszego inżyniera na wezwanie. |
| 2023-12-17 04:10:00 UTC | Nowe wdrożenie usługi chmurowej Logto i usługi podstawowej Logto zostało uruchomione z najnowszym obrazem. |
| 2023-12-17 04:15:00 UTC | Usługa chmurowa Logto i usługa podstawowa Logto stały się dostępne. Incydent rozwiązany automatycznie. |
Produkcja obrazów usługi Logto została usunięta przez nasz automatyczny przepływ pracy retencji obrazów GitHub. Usługa chmurowa nie zdołała pobrać obrazu z GitHub Container Registry i stała się niedostępna.

Automatyczny przepływ pracy retencji obrazów GitHub przypadkowo usunął produkcyjne obrazy. Przepływ pracy został zaprojektowany do usuwania wszystkich nieotagowanych starszych obrazów, które mają więcej niż 3 dni.
Otagowaliśmy produkcyjne obrazy tagiem prod w celu identyfikacji jako obrazy produkcyjne. Kiedy zostaje uruchomione wdrożenie produkcyjne, nowy obraz z tagiem prod jest budowany i wysyłany do GitHub Container Registry. Tagi prod są usuwane ze starego obrazu po pomyślnym zbudowaniu i wysłaniu nowego obrazu. Stary obraz staje się nieotagowany i zostanie usunięty przez automatyczny przepływ pracy retencji obrazów GitHub.
Obraz usługi Logto został zbudowany do obsługi wielu architektur. Obraz został zbudowany z użyciem buildx i wysłany do GitHub Container Registry z flagą --platform. Wszystkie tagi zostały przypisane do głównej listy manifestów. Tag prod również został przypisany do głównej listy manifestów. Wszystkie podobrazy wymienione pod listą manifestów multi-arch pozostają nieotagowane.
Brak starannego przeglądu struktury tagów i listy manifestów obrazu Docker, po prostu skonfigurowaliśmy automatyczny przepływ pracy retencji obrazów GitHub do usuwania wszystkich nieotagowanych obrazów. Przepływ pracy usunął wszystkie podobrazy wymienione pod listą manifestów multi-arch.
Ten incydent spowodował, że usługa chmurowa Logto i usługa podstawowa Logto były niedostępne przez około 18 minut. Użytkownicy końcowi nie mogli zalogować się do Logto i uzyskać dostępu do swoich aplikacji klienckich. Portal administracyjny chmury Logto również był niedostępny podczas incydentu.
Zatrzymaliśmy automatyczny przepływ pracy retencji obrazów GitHub i wdrożyliśmy nowy obraz z tagiem prod do GitHub Container Registry. Nowy obraz został pomyślnie pobrany przez usługę chmurową Logto i usługę podstawową Logto. Usługa stała się ponownie dostępna.