İçeriğe geç
Muhammet Şafak
en
Soran: Emir Cevaplandı:

Hata oranı artınca otomatik rollback yapan (self-healing) deploy altyapısını nasıl tasarlarım?


Soru

Yeni sürüm DeployerPHP/Kubernetes ile başarıyla canlıya alındı, pipeline yeşil yandı. Ama 5 dk sonra üretimde 5xx hata oranı %10'un üzerine çıktı. Bunu bir mühendis ekran başında beklemek yerine; Prometheus/Grafana veya New Relic metriklerini izleyip anomaliyi yakalayan ve eşik aşılınca otomatik olarak bir önceki kararlı sürüme dönen self-healing altyapıyı nasıl tasarlarım?

Cevap

Kısa cevap: Bir insanı dashboard başında bekletme — metrikleri doğrudan deploy’un içine göm. Doğru desen, otomatik analizle çalışan progressive delivery.

Yaşadığın şey net: pipeline yeşil yanıyor ama “yeşil” sadece deploy’un teknik başarısı; üretimdeki gerçek sağlık değil. İkisini birbirine bağlaman lazım.

  1. Deploy sonrası bir canary ağırlığında “bake” süresi tut. Yeni sürümü hemen %100’e açma; bir süre kısmi trafikte beklet ve bu pencerede Prometheus/New Relic’ten 5xx oranı, latency ve kritik iş metriklerini bir eşiğe/baseline’a karşı sorgula. Anomali bu pencerede yakalanır.
  2. Eşik aşılırsa otomatik olarak son kararlı sürüme dön. Health-gate breach olunca pipeline insan beklemeden rollback tetikler ve ekibi uyarır. İnsan gece nöbetinde değil, sadece bilgilendirilir.
  3. Önceki release’i hazır tut ki rollback anlık olsun. Deployer release’leri saklar, Kubernetes eski ReplicaSet’i tutar — geri dönüş yeni bir deploy değil, hazır olana geçiştir. Tooling: k8s’te Argo Rollouts / Flagger bu canary analizini + rollback’i otomatik yürütür; Deployer’da deploy sonrası metrik polling yapıp breach’te deploy:rollback çağıran bir health-gate adımı ekle.
  4. Guardrail’leri doğru kur, yoksa flapping olur. Makul bir eşik seç (gürültüye takılıp sürekli rollback yapmasın), minimum örnek sayısı şart koş ve sadece deploy’u geri al — data migration’ı değil. Bu yüzden migration’lar geriye uyumlu olmalı; yoksa rollback şemayı tutarsız bırakır.

Sonuç: Ben olsam canary + otomatik metrik analizi + son-kararlıya auto-rollback kurar, insanı nöbetçi değil uyarılan taraf yapardım — self-healing olan deploy, kişi değil. Otomatik rollback sorunu durdurur ama nedeni anlamaz; o yüzden bunu suçlu aramayan bir post-mortem kültürüyle tamamla — kalıcı düzeltme oradan gelir.

İlgili Yazılar

Etiketler: #ci-cd#dayanıklılık#gözlemlenebilirlik
Paylaş:

Yorumlar

Yorum yapmak için GitHub hesabınızla giriş yapmanız yeterli. Yorumlar GitHub Discussions üzerinde saklanır.

Diğer Sorular

Tüm sorular
Bora

Fintek API'ı için Canary mi, Blue-Green deployment mı?

Rutin sürümlerde Canary'yi varsayılan yap (en küçük blast radius), instant rollback istediğin büyük cutover'lar için Blue-Green'i sakla. Asıl kilit nokta veritabanı: her iki strateji de geriye uyumlu (expand/contract) şema değişikliği şart koşar.

#ci-cd#deploy#dayanıklılık

Sitede Ara

Yazı, proje ve sayfalarda arama yapmak için yazmaya başlayın.

Esc ile kapat Pagefind ile güçlendirildi