Zero Downtime Deployment Nedir ve Neden Önemlidir?

Web uygulamaları ve hizmetler günümüzde 7/24 erişilebilir olma beklentisiyle çalışıyor. Kullanıcıların “Siteye giremedi” hatası alması, satış kaybına ve marka itibarının zarar görmesine yol açabilir. İşte bu noktada zero downtime deployment (kesintisiz yayına alma) devreye girer. Bu yaklaşım, yeni kod ya da konfigürasyon değişikliklerini uygularken mevcut trafiği kesintiye uğratmadan geçiş yapmayı hedefler.
Örneğin bir e‑ticaret sitesinde yapılan bir güncelleme sırasında %30 trafik kaybı yaşanıyorsa, aylık geliriniz 500 000 TL ise bu sadece 150 000 TL kayba dönüşebilir. Zero downtime teknikleriyle bu kaybı %0’a indirmek, işletmenizin rekabet gücünü artırır ve e‑ticaret hosting hizmetinizin güvenilirliğini pekiştirir.
Bu makalede, en popüler teknikleri, adım adım uygulama rehberlerini ve sıkça yapılan hataları inceleyerek, siz de sorunsuz bir geçiş yapabilirsiniz.
Blue‑Green Deployment Nasıl Çalışır?
Blue‑green deployment, iki paralel ortam (Blue ve Green) arasında geçiş yaparak kesintisiz yayına almayı sağlar. İlk ortam (Blue) aktif olarak trafiği alırken, yeni sürüm Green ortamına hazırlanır. Tüm testler tamamlandığında, yönlendirme katmanı (load balancer) trafiği anında Green ortamına yönlendirir.
Bu yöntemin avantajı, bir sorun ortaya çıktığında anında eski (Blue) ortama geri dönülebilmesidir. Geri dönüş süresi saniyeler içinde gerçekleşir, bu da kesintisiz bir deneyim demektir. Ancak iki tam ortamın aynı anda çalışması maliyet artışı yaratabilir; bu yüzden VDS sunucu paketleri gibi ölçeklenebilir altyapılar tercih edilmelidir.
Uygulama adımları:
- Mevcut (Blue) ortamı izole edin ve trafiği yönlendiren load balancer’ı tanımlayın.
- Yeni sürümü Green ortamına dağıtın; aynı veri tabanı ve konfigürasyonları kullanın.
- Automated test (smoke test) ve performans testlerini çalıştırın.
- Testler başarılıysa, DNS veya load balancer ayarlarını güncelleyerek trafiği Green’e yönlendirin.
- Herhangi bir hata durumunda, yönlendirmeyi geri alarak Blue ortamına dönün.
Canary Release ile Riskleri Minimize Etmek
Canary release, yeni sürümü kademeli olarak küçük bir kullanıcı grubuna (canary) sunar. Başlangıçta %5‑10 oranında trafiği yeni sürüme yönlendirir, performans ve hata raporlarını izler. Sorun yoksa oran artırılır, aksi takdirde geri dönüş yapılır.
Bu strateji, büyük bir güncellemenin tüm kullanıcıları etkilemesini önler ve hata maliyetini %80’e kadar azaltabilir. Canary testlerinde WordPress hosting gibi popüler platformlarda özellikle veri tabanı migrasyonları dikkatle izlenmelidir.
Adım adım canary release süreci:
- CI/CD pipeline’ınıza canary adımı ekleyin (örnek: Jenkins, GitLab CI).
- Feature flag yönetimiyle yeni özellikleri kontrol altında tutun.
- Monitoring araçları (Prometheus, Grafana) ile metrikleri toplayın.
- Hata oranı, latency ve CPU kullanımı gibi KPI’ları belirleyin.
- İlk yüzde 5 trafiği yeni sürüme yönlendirin, sonuçları analiz edin.
- Başarılıysa oranı %25, %50, %100’e kadar artırın.
Rolling Update ile Sürekli Güncelleme

Rolling update, bir hizmetin tüm örneklerini (instance) tek tek güncelleyerek kesintisiz bir geçiş sağlar. Örneğin bir Kubernetes cluster’da 5 pod varsa, bir pod’u durdurup yeni sürümü başlatırsınız; diğer 4 pod hizmet vermeye devam eder. Bu yöntem, özellikle mikroservis mimarilerinde tercih edilir.
Rolling update’in kritik noktası, minimum servis kapasitesini korumaktır. Güncelleme sırasında yeterli sayıda podun çalıştığından emin olun. Aksi takdirde, “service unavailable” hatası alabilirsiniz. Bu yüzden AMD Ryzen VDS sunucular gibi yüksek CPU ve bellek kaynaklı altyapılar, yoğun trafiği sorunsuz taşıyabilir.
Uygulama adımları:
- Deployment manifestinde “maxUnavailable” ve “maxSurge” değerlerini belirleyin.
- Health check (liveness/readiness probe) tanımlayın.
- Her bir pod güncellendikten sonra health check geçene kadar yeni pod’u trafiğe ekleyin.
- Güncellemeyi tamamladıktan sonra eski pod’ları temizleyin.
Zero Downtime İçin Gereken Altyapı ve Araçlar
Kesintisiz yayına alma, sadece metodolojiye değil, aynı zamanda doğru altyapı ve otomasyon araçlarına da bağlıdır. İşte mutlaka sahip olmanız gereken bileşenler:
- Load Balancer: Nginx, HAProxy veya bulut tabanlı (AWS ELB, Azure LB) çözümler.
- CI/CD Pipeline: GitLab CI, GitHub Actions, Jenkins gibi otomasyon sistemleri.
- Feature Flag Yönetimi: LaunchDarkly, Unleash gibi araçlar.
- Monitoring & Logging: Prometheus, Grafana, ELK stack.
- Versiyon Kontrol: Git, branch stratejileri (git flow).
Bu araçların entegrasyonu, fiziksel sunucu (dedicated server) ya da colocation hizmeti gibi güçlü altyapılarla birleştiğinde, %99.9 uptime garantisi sağlamak mümkün olur.
Karşılaştırma Tablosu: Blue‑Green vs Canary vs Rolling Update
| Özellik | Blue‑Green | Canary Release | Rolling Update |
|---|---|---|---|
| Geçiş Süresi | Anlık (DNS/Load Balancer) | Kademeli, %5‑100 | Kademeli, pod/pod |
| Geri Dönüş Kolaylığı | Yüksek (eski ortam hazır) | Orta (kademeli geri alma) | Düşük (tek tek pod) |
| Maliyet | Yüksek (iki ortam) | Düşük‑Orta (tek ortam) | Düşük (aynı ortam) |
| Uygulama Tipi | Monolitik, büyük değişiklik | Küçük özellik, riskli değişiklik | Mikroservis, sık güncelleme |
| İzleme Gereksinimi | Orta (test sonrası) | Yüksek (kademeli KPI) | Orta (health probe) |
Gerçek Dünya Senaryosu: E‑Ticaret Sitesinde Zero Downtime
Bir e‑ticaret sitesinin yılbaşı kampanyası öncesi ürün kataloğu ve fiyat güncellemeleri yapılmak isteniyor. Bu süreçte %30 trafik artışı bekleniyor ve herhangi bir kesinti doğrudan satış kaybına yol açıyor. Şirket, blue‑green deployment ve canary release kombinasyonunu seçiyor.
İlk adımda, yeni sürüm e‑ticaret hosting paketinde ayrı bir VDS (AMD Ryzen VDS) üzerine kurulur. Tüm entegrasyon testleri başarılı olduktan sonra, %10 trafiği canary olarak yeni sürüme yönlendirilir. İzleme sonuçları %99.9 uptime ve ortalama yanıt süresi %120 ms olduğunu gösterir.
Başarılı bir canary sürecinin ardından, tüm trafiği yeni ortam (Green) yönlendirmek için load balancer ayarları güncellenir. Herhangi bir hata durumunda, DNS TTL’nin düşük olması sayesinde birkaç saniye içinde eski (Blue) ortama geri dönülür. Sonuç olarak, kampanya sürecinde satışlarda %15 artış ve sıfır kesinti elde edilir.
Sıkça Sorulan Sorular
Zero downtime deployment ne kadar sürede uygulanabilir?
Uygulama süresi, altyapı ve seçilen tekniğe göre değişir. Blue‑green için ortam hazırlığı 1‑2 saat, canary için kademeli testler 30‑60 dk, rolling update ise pod sayısına bağlı olarak 10‑30 dk sürebilir.
Canary release sırasında hangi metrikler izlenmeli?
En kritik metrikler hata oranı, latency, CPU & RAM kullanımı, veri tabanı yanıt süresi ve kullanıcı oturum sayısıdır. Bu KPI’lar, Grafana panelleriyle gerçek zamanlı izlenmelidir.
Blue‑green deployment için iki ortamın aynı veri tabanını kullanması sorun yaratır mı?
Evet, aynı veri tabanı aynı anda iki farklı sürüm tarafından güncellenirse tutarsızlık ortaya çıkabilir. Çözüm olarak, veri tabanı migrasyonlarını “dual write” ya da “schema versioning” teknikleriyle yönetmek gerekir.
Rolling update sırasında pod’ların health check’i nasıl yapılandırılır?
Kubernetes manifest’inde livenessProbe ve readinessProbe tanımlanmalı. Liveness, pod’un hayatta olup olmadığını kontrol ederken, readiness trafiğe alınmadan önce uygulamanın hazır olduğunu doğrular.
Sonuç ve Bir Sonraki Adım
Zero downtime deployment, modern uygulamaların güvenilirliğini ve kullanıcı memnuniyetini artıran kritik bir pratiktir. Blue‑green, canary ve rolling update gibi teknikleri doğru senaryoya göre seçerek, hizmet kesintisini %0’a indirebilir, güncellemeleri %40 daha hızlı ve düşük riskli bir şekilde gerçekleştirebilirsiniz.
İlk adım olarak, mevcut altyapınızı değerlendirin ve kurumsal hosting ya da Intel i9 VDS sunucular gibi yüksek performanslı bir ortamda CI/CD pipeline’ınızı kurun. Ardından, seçtiğiniz teknik için bir pilot proje başlatın; sonuçları izleyin ve süreci otomatikleştirerek tam ölçekli üretime geçin.
Kesintisiz yayına alma yolculuğunuzda sorularınız olursa, uzman ekibimizle iletişime geçebilirsiniz.