Mavi Yeşil Dağıtım ve Drupal - Gerçekten Ne Kadar Biliyorsunuz?

Yayınlanan: 2019-07-23

Mavi Yeşil Dağıtım, uygulama dağıtımına yönelik geleneksel yaklaşımın sınırlarını aşan dağıtım stratejilerinin temel dayanaklarından biridir. Blue Green Deployment hakkında ne biliyorsunuz? Drupal'da Mavi Yeşil Dağıtım nasıl uygulanır?

Evet, doğru okudunuz. Güncellemeler için veya daha yeni bir sürüm başlatırken uygulamanızı çevrimdışına almak ürkütücü bir iştir ve gerçek bir acıdır. Bunu planlı duruş süreleriyle azaltabileceğiniz doğru, ancak bu müşterileri mutlu edecek bir şey değil. Bazı siteler aslında kapalı oldukları her dakika binlerce dolar kaybederler! Kaybınızın ardındaki gerçek neden uygulamanızı dağıtmak veya yükseltmek mi olmalı?

Kapalı kalma süresini azaltmak ve uygulama dağıtımıyla ilgili diğer riskleri azaltmak için mavi yeşil dağıtımın neden en iyi strateji olduğu hakkında bilgi edinin. Mavi yeşil dağıtım ve Drupal hakkında daha fazlasını keşfedin.

Mavi-Yeşil Dağıtım Nedir?

Mavi-Yeşil Dağıtım, bir uygulamanın iki farklı sürümünü çalıştıran iki özdeş ortam arasındaki trafiği kaydırarak veya taşıyarak uygulamaları serbest bırakmak için kullanılan bir tekniktir.

Kısaca bir uygulamanın bir versiyonu var, üretimde buna "mavi versiyon" diyelim. Ardından, trafiği uygulamaya yönlendirmek için kullanılan bir yönlendirici var. Şimdi başka bir sürüme ihtiyacınız var. "Yeşil versiyon", konuşlandırılmak üzere eklenmiş bazı güzellikler ile. Bununla birlikte, bu dağıtım gerçekleşirken, bir kullanıcının uygulamanız çökmeden uygulamanıza bakabileceğinden, bir düğmeye basabileceğinden veya istediğini yapabileceğinden emin olmak istersiniz! Daha çok "yeşil sürümü" gizlice dağıtmak gibi, "mavi sürüm" bu arada tüm trafiği yönetirken, sonunda bağlantıları değiştirmeden önce.

blue_green_deployment

Sıfıra yakın kapalı kalma süresi serbest bırakma ve geri alma yetenekleriyle, Mavi-Yeşil Dağıtımın temel fikri, trafiği uygulamanın iki farklı sürümünü çalıştıran iki özdeş ortam arasında kaydırmaktır. Uygulamanın mevcut sürümü Blue ortamı ile temsil edilirken, yeşil olan farklı bir sürüm çalıştırılarak sahnelenir.

Neden Mavi-Yeşil Dağıtım?

Dağıtım sürecini otomatikleştirmenin en büyük zorluklarından biri, geçişin kendisidir, yani uygulamayı testin son aşamasından canlı aşamaya taşımaktır. Ve her türlü arıza süresini en aza indirmek için bunun hızlı bir şekilde halledilmesi gerekiyor. Mavi-yeşil dağıtımın yaptığı tam olarak budur. İki üretim ortamıyla (doğada mümkün olduğu kadar aynı), herhangi bir zamanda, bunlardan biri canlı. Ve yeni bir sürüme hazırlanırken, tüm testlerinizi canlı olmayan diğer ortam üzerinde yaparsınız. Dönmeye hazır olduğunuzda, tek yapmanız gereken yönlendiriciyi değiştirmek, böylece tüm trafiğiniz en son sürümünüze yönlendirilir ve diğer ortam boşta kalır.

Ayrıca, Mavi-Yeşil dağıtım, en önemli özelliklerden biri olan hızlı bir geri dönüş sağlar. En son sürümünüzle ilgili bir şeyler ters giderse, yönlendiriciyi geri almanız gerektiğini varsayalım. Hatalı ortam canlıyken kaybedilen işlemlerle ilgili bir sorun olsa da, her iki ortamınızı da işlemlerle besleyecek ve biri diğerinin yedeği olacak şekilde de tasarlayabilirsiniz.

Nasıl Mavi-Yeşil Dağıtım?

Artık Mavi-Yeşil Dağıtımın iki ortamını bildiğimize göre, aynısını uygulamak için en iyi uygulamalardan bazılarına göz atalım.

  • DNS Anahtarlama Üzerinden Yük Dengeleme

Ortamlar arasında geçiş yaparken alan adınızın sonunda farklı sunuculara işaret etmesini sağlayın. DNS kayıtlarına gitmek ve DNS yönetim arayüzünde değişiklik yapmak yerine yük dengelemeyi kullanın.

DNS kayıtlarında değişiklik yapma sorunu, yalnızca uzun bir trafik izine neden olacaktır. Bu, bazı kullanıcılarınıza eski ortam tarafından hizmet verilmeye devam ederken, trafiğinizin nereye yönlendirildiği üzerinde tam kontrole sahip olmayacağınız anlamına gelir.

Ancak yük dengeleyiciler, yeni sunucularınızı hemen kurmanıza izin verecek ve DNS mekanizmasına bağımlı olmanıza gerek kalmayacak. Bu şekilde trafik üzerinde tam kontrole sahip olacaksınız ve tüm trafiğin yeni ortama yönlendirildiğinden kesinlikle emin olabilirsiniz.

  • Sürekli Güncelleme

Tüm sunucularınızı aynı anda DEĞİŞTİRMEYİN. Bunun yerine yuvarlanan bir güncelleme yürütün. Yani, Mavi sunuculardan Yeşil sunuculara aynı anda geçmek yerine, entegre bir ortamla çalışın. Yeni bir sunucu ekleyin, eski bir sunucuyu emekliye ayırın. Her yeni sunucu yerinde olana kadar tekrarlayın. Bu, kesinti sürenizi büyük bir farkla azaltacaktır!

  • Çevre İzleme

Canlı ortamı izlemek açık olsa da, diğer ortamı izlemeyerek hazırlıksız yakalanmak istemezsiniz. Evet, diğer ortamın izlenmesi daha az kritiktir. Bununla birlikte, aynı ortam her iki durum olarak da hareket edebileceğinden, uyarıyı ikisi arasında değiştirmek için daha kolay bir yola ihtiyacınız olacaktır. Geri bildirimde bulunan iki ortam için farklı API belirteçleri ayarlayın veya rolü değiştirildiğinde/değiştirildiğinde ortamdaki uyarı ilkesini programlı olarak değiştirin.

  • Otomasyon

Manuel eylemler seti sadece işinizi artıracaktır. Bunun yerine, geçiş sürecindeki her eylemi komut dosyası haline getirin. Geçiş sürecinin otomatikleştirilmesi, Mavi-Yeşil Dağıtımın daha hızlı, daha kolay ve daha güvenli bir şekilde uygulanmasıyla sonuçlanacaktır.

Drupal Web Siteleri için Mavi Yeşil Dağıtım

sorunlar

  • Kod dağıtımları sırasında, Drupal'ın çalışması için veritabanı güncellemelerini çalıştırması gerekir ve Drupal güncellemeleri web sitesini bakım moduna getirdiğinden ve kullanıcılarınız bu güzel beyaz ekranla karşılandığından bu büyük bir sorundur.
Drupal Bakım
Kaynak : drupal.org

Dağıtım başarısız olursa, veri tabanı şemasının değiştirilmiş olabileceği göz önüne alındığında, yalnızca veri tabanının dökümden geri yüklenmesiyle bir geri alma mümkündür. Bu, kesinti anlamına gelir!

Çözüm: Mavi Yeşil Dağıtım!

Drupal ile Mavi Yeşil Dağıtımı uygulamak için bazı altyapıya genel bakışa bakalım. Drupal'daki her türlü işlem, Nginx ve bir php sunucusu gerektirir (esas olarak Drupal'ı çalıştırmak için), bir veritabanına, bir dosya deposuna, bir miktar önbelleğe ihtiyacımız var ve yığın, yüksek oranda erişilebilir olacak şekilde tasarlanmıştır.

Blue Green Deployment ile, yeni bir kod tabanına sahip yeni bir yığın dağıtmanız ve tercihen Drush kullanarak tüm veritabanınızı ve önceki kod tabanından farklı durumları kopyalamanız gerekir.

altyapıya genel bakış
Kaynak: Drupal Con Seattle 2019

İki farklı yığın kurulduktan sonra, hazırlama yığınının üretim yığınından bağımsız olarak test edilmesi gerekir. Temel olarak, kullanıcılarınızın yığına (üretim yığını) gitmesi ve dağıtılan web sitesinin sürümünü test etmesi gerekir. Ve diğer sürüm (hazırlama yığını) hazır olduğunda, sürümleri çevirmeniz yeterlidir. Artık kullanıcılar yeni yığına yönlendiriliyor ve eski sürüm test için hazır.

Docker ile Mavi Yeşil Dağıtım

Drupal'da dağıtımlar kolay değildir. Kodun dağıtıldığından, oluşturucu bağımlılıklarının işlendiğinden, şema güncellemelerinin güncel olduğundan ve tüm önbelleklerin temizlendiğinden emin olmanız gerekirken, aynı zamanda "duyarlı web sitesi"nin çalışır durumda olduğundan emin olmanız gerekir. Ve bir sorun varsa ve dağıtım başarısız olursa ne olur? geri alıyor musun Veya dağıtımı durdurun?

Aradığınız ifade, Blue Green Deployment

Drupal dağıtımı sırasında Docker, uygulamalar arasında kolay geçiş sağlar ve bunların farklı sürümlerini oluşturmayı ve çalıştırmayı kolaylaştırır. EC2 bulut sunucusunda, her zaman mavi ve yeşilden oluşan bir dizi yükseltilmiş liman işçisi kapsayıcısı vardır ve nginx bir ters proxy sunucusu olarak çalışır. Docker ile mavi yeşil dağıtım, kullanıcının iki farklı ortamda paralel çalışan bir Drupal web sitesi oluşturmasına olanak tanır.


AWS ile Mavi Yeşil Dağıtım

Tarihsel olarak mavi yeşil dağıtım, yüksek maliyeti ve içerdiği karmaşıklık nedeniyle şirket içinde yazılım dağıtmak için ilk seçenek olmasa da, kapsayıcılar bu algıyı tamamen değiştirdi.

Konteynerler, kolay paketleri ve ortamlar arasında geçiş yaparken tutarlı davranışları nedeniyle mavi yeşil dağıtımın benimsenmesini kolaylaştırır. Ve bir kapsayıcının yapılandırmasını değiştirmek için, yazılımı güncellemek yerine yalnızca docker dosyasını güncellemeli ve kapsayıcıyı yerinde yeniden oluşturup yeniden konuşlandırmalısınız.

Amazon ECS, mevcut bir Amazon ECS hizmetini güncellediğinizde bu sürekli güncellemeleri gerçekleştirir. ecs mavi yeşil dağıtımı için sürekli güncelleme, kapsayıcının mevcut sürümünün en son sürümle değiştirilmesini içerir. Amazon ECS'nin güncelleme sırasında eklediği veya kaldırdığı bu kapsayıcı sayısı, hizmet dağıtımları sırasında izin verilen maksimum ve minimum sağlıklı görev sayısı ayarlanarak kontrol edilir.Güncelleme, hizmetin görev tanımı kapsayıcı görüntüsünün en son sürümüyle güncellendiğinde, Amazon ECS, kapsayıcının eski sürümünü otomatik olarak en yenisiyle değiştirmeye başlar.

AWS mavi yeşil dağıtım

AWS ECS ile mavi yeşil dağıtım, aynı kaynaklara bağlı olmadığınız için optimizasyon avantajları da sağlayacaktır. Yani, uygulamanın performans zarfı bir sürümden diğerine değiştiğinde, optimize edilmiş kaynaklarla yeni ortamı başlatmanız yeterlidir (sayı olarak daha az olabilir veya tamamen farklı bir kaynak kümesi olabilir).

AWS'de mavi yeşil dağıtım, dağıtım otomasyonunun mevcut bir ortama daha az bağımlılık göz önünde bulundurmasına izin vererek karmaşıklıklarını kontrol ederek sürekli entegrasyon ve dağıtım iş akışlarına da uygundur.

Bu çözüm, kullanıcıların web platformlarının dağıtımını ve ölçeklenebilirliğini herhangi bir zaman kaybetmeden kolayca yönetmelerini sağlar. Bu dağıtım, bir Drupal web sitesini sorunsuz bir şekilde çalıştıracak yüksek kullanılabilirlikli bir ortamın yapılandırılmasına yardımcı olur.