Postmortem: Docker görüntüsü bulunamadı
2023-12-17 tarihinde üretim Docker görüntüsünün kaybı nedeniyle Logto hizmet kesintisi olay raporu.
Özet
Logto üretim Docker görüntüsünün kaybı nedeniyle 2023-12-17 tarihinde bir hizmet kesintisi yaşadık.
- Olay zamanı: 2023-12-17 03:56:00 UTC
- Olay süresi: 18 dakika
- Hizmet etkisi: Olay sırasında Logto bulut hizmeti ve Logto çekirdek hizmeti kullanılamaz hale geldi.
- Etkileşim seviyesi: Kritik
- Kök neden: Logto üretim docker görüntüsü yanlışlıkla silindi. Görüntü GitHub Container Registry'den alınamadı.
Zaman çizelgesi
Zaman | Olay |
---|---|
Erken 2023-12-17 (Belirli zaman bilinmiyor) | Logto otomatik GitHub görüntü saklama iş akışı çalıştırıldı. logto ve logto-cloud üretim görüntüleri yanlışlıkla silindi. |
2023-12-17 03:56:00 UTC | Logto bulut hizmeti ve Logto çekirdek hizmeti kullanılamaz hale geldi. Olay izleme sistemimiz tarafından tespit edildi. |
2023-12-17 04:03:00 UTC | Olay nöbetçi mühendisimiz tarafından kabul edildi. |
2023-12-17 04:10:00 UTC | En son görüntüyle Logto bulut hizmeti ve Logto çekirdek hizmetinin yeni konuşlandırması tetiklendi. |
2023-12-17 04:15:00 UTC | Logto bulut hizmeti ve Logto çekirdek hizmeti kullanılabilir hale geldi. Olay otomatik olarak çözüldü. |
Olay analizi
Ne oldu
Logto hizmeti üretim görüntüleri, otomatik GitHub görüntü saklama iş akışımız tarafından silindi. Bulut hizmeti, görüntüyü GitHub Container Registry'den alamadı ve kullanılamaz hale geldi.
Neden oldu
Otomatik GitHub görüntü saklama iş akışı üretim görüntülerini yanlışlıkla sildi. İş akışı, 3 günden eski olan tüm etiketlenmemiş eski görüntüleri silmek üzere tasarlanmıştı.
Üretim görüntülerini üretim görüntüleri olarak tanımlamak için prod
etiketi ile etiketledik. Ne zaman bir üretim konuşlandırması tetiklense, prod
etiketiyle yeni bir görüntü oluşturulup GitHub Container Registry'ye gönderilir. Yeni görüntü başarıyla oluşturulup gönderildikten sonra eski görüntüden prod
etiketi kaldırılacaktır. Eski görüntü etiketlenmemiş hale gelecek ve otomatik GitHub görüntü saklama iş akışı tarafından silinecektir.
Logto hizmet görüntüsü birden fazla mimariyi destekleyecek şekilde inşa edilmiştir. Görüntü buildx
ile oluşturuldu ve --platform
bayrağı ile GitHub Container Registry'ye gönderildi. Tüm etiketler ana manifest listesinde uygulandı. prod
etiketi de ana manifest listesine uygulandı. Çoklu mimari manifest listesinde yer alan tüm alt görüntüler etiketlenmemiş olarak kaldı.
Docker görüntüsünün etiket ve manifest liste yapısının dikkatli bir şekilde incelenmemesi nedeniyle, otomatik GitHub görüntü saklama iş akışını tüm etiketlenmemiş görüntüleri silmek üzere yapılandırdık. İş akışı, çoklu mimari manifest listesinde yer alan tüm alt görüntüleri sildi.
Etki
Bu olay Logto bulut hizmeti ve Logto çekirdek hizmetinin yaklaşık 18 dakika boyunca kullanılamaz hale gelmesine neden oldu. Son kullanıcılar Logto'ya giriş yapamadılar ve istemci uygulamalarına erişemediler. Logto bulut yönetim portalı da olay sırasında kullanılamaz hale geldi.
Çözüm
Otomatik GitHub görüntü saklama iş akışını durdurduk ve prod
etiketi ile yeni bir görüntü GitHub Container Registry'ye dağıttık. Yeni görüntü Logto bulut hizmeti ve Logto çekirdek hizmeti tarafından başarıyla alındı. Hizmet yeniden kullanılabilir hale geldi.
Alınan Dersler
- Üretim ortamına dikkatle gözden geçirme ve test olmadan iş akışı yayınlanmamalı.
- Herhangi bir kaynak silme işi çalıştırılmadan önce kuru çalıştırma yapılmalıdır.
- Üretim ortamı için her zaman yedek bir plan olmalıdır.
- Yeni bir görüntü saklama politikası dikkatlice tanımlanmalıdır.
Düzeltici ve önleyici tedbirler
- ✅ Otomatik GitHub görüntü saklama iş akışı hemen durdurulmuştur.