Mimari (IT)DevOps Mühendisi, Backend Geliştirici

Sıfır Kesinti Dağıtımı nedir ve BT sistemleri mimarisi bağlamında nasıl uygulanır?

Hintsage yapay zeka asistanı ile mülakatları geçin

Cevap.

Sıfır Kesinti Dağıtımı — uygulamanın kullanıcılar için kesintisiz bir şekilde güncellenmesi pratiğidir. Bu, eski uygulama örneklerinin kademeli olarak devre dışı bırakılması ve yeni örneklerin devreye alınmasıyla sağlanır.

Stateless bir uygulama için bulutta (örneğin, Kubernetes kullanarak) bir uygulama örneği:

  1. Eski örnekleri öldürmeden yeni versiyonu dağıtın.
  2. Yeni örneklerin sağlıklı olduğunu kontrol edin.
  3. Sadece bundan sonra trafiği onlara yönlendirin (mavi-yeşil/sürüm veya rolling update).
  4. Eski konteynerler, yeni versiyondan tamamen emin olduktan sonra yavaşça kapatılır.

Rolling update örneği için deployment.yaml:

apiVersion: apps/v1 kind: Deployment metadata: name: my-app spec: replicas: 4 strategy: type: RollingUpdate rollingUpdate: maxSurge: 1 maxUnavailable: 1 template: metadata: labels: app: my-app spec: containers: - name: app image: my-app:v2

Ana özellikler:

  • Stateless hizmetler veya özel durum taşıma stratejileri gerektirir.
  • Genellikle rolling update veya mavi-yeşil dağıtım yoluyla gerçekleştirilir.
  • Veritabanında sıfır kesinti için çok aşamalı bir göç gerektirir (geri/ileri uyumlu şemalar).

Gizli Sorular.

Veri şemasının değişmesi durumunda Sıfır Kesinti Dağıtımı mümkün mü?

Evet, şema göçü iki aşamada yapılırsa mümkün: öncelikle kod, eski ve yeni şemayla uyumlu hale gelir, ardından şema göçü ve eski kodun kaldırılması yapılır.

Uygulama stateless olduğunda, sıfır kesinti dağıtımı her zaman garanti midir?

Hayır! Sınırlayıcı faktörler, dış durum, bağlantı zaman aşım süreleri, işlenmemiş istekler veya API'deki ters uyumsuz değişiklikler olabilir.

Sıfır Kesinti Dağıtımı sadece büyük şirketler için mi gereklidir?

Hayır. Küçük startuplar ve SaaS çözümleri için bile sıfır kesinti, kullanıcı deneyimi için kritik bir faktördür (özellikle küresel pazarlar ve yüksek yük altında).