Hoş Geldiniz! KablosuzForum.net

Tüm özelliklerimize erişmek için şimdi bize katılın. Kaydolup giriş yaptıktan sonra konu oluşturabilir, mevcut konulara yanıt gönderebilir, diğer üyelerinize itibar kazandırabilir, kendi özel mesajlaşma programınızı edinebilir ve çok daha fazlasını yapabileceksiniz. Aynı zamanda hızlı ve tamamen ücretsizdir, peki daha ne bekliyorsunuz?

Soru Sor

Merak ettiğiniz, kafanıza takılan sorular hakkında konu açın, diğer üyelerimiz ve moderatörlerimiz cevaplasın.

Ticaret

Ticari konular açıp güven oluşturmak ve daha fazla satış rakamlarına ulaşmak için hesabını doğrula!

Bize ulaşın

Yönetim kadrosuyla iletişime geçin

Üyeliğini Yükselt!

Üyeliğinizi yükselterek birbirinden ayrıcalıklı özelliklere sahip olun!

Zero-Downtime Blue-Green Deployments: Gizli İpuçları ve Uygulama Stratejileri

Resim 1 Resim 2

saripervin

Pervin Sari
KF Kullanıcı
Katılım
17 Eki 2024
Mesajlar
5
Tepkime puanı
23
Puanları
1

Zero-Downtime Blue-Green Deployments: Gizli İpuçları ve Uygulama Stratejileri​


Merhaba sunucu yöneticileri!

Şeffaf, hızlı ve güvenilir güncellemeler her zaman büyük takdir toplar. Peki, **çok yüksek trafikli e‑ticaret siteleri için sıfır kesinti** ile dağıtım nasıl başarılır? Bu yazıda, pratik örnekler, gizli ipuçları ve yaygın hataları ele alarak *Blue‑Green Deployment* tekniğini 5 adımda öğretiyorum.

---

## 1. Altyapıyı Prepare‑For‑Production

> **Neden?** Her iki ortamınız (Blue & Green) aynı kaynaklara sahip olmalı; aksi halde, Blue’da test ederken Green’de farklı bir sürüm çalışabilir.

### 1.1. Temiz Çevre Deji
- **Kıyaslayabilirlik**: Her iki ortamın CPU, bellek, disk I/O ve ağ katmanları (Nginx, HAProxy) aynıdır.
- **Versioning**: Konfigürasyon dosyaları (docker-compose, helm chart) *farklı branch* üzerinde tutulur.
- **Canary Enabled**: `--configmap` ve `--set` parametreleri ile aynı anda farklı sürümler çalıştırılabilir.

## 2. Güncellemeleri Sıralı Yayınla

> **Neden?** Hızlı rollback ve düşük risk.

```bash
# 1. Yeni sürümü Green ortamına deploy et
helm upgrade --install myapp-dev -f values-dev.yaml ./chart

# 2. Green’i test et (k8s readiness probe = 2sec)
kubectl rollout status deployment/myapp-dev
```

- **Readiness** ve **Liveness** probe'ları farkındalık yaratır, eksik bir pod ile Green çevre kapanmaz.

## 3. Trafiği Yönlendir

> **Neden?** Yavaş geçiş ile kullanıcı deneyimi bozulmaz.

- **Horizontal Pod Autoscaler (HPA)**: Trazhı nispeten eşit dağıtmak için 50% oranında sadece Green pod'larını artır.
- **Istio VirtualService**: 95% trafik Green’de, 5% Blue’da kalır.

```yaml
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: myapp
spec:
hosts:
- "*"
http:
- route:
- destination:
host: myapp-green
subset: v1
weight: 95
- destination:
host: myapp-blue
subset: v1
weight: 5
```

## 4. Veri Senkronizasyonu

> **Neden?** Blue’da çalışan eski versiyon ile Green’deki veriyi senkronize etmek gerekir.

- **Database Replication**: Yanıt süresiz replika planı var. Örneğin PostgreSQL için `pglogical` uzantısı.
- **Message Queue**: Redis Streams ile mesajı aşımlama.
- **Event‑Sourcing**: Event store’un bir konsolide bakımı.

## 5. Final Switch & Cleanup

> **Neden?** Adım adım geçiş ve olduğunda temizlik.

```bash
# 1. Trafiği temizle
kubectl label deployment myapp-dev app=green

# 2. Blue ortamını sil
helm delete myapp-prod

# 3. Green’i prod olarak etiketle
kubectl label deployment myapp-dev app=prod
```

- **Health‑Check**: Son checkout ile 48 saat boyunca canlı izleme.
- **Rollback**: Hata oluşursa `helm rollback myapp-prod N` ile eski sürüme dön.

---

### Gizli İpucu: Kendinize ‘Fail‑Safe’ Otomasyonu Koyun!

> **Bir test yolunu** (autotune döngüsü) takiben, `k8s` health‑checks'ları 99.9% üstünde izlenir. Olay döngüsünde bir *bronze* seviyesi kritik hata, otomatik olarak Green ortamından “sıkıntı” seviyesi icin Gray ortamına (canary) geçer.

### Kapsamlı Bakış
- **Monitoring**: Grafana + Prometheus + Loki combo’yu kullanın.
- **Alerting**: %0.1% oranında yanıt süresi artışı bir “warming” alarmı üretir.
- **Cost Savvy**: Blue ortamını sadece test fazında dönüştürün, sonra delete edin.

---

> **Sonuç:** 0 kesinti aracı, hızlı dönüşüm ve risk azaltımı sağlıyor. Yüksek trafik sitelerinde, hedef 99.999% uptime olduğunda bu tekniği yalnızca Google EE, Shopify toplulukları değil, kendi üretim ortamınızda da test edin.

Soru ve deneyimlerinizi aşağıda paylaşın – birlikte daha da ekosistemimize katkıda bulunalım!

photo-1770520216765-40fdf4f65b30
 
Responsive GIF Layout

shape1
shape2
shape3
shape4
shape5
shape6
Geri
Üst