Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Uçtan Uca Zero-Downtime: Bookstore'u GitHub Actions ile Blue-Green ve Canary Deploy Etmek
Serinin bütün parçaları tek bir GitHub Actions workflow'unda: image'ı bir kez build et, migration gate'i ve expand migration bundle'ı, boştaki renge deploy, preview'den smoke test, %10 ve %50 canary gate'leri, tam geçiş ve manuel rollback job'ı. act ile yerelde koşulan pipeline başarıdan önce dört kez düştü: Down()'ı tarayan gate, act'in artifact v7 uyumsuzluğu, eski renge bakan preview ve yetersiz canary trafiği.
Canary Release: Trafiği Yüzdeyle Açmak, Metrik ile Karar Vermek ve Otomatik Analiz
Canary yeni sürümü trafiğin küçük bir payıyla çalıştırır ve aynı anda çalışan control ile karşılaştırarak karar verir. Nginx'te weight (900/100, yapışkan değil), split_clients ile kullanıcıya yapışan canary ve boş anahtar tuzağı, 1.30'un sticky cookie'si; 4.000 istekte %4,80'e %0 fark ama 19 istekte anlamsız sonuç, WAIT/ABORT/PROMOTE veren gate, Gateway API weight'leri ve Argo Rollouts'un hatalı sürümü otomatik durdurması.
Deploy ve Release Farkı: Downtime Neden Olur ve Deployment Stratejileri Haritası
Deploy kodun ortama kurulması, release kullanıcının yeni davranışı görmesidir; ikisini ayırabilen ekip riski böler. Nginx arkasındaki tek container'lı recreate deploy'unda 12 istek 2,5 saniye içinde hata aldı. Downtime'ın beş kaynağı, recreate, rolling, blue-green, canary, shadow, A/B ve feature flag'in haritası, karar tablosu ve risk = blast radius × tespit süresi hesabı.