ConfigMap Yazım Hatası Kesintisi
Üretim 2 saat kapalı. Kök neden: Tek bir yazım hatası.
Değişiklik:
# ConfigMap update
data:
DATABASE_CONNECITON_TIMEOUT: "30000" # typo: CONNECITON
Ne oldu:
- Uygulama DATABASE_CONNECTION_TIMEOUT'u aradı
- Bulamadı (yazım hatası) ve varsayılan değer tanımlı değildi
- Config yükleyici veritabanı sürücüsüne sessizce 0 geçti
- Bizim sürücümüzde — JDBC ve libpq'da olduğu gibi — 0 timeout timeout yok demek
- Zaten yavaş bir replica'ya giden sorgular süresiz askıda kaldı, bağlantı havuzu takılı bağlantılarla doldu ve arkasındaki her istek servis yanıt vermeyi bırakana kadar kuyrukta bekledi
Neden yakalanmadı:
- ConfigMap'ler sadece YAML — şema yok
- Kubernetes anahtar adlarını doğrulamaz
- PR incelemesi yazım hatasını kaçırdı
- Entegrasyon testleri farklı config kullanıyordu
Düzeltmeler:
- Uygulama zorunlu env var'ları açılışta doğruluyor
- Kritik config eksikse hızlı başarısız ol (fail fast)
- CI'da ConfigMap'ler için şema doğrulaması
- Sorunları erken yakalamak için canary deployment'lar
Config şema kontrolleri, bir CI/CD pipeline'ına ekleyebileceğiniz en ucuz kapılardan biri — iki saatlik kesintiye karşılık birkaç satır doğrulama.
Ders: ConfigMap'ler kod değildir — ama kodmuş gibi davranın.
Bu tür olaylar önlenebilir. AWS Yönetilen Hizmetler ekibimiz müşteri ortamlarını yapay zekâ destekli izleme ve nöbetteki kıdemli mühendislerle 7/24 gözetir — böylece bu tür hikâyeler arşivde kalır.