Echo Support / SRE • • 5 dk
Kesinti Anında Kök Neden Analizi (RCA) ve Otomatik İyileşme (Self-Healing) Desenleri
Canlı sistemlerdeki kademeli arızaları (cascading failures) hızla izole etme, 5-Neden yöntemiyle kök nedene inme ve systemd/healtcheck tabanlı otomatik kurtarma mekanizmaları.
#sre
#rca
#incident-response
#resilience
#systemd
Semptom ile Kök Nedeni Ayırmak
Canlı üretim ortamlarında yaşanan kesintilerin büyük çoğunluğunda ilk görülen alarm (örneğin 502 Bad Gateway veya yüksek CPU kullanımı) arızanın kendisi değil, yalnızca bir semptomdur. Etkili bir Kök Neden Analizi (RCA), yangını söndürürken veri kaybı yaşatmadan arızanın ilk tetikleyici halkasını bulmayı hedefler.
Kademeli Arıza (Cascading Failure) Senaryosu
Tipik bir senaryoda dış API yanıt süresinin 120ms'den 2800ms'ye çıkması şu zincirleme etkiyi yaratır:
[ Yavaş Dış Servis ]
↓
[ Worker Havuzu Dolar (Thread Starvation) ]
↓
[ Sağlık Kontrolleri (Healthcheck) Zaman Aşımına Uğrar ]
↓
[ Yük Dengeleyici Sağlıklı Düğümleri Devre Dışı Bırakır ]
Otomatik İyileşme (Self-Healing) Tasarımı
İnsan müdahalesine (MTTR) olan bağımlılığı azaltmak için üç katmanlı koruma uygulanmalıdır:
- Agresif Zaman Aşımı ve Devre Kesici (Circuit Breaker): Dış çağrılar asla ucu açık bırakılmamalı; hata oranı eşiği aşıldığında çağrılar anında kesilerek yerel önbellekten (graceful degradation) yanıt dönülmelidir.
- Bellek Sızıntılarına Karşı
systemdSınırları:
# /etc/systemd/system/app-worker.service.d/override.conf
[Service]
MemoryMax=2G
MemoryHigh=1750M
Restart=on-failure
RestartSec=3s
StartLimitIntervalSec=60
StartLimitBurst=4
- Yüzeysel Olmayan Sağlık Kontrolleri:
/healthzuç noktası sadece200 OKdönmemeli; kritik yerel bağımlılıkları (disk yazılabilirliği ve soket durumu) kontrol ederken, dış servis arızalarında tüm düğümü düşürmeyecek şekilde ayrıştırılmalıdır (livenessvsreadiness).