Bilgisayarını tamir etmeyi reddeden IT çalışanı çizimi

Gece yarısı deploy yapıyoruz. Takımın yarısı uyumuş; Hüseyin, Eyüp ve ben ayaktayız. QA tarafında cevap hazır: “Test ettim abi, taş gibi.” Prod’a çıkınca sistem gidiyor. O taş gibi kodda kullanıcı girdisiyle sorun çıkaran bir regex var.

Hüseyin loglara bakıyor, ben podlara. Kalkan geri iniyor. Rollback yapıyoruz ama state de bozulmuş; eski sürüme dönmek tek başına yetmiyor. Bir yandan PagerDuty çalıyor, bir yandan Slack’te yarınki postmortem konuşuluyor. Abi önce sistemi kaldırsak?

İki saatin sonunda toparlıyoruz. Kullanıcılar haklı olarak sövüyor. O saatte kimseye regex anlatacak hâlin de yok zaten.

Şunları baştan konuşsak

  • “Test ettim” derken neyi test ettin? Sadece düzgün girdiyle çalışan ekranı mı, kullanıcının yapabileceği saçmalıkları da mı?
  • Deploy planına dönüş yolunu da yaz. Veri değiştiyse eski kodu açınca ne olacağını sonradan düşünmeyelim.
  • Gece değişiklik yapıyorsan gerektiğinde ulaşacağın insanlar belli olsun. “Onu bir tek arkadaş biliyor, o da uyuyor” cevabı işe yaramıyor.
  • Arıza sürerken aynı adama beş kanaldan durum sorma. Bir kişi bilgi toplasın, diğerleri işini yapsın.
  • Postmortem’de isim arayacağına tekrarını engelleyecek işi çıkar. O işin sahibi ve tarihi de olsun; dokümanı kapatınca mesele kapanmıyor.

Racon dediğin biraz da bu. Her şeyi bilmen gerekmiyor; bilmediğini prod’da denemesen yeter.