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.
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
Tid | Hä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 UTC | Logto molntjänst och Logto kärntjänst blev otillgängliga. Incidenten upptäcktes av vårt övervakningssystem. |
2023-12-17 04:03:00 UTC | Incidenten bekräftades av vår jourtekniker. |
2023-12-17 04:10:00 UTC | Ny distribution av Logto molntjänst och Logto kärntjänst initierades med den senaste bilden. |
2023-12-17 04:15:00 UTC | Logto 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.
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.