Svenska
  • obduktion
  • molntjänst
  • incident

Obduktion: Docker-bild ej hittad

Incidentrapport för Logto-tjänstens avbrott den 2023-12-17 på grund av förlust av produktions-Docker-bild.

Simeng
Simeng
Developer

Sammanfattning

Vi upplevde ett tjänstavbrott den 2023-12-17 på grund av förlust av Logto:s produktions-Docker-bild.

  • Incidenttid: 2023-12-17 03:56:00 UTC
  • Incidentens varaktighet: 18 minuter
  • Tjänstepåverkan: Logto molntjänst och Logto kärntjänst var otillgängliga under incidenten.
  • Påverkansnivå: Kritisk
  • Rotorsak: Logto:s produktions-Docker-bild raderades av misstag. Misslyckades att hämta bilden från GitHub Container Registry.

Tidslinje

TidHändelse
Tidigt 2023-12-17 (Specifik tid okänd)Logto:s automatiserade GitHub- bildretentionsarbetsflöde kördes. logto och logto-cloud produktionsbilder raderades av misstag.
2023-12-17 03:56:00 UTCLogto molntjänst och Logto kärntjänst blev otillgängliga. Incidenten upptäcktes av vårt övervakningssystem.
2023-12-17 04:03:00 UTCIncidenten bekräftades av vår jourtekniker.
2023-12-17 04:10:00 UTCNy distribution av Logto molntjänst och Logto kärntjänst initierades med den senaste bilden.
2023-12-17 04:15:00 UTCLogto molntjänst och Logto kärntjänst blev tillgängliga. Incidenten löstes automatiskt.

Incidentanalys

Vad hände

Logto:s produktionsbilder raderades av vårt automatiserade GitHub- bildretentionsarbetsflöde. Molntjänsten misslyckades att hämta bilden från GitHub Container Registry och blev otillgänglig.

Service Log

Varför det hände

Det automatiserade GitHub- bildretentionsarbetsflödet raderade produktionsbilderna av misstag. Arbetsflödet var utformat för att radera alla omärkta gamla bilder som är äldre än 3 dagar.

Vi markerade produktionsbilderna med prod-taggen för att identifiera dem som produktionsbilder. Varje gång en produktionsdistribution initierades byggs och pushas en ny bild med prod-taggen till GitHub Container Registry. Prod-taggen kommer att tas bort från den gamla bilden när den nya bilden har blivit lyckat byggd och pushad. Den gamla bilden blir omärkt och kommer att raderas av det automatiserade GitHub- bildretentionsarbetsflödet.

Logto service-bilden byggdes för att stödja flera arkitekturer. Bilden byggdes med buildx och pushades till GitHub Container Registry med --platform-flaggan. Alla taggar applicerades på huvudmanifestlistan. Prod-taggen applicerades också på huvudmanifestlistan. Alla delbilder listade under flermansmarketlistan är kvar omärkta.

Brist på noggrann granskning av tagg- och huvudmanifestliststruktur för Docker- bilden, konfigurerade vi helt enkelt det automatiserade GitHub- bildretentionsarbetsflödet för att radera alla omärkta bilder. Arbetsflödet raderade alla delbilder listade under flermansmarketlistan.

Påverkan

Denna incident orsakade att Logto molntjänst och Logto kärntjänst blev otillgängliga i ungefär 18 minuter. Slutanvändare kunde inte logga in på Logto och komma åt sina klientapplikationer. Logto molnadminportal var också otillgänglig under incidenten.

Åtgärd

Vi har stoppat det automatiserade GitHub- bildretentionsarbetsflödet och distribuerat en ny bild med prod-taggen till GitHub Container Registry. Den nya bilden hämtades framgångsrikt av Logto molntjänst och Logto kärntjänst. Tjänsten blev tillgänglig igen.

Lärdomar

  • Publicera aldrig ett arbetsflöde utan noggrann granskning och testning i produktionsmiljön.
  • Testkör alla resursborttagningsjobben innan de utförs.
  • Alltid ha en reservplan för produktionsmiljön.
  • Definiera noggrant en ny bildretentionspolicy.

Korrigerande och förebyggande åtgärder

  • ✅ Stoppa omedelbart det automatiserade GitHub- bildretentionsarbetsflödet.