
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.