Türkçe
  • postmortem
  • bulut-hizmeti
  • olay

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.

Simeng
Simeng
Developer

Ö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

ZamanOlay
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 UTCLogto bulut hizmeti ve Logto çekirdek hizmeti kullanılamaz hale geldi. Olay izleme sistemimiz tarafından tespit edildi.
2023-12-17 04:03:00 UTCOlay nöbetçi mühendisimiz tarafından kabul edildi.
2023-12-17 04:10:00 UTCEn son görüntüyle Logto bulut hizmeti ve Logto çekirdek hizmetinin yeni konuşlandırması tetiklendi.
2023-12-17 04:15:00 UTCLogto 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.

Hizmet Günlüğü

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.