Yandex Metrica
Deployment Stratejileri (Blue Green, Rolling Update/Rollback) Nedir? - Yasin Sunmaz

Yasin Sunmaz

Kodladıkça değişen bir dünya...

Deployment Stratejileri (Blue Green, Rolling Update/Rollback) Nedir?

23.06.2023 yasinsunmaz 708 0

Yazılım geliştirme sürecinde, uygulamaları güncellemek ve yeni sürümleri piyasaya sürmek önemli bir adımdır. Ancak, kullanıcıların kesintisiz hizmet almasını sağlamak ve hataları minimumda tutmak da önemlidir. Bu nedenle, deployment stratejileri, güncellemelerin sorunsuz bir şekilde gerçekleştirilmesini ve olası sorunlara karşı geri dönüş seçeneklerini sunmayı amaçlar. Bu makalede, blue-green deployment ve rolling update/rollback gibi iki popüler deployment stratejisini inceleyeceğiz ve örnekler ile süreci ele alacağız.

Başlıklar
1. Deployment Stratejileri
   1.1. Blue-Green Deployment
   1.2. Rolling Update/Rollback
2. Blue-Green Deployment Örneği
3. Rolling Update/Rollback Örneği
4. Sonuç

1. Deployment Stratejileri

1.1. Blue-Green Deployment

Blue-green deployment, uygulamanın iki ayrı çevre üzerinde çalıştığı bir stratejidir: "blue" (mavi) ve "green" (yeşil) olarak adlandırılır. Blue çevresi mevcut üretim ortamını temsil ederken, green çevresi yeni sürümün dağıtıldığı çevreyi ifade eder. Bu stratejide, kullanıcı trafiği önce blue çevresine yönlendirilirken, green çevresinde yeni sürüm test edilir ve hazır olduğunda trafiğin green'e yönlendirilmesi sağlanır. Bu şekilde, kullanıcı kesintisiz bir hizmet alır ve geri dönüşü kolaylaştırır.  Ayrıca eski sürüme de hızlı bir şekilde geçiş yapılabilir.

Avantajları:

  • Kesintisiz geçiş: Blue-Green Deployment, kullanıcılara kesintisiz hizmet sunar ve sıfır kesintiyle yeni bir sürüme geçişi sağlar.
  • Geri dönüş kolaylığı: Eski sürüme hızlı bir şekilde geri dönüş yapılabilir, çünkü eski ortam hala çalışır durumdadır.
  • Test ve doğrulama imkanı: Yeni sürüm, üretim ortamına geçmeden önce Green ortamında test edilebilir ve doğrulanabilir.

1.2. Rolling Update/Rollback

Rolling update/rollback, uygulamanın mevcut sürümünden yeni bir sürüme geçiş yapma veya geri dönme işlemidir. Bu stratejide, mevcut sürümün bir bölümü veya hedeflenen miktarı durdurularak, yeni sürümün yavaş yavaş devreye alınması sağlanır. Bu süreç adım adım gerçekleştirilir ve her adımda uygulamanın durumu kontrol edilir. Bu strateji, hataları hızlı bir şekilde tespit etmek ve geri dönme seçeneği sunmak için etkilidir.

Avantajları:

  • Yavaş ve kontrollü geçiş: Yeni sürüm, aşamalı olarak uygulanırken mevcut sürüm hala çalışır durumda olduğu için kullanıcılara kesintisiz hizmet sunulur.
  • Sorun tespiti: Güncelleme sırasında her aşama izlenebilir, böylece sorunlar hızlı bir şekilde tespit edilebilir ve düzeltilebilir.
  • Geri dönüş kolaylığı: Hata veya sorun durumunda, geri dönüş yapılabilir ve eski sürüme hızlı bir şekilde geçiş yapılabilir.

2. Blue-Green Deployment Örneği

Bir örnek senaryoda, bir e-ticaret uygulamasının yeni bir sürümünü blue-green deployment stratejisiyle dağıtmayı ele alalım.

Adım 1: Blue çevresi kullanıcı trafiğine açıktır ve mevcut üretim sürümünü çalıştırır.

Adım 2: Yeni sürüm, green çevresinde dağıtılır ve test edilir.

Adım 3: Testler başarılı olduğunda, yönlendirme yapılandırması değiştirilerek kullanıcı trafiği green çevresine yönlendirilir.

Adım 4: Green çevresine yönlendirilen trafiğin başarılı olduğu doğrulandıktan sonra, blue çevresi kapatılır.

Bu şekilde, kullanıcılar kesintisiz hizmet alırken, geri dönme seçeneği her zaman mevcuttur. Eğer yeni sürümde bir sorun ortaya çıkarsa, basitçe yönlendirme yapılandırması eski sürüme geri döndürülerek kullanıcı trafiği blue çevresine yönlendirilebilir.

3. Rolling Update/Rollback Örneği

Bir başka senaryoda, bir mikroservis tabanlı uygulamanın rolling update/rollback stratejisiyle güncellenmesini ele alalım.

Adım 1: Uygulamanın bir bölümü durdurulur ve yeni sürümün bu bölümü devreye alınır.

Adım 2: Devreye alınan bölümün durumu izlenir ve hatalar tespit edilirse, hızlı bir şekilde geri dönüş yapılır.

Adım 3: Bir sonraki bölüm durdurulur ve yeni sürüm devreye alınır.

Adım 4: Adım 2'yi tekrarlayarak tüm bölümler güncellenir.

Eğer bir adımda hatalar tespit edilirse, uygulama hızlı bir şekilde geri dönülerek önceki sürüme geçilebilir.

4. Sonuç

Deployment stratejileri, yazılım güncellemelerini sorunsuz bir şekilde gerçekleştirme ve hatalara karşı geri dönüş seçenekleri sunma konusunda büyük öneme sahiptir. Blue-green deployment ve rolling update/rollback gibi stratejiler, bu hedefleri gerçekleştirmede etkili araçlar sunar. Her bir stratejinin avantajları ve kullanım senaryoları farklı olabilir, bu nedenle uygulamanın ihtiyaçlarına ve gereksinimlerine göre doğru stratejinin seçilmesi önemlidir.

Bu makalede, blue-green deployment ve rolling update/rollback stratejilerinin nasıl çalıştığını ve her birinin bir örneğini inceledik. Bu stratejiler, yazılım güncellemelerini başarılı bir şekilde yönetmek ve kullanıcıların kesintisiz hizmet almasını sağlamak için değerli araçlardır.

Umarım faydalı olmuştur. İyi çalışmalar dilerim.

  • Yorum yapabilmek için giriş yapmalısınız. Giriş yapmak için tıklayınız.

Diğer Yazılar

RedisConnectionException Hatası ve Çözümü: AbortOnConnectFail=false

31.07.2023 yasinsunmaz 836 0

Redis, popüler bir açık kaynaklı veri yapısı sunucusudur ve günümüzde birçok uygulama tarafından kullanılmaktadır. Ancak, bu tür veri tabanla...

ASP.NET Core Web API'de Parametre Bağlama Yöntemleri: FromQuery, FromBody ve FromRoute

12.07.2023 yasinsunmaz 1333 0

ASP.NET Core web API projeleri, istemcilerden gelen verileri API metotlarıyla etkileşimde bulunmak için kullanılır. Bu verileri doğru bir şekilde almak ve işlemek içi...

SonarQube Kurulumu: Adım Adım Kılavuz

18.06.2023 yasinsunmaz 1328 0

SonarQube, açık kaynaklı bir statik kod analizi platformudur ve geliştiricilere kod kalitesini, güvenliğini ve performansını iyileştirmeleri için yardımcı olur. ...

Active Directory LDAP İle Kullanıcı Kimlik Doğrulama .NET

05.12.2022 yasinsunmaz 2491 0

Active Directory LDAP ile kullanıcıyı belirli bir filtre üzerinde arama veya kullanıcının kimliğini doğrulama işlemleri yapabilmekteyiz. Bu LDAP protokolünde DirectorySer...

SOLID Yazılım Prensipleri

26.11.2022 yasinsunmaz 847 0

SOLID prensipleri yazılım geliştirmede başlarda anlayıp uygulaması zor olsa da buna uyarak kod geliştirmenin faydasını zamanla görebilirsiniz. Yazdığınız kodlarda sonradan yap...

Regex, Regular Expressions Genel Kullanımı

03.08.2022 yasinsunmaz 2060 0

Bir çok yazılım dilinde bazı kontroller için Regex ifadeler ihtiyaç duyabiliyoruz. Bunların en başında e-posta, telefon ve web site geliyor. Bunların doğruluğu...