# Blue-Green Deployment

Adres: https://softwaredictionary.org/tr/terimler/blue-green-deployment
Kategori: DevOps ve Bulut
Son güncelleme: 2026-09-30
Türkçe karşılığı: mavi-yeşil dağıtım
Okunuşu: blu grin diploymınt

Kısaca: Blue-green deployment, iki özdeş canlı ortam kullanan ve tüm trafiği eski sürümden yeni sürüme tek seferde geçiren bir yayın stratejisidir.

## Blue-green deployment nedir?

Blue-green deployment, geleneksel olarak mavi (blue) ve yeşil (green) adı verilen iki özdeş canlı ortam kullanır. Her an bunlardan biri, diyelim mavi, tüm canlı trafiği karşılarken diğeri boşta ya da beklemede tutulur. Yeni bir sürümü yayınlamak için onu boştaki yeşil ortama dağıtırsınız, orada gerçek kullanıcı olmadan gerçek canlı altyapı üzerinde test edersiniz ve ardından trafiği oraya geçirirsiniz.

Geçiş genellikle bir yük dengeleyicide ya da yönlendiricide veya bir DNS değişikliğiyle yapılır; bu yüzden yalnızca saniyeler sürer ve kullanıcılar kesinti görmez. Geçişten sonra bir şeyler ters giderse geri almak da aynı derecede hızlıdır: trafiği, hâlâ eski sürümü çalıştıran maviye geri yönlendirirsiniz. Yeni sürüm kararlılığını kanıtladıktan sonra mavi, bir sonraki yayın için boştaki ortam haline gelir.

İki sahneli bir tiyatroya benzer: seyirci bir sahnede gösteriyi izlerken ekip diğer sahnede bir sonraki dekoru kurar ve prova eder, sonra ışıklar bir anda yeni sahneye kayar. Başlıca maliyetler, yayın sırasında iki tam ortam çalıştırmak ve paylaşılan durumu, özellikle hem eski hem de yeni sürümle aynı anda çalışması gereken veritabanı şeması değişikliklerini dikkatle ele almaktır.

Blue-green deployment sıklıkla canary sürümleri ve rolling update'lerle karıştırılır. Canary sürümü önce kullanıcıların küçük bir yüzdesini yeni sürüme yönlendirir ve bunu kademeli olarak artırır; rolling update ise sunucuları ya da pod'ları birkaçar birkaçar değiştirir ve Kubernetes'in varsayılanıdır. Blue-green herkesi bir anda geçirir ancak anında geri alma için eski ortamı hazır tutar.

## Önemli noktalar

- İki özdeş ortam vardır: biri canlı, biri boşta.
- Yeni sürüm, canlıya geçmeden önce boştaki ortama dağıtılır ve test edilir.
- Trafik, genellikle yük dengeleyicide ve kesintisiz olarak tek seferde geçer.
- Eski ortam çalışmaya devam ettiği için geri alma hızlıdır.
- Veritabanı değişiklikleri geçiş sırasında her iki sürümle de uyumlu kalmalıdır.

## Örnek: Kubernetes'te trafiği mavi ortamdan yeşile geçirmek

```bash
# Deploy the new version next to the old one (its pods are labeled version=green)
kubectl apply -f web-green.yaml

# Wait until the green pods are ready before switching
kubectl rollout status deployment/web-green

# Switch live traffic by pointing the Service at the green pods
kubectl patch service web -p '{"spec":{"selector":{"app":"web","version":"green"}}}'

# Roll back instantly, if needed, by pointing it at blue again
kubectl patch service web -p '{"spec":{"selector":{"app":"web","version":"blue"}}}'
```

## Sık sorulan sorular

**Blue-green ile canary deployment arasındaki fark nedir?**

Blue-green deployment, tüm trafiği eski sürümden yeniye tek bir geçişle taşır. Canary deployment ise önce trafiğin küçük bir bölümünü yeni sürüme yönlendirir ve hata oranlarını ile performansı izlerken bunu kademeli olarak artırır.

**Blue-green deployment'ta veritabanı nasıl ele alınır?**

İki ortam genellikle tek bir veritabanını paylaşır; bu yüzden şema değişiklikleri eski sürümle geriye dönük uyumlu olmalıdır. Yaygın yaklaşım expand and contract'tır: önce hiçbir şeyi silmeden yeni sütunlar ya da tablolar eklenir, yeni kod dağıtılır ve eski yapılar ancak sonraki bir sürümde kaldırılır.

**Blue-green deployment daha pahalı mıdır?**

Olabilir, çünkü yayın sırasında iki tam canlı ortam aynı anda çalışır. Bulut altyapısı ve konteynerlerle boştaki ortam yayından hemen önce oluşturulabilir ve sonradan kaldırılarak ek maliyet sınırlanabilir.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
