Hata oranı artınca otomatik rollback yapan (self-healing) deploy altyapısını nasıl tasarlarım?
Yeni sürümü canary ağırlığında bir bake süresi boyunca 5xx ve latency eşiğine karşı ölçün; eşik aşılırsa son kararlı sürüme dönüp ekibi yalnızca uyarın.
Etiket
Arıza altında ayakta kalma: timeout, yeniden deneme, geri çekilme ve bölmeleme. Bu etiketle sorulan sorular ve cevapları.
Bu etikette 14 cevaplanmış soru var.
Yeni sürümü canary ağırlığında bir bake süresi boyunca 5xx ve latency eşiğine karşı ölçün; eşik aşılırsa son kararlı sürüme dönüp ekibi yalnızca uyarın.
Rutin sürümlerde Canary'yi varsayılan yapın, instant rollback istediğiniz büyük cutover'lara Blue-Green'i saklayın; ikisi de geriye uyumlu şema şart koşar.
Periyodik base backup alıp WAL'ı sürekli S3'e arşivleyin, recovery_target_time ile hatalı ifadenin saniyeler öncesine dönün ve restore'u prova edin.
İşe `tries` ve `backoff` verin: sınır dolunca Laravel işi `failed_jobs`'a taşır, `JobFailed` listener'ı alert eder, düzelen işi `queue:retry` geri oynatır.
Liveness'ı bağımlılıksız tutun, bağımlılıkları readiness'ta cache'li yoklayın: liveness fail pod'u restart eder, readiness fail yalnız trafiği keser.
Kilitleri tek bir global sırada, artan PK gibi, alın; transaction'ı kısa ve dar tutun, hedefli `FOR UPDATE` kullanın, kalanı backoff ile retry edin.
Zincirin en dışına `defer recover()` koyun, stack'i request id ile loglayıp generic 500 dönün, metrik basın, her goroutine'e kendi recover'ını verin.
RPO 5 dakika sürekli cross-region replikasyon ve PITR, RTO 30 dakika ise IaC ile hazır bekleyen sıcak yedek ve Route 53 failover demek; düzenli prova edin.
Tekrarlı logu uygulamada sayaçla tek satıra indirin, retry'a backoff koyun, logrotate'e boyut ve sayı sınırı verin, `/var/log`'u kök diskten ayırın.
IP limiti dönen proxy'lere yenilir: Redis sliding-window'u hesap + IP + ASN'de anahtarlayın, hesap kilidi ekleyin, volumetrik seli edge'e bırakın.