Azure Spring Apps'te mavi-yeşil dağıtım stratejileri

Not

Azure Spring Apps, Azure Spring Cloud hizmetinin yeni adıdır. Hizmetin yeni bir adı olsa da, ekran görüntüleri, videolar ve diyagramlar gibi varlıkları güncelleştirmek için çalışırken bazı yerlerde eski adı bir süre görürsünüz.

Bu makale şunlar için geçerlidir: ✔️ Temel/Standart ✔️ Kurumsal

Bu makalede Azure Spring Apps'teki mavi-yeşil dağıtım desteği açıklanmaktadır.

Azure Spring Apps (Standart plan ve üzeri), her uygulama için yalnızca biri üretim trafiği alan iki dağıtıma izin verir. Bu desen genellikle mavi-yeşil dağıtım olarak bilinir. Azure Spring Apps'in sürekli teslim (CD) işlem hattı ve sıkı otomatikleştirilmiş testlerle birlikte mavi-yeşil dağıtım desteği, yüksek güvenle çevik uygulama dağıtımlarına olanak tanır.

Alternatif dağıtımlar

Azure Spring Apps ile mavi-yeşil dağıtım uygulamanın en basit yolu iki sabit dağıtım oluşturmak ve her zaman üretim trafiği almayan dağıtıma dağıtmaktır. Azure Pipelines için Azure Spring Apps göreviyle, bayrağını trueolarak ayarlayarak UseStagingDeployment bu şekilde dağıtabilirsiniz.

Alternatif dağıtımlar yaklaşımı şu şekilde çalışır:

Uygulamanızın iki dağıtımı olduğunu varsayalım: deployment1 ve deployment2. deployment1 Şu anda üretim dağıtımı olarak ayarlanmıştır ve uygulamanın sürümünü v3 çalıştırıyordur.

Bu, hazırlama dağıtımını yapar deployment2 . Bu nedenle, Sürekli Teslim (CD) işlem hattı çalışmaya hazır olduğunda, uygulamanın sonraki sürümü olan sürümünü v4hazırlama dağıtımına deployment2dağıtır.

Üretim trafiğini alan v3 ile dağıtım1 ve dağıtım2 hazırlama v4'lerini gösteren diyagram.

üzerinde başlatıldıktan deployment2sonrav4, tüm beklentileri karşıladığından emin olmak v4 için özel bir test uç noktası aracılığıyla buna karşı otomatik ve el ile testler çalıştırabilirsiniz.

Dağıtım2 üzerinde dağıtılan ve teste tabi olan V4'i gösteren diyagram.

'a v4güvendiğinizde, tüm üretim trafiğini alması için üretim dağıtımı olarak ayarlayabilirsiniz deployment2 . v3 geri döndürme gerektiren kritik bir sorun bulmanız durumunda çalışmaya deployment1 devam eder.

Üretim trafiğini alan dağıtım2 üzerinde V4'i gösteren diyagram.

Şimdi, deployment1 hazırlama dağıtımıdır. Bu nedenle dağıtım işlem hattının sonraki çalıştırması üzerine deployment1dağıtılır.

V5'in dağıtıma hazırlandığını gösteren diyagram1.

Artık V5deployment1'nin özel test uç noktasında test edebilirsiniz.

Dağıtımda test edilen V5'i gösteren diyagram1.

Son olarak, tüm beklentilerinizi karşıladıktan sonrav5, tüm üretim trafiğini almak için v5 bir kez daha üretim dağıtımı olarak ayarlarsınızdeployment1.

V5'in dağıtımda üretim trafiğini aldığını gösteren diyagram1.

Değişen dağıtımlar yaklaşımının dezavantajları

Değişen dağıtımlar yaklaşımı, yeni dağıtımların oluşturulmasını gerektirmediğinden basit ve hızlıdır. Ancak, aşağıdaki bölümlerde açıklandığı gibi çeşitli dezavantajlar sunar.

Kalıcı hazırlama dağıtımı

Hazırlama dağıtımı her zaman çalışır durumda kalır ve bu nedenle Azure Spring Apps örneğinin kaynaklarını kullanır. Bu, Azure Spring Apps'te her uygulamanın kaynak gereksinimlerini ikiye katlar.

Onay yarış durumu

Yukarıdaki uygulamada, uygulamanın her yeni sürümünün üretim trafiğini alabilmesi için yayın işlem hattının el ile onay gerektirdiğini varsayalım. Bu, hazırlama dağıtımında bir sürüm (v6) el ile onay beklerken dağıtım işlem hattının yeniden çalıştırılması ve daha yeni bir sürümle (v7) üzerine yazılmasının riskini oluşturur. Ardından, için v6 onay verildiğinde, dağıtılan v6 işlem hattı hazırlama dağıtımını üretim olarak ayarlar. Ancak artık bu dağıtımda dağıtılan ve trafiği alan onaylanmamış olan onaylanmamış , onaylanan v7v6değil olacaktır.

Bu bölümde açıklanan onay yarış durumunu gösteren diyagram.

Önceki tüm sürümler için dağıtım akışı tamamlanana veya durdurulana kadar bir sürüm için dağıtım akışının başlayamayacağından emin olarak yarış durumunu önleyebilirsiniz. Onay yarış koşulunu önlemenin bir diğer yolu da aşağıda açıklanan Adlandırılmış Dağıtımlar yaklaşımını kullanmaktır.

Adlandırılmış dağıtımlar

Adlandırılmış dağıtımlar yaklaşımında, dağıtılan uygulamanın her yeni sürümü için yeni bir dağıtım oluşturulur. Uygulama, kendi hazır dağıtımında test edildikten sonra, bu dağıtım üretim dağıtımı olarak ayarlanır. Önceki sürümü içeren dağıtımın geri alma gerekmeyeceğinden emin olacak kadar uzun süre kalıcı olmasına izin verilebiliyor.

Aşağıdaki çizimde, sürümü v5 dağıtımında deployment-v5çalıştırılıyor. Dağıtım, özel olarak bu sürüm için oluşturulduğundan dağıtım adı artık sürümü içeriyor. Başlangıçta başka dağıtım yoktur. Şimdi sürümü v6dağıtmak için dağıtım işlem hattı yeni bir dağıtım deployment-v6 oluşturur ve uygulama sürümünü v6 orada dağıtır.

Bu bölümde açıklandığı gibi adlandırılmış bir dağıtımda yeni bir sürümün dağıtımını gösteren diyagram.

Başka bir sürümün paralel olarak dağıtılması riski yoktur. İlk olarak Azure Spring Apps, iki dağıtım mevcutken üçüncü bir dağıtımın oluşturulmasına izin vermez. İkincisi, ikiden fazla dağıtıma sahip olmak mümkün olsa bile, her dağıtım içerdiği uygulamanın sürümüyle tanımlanır. Bu nedenle, dağıtımını v6 düzenleyen işlem hattı yalnızca üretim dağıtımı olarak ayarlamayı deployment-v6 dener.

deployment-v6'ya dağıtılan ve üretim trafiğini alan v6'nın gösterildiği diyagram.

Yeni sürüm için oluşturulan dağıtım üretim trafiğini aldıktan sonra, gelecekteki dağıtımlara yer açmak için önceki sürümü içeren dağıtımı kaldırmanız gerekir. Yeni sürümde kritik bir sorun bulursanız önceki sürüme geri dönebilmek için birkaç dakika veya saat ertelemek isteyebilirsiniz.

Geri dönüş döneminden sonra önceki dağıtımın silindiğini gösteren diyagram.

Adlandırılmış dağıtımlar yaklaşımının dezavantajları

Adlandırılmış dağıtımlar yaklaşımının aşağıdaki avantajları vardır:

  • Onay yarış durumunu engeller.
  • Kullanımda olmadığında hazırlama dağıtımını silerek kaynak tüketimini azaltır.

Ancak, aşağıdaki bölümde açıklandığı gibi dezavantajları da vardır.

Dağıtım işlem hattı hataları

Dağıtımın başlamasıyla hazırlama dağıtımının silinmesi arasında dağıtım işlem hattını çalıştırmaya yönelik ek girişimler başarısız olur. İşlem hattı yeni bir dağıtım oluşturmaya çalışır ve bu da Azure Spring Apps'te uygulama başına yalnızca iki dağıtıma izin verildiğinden hataya neden olur.

Bu nedenle, dağıtım düzenlemesinin başarısız bir dağıtım işlemini daha sonra yeniden deneme araçlarına veya önceki tüm sürümler için akış tamamlanana kadar her sürüm için dağıtım akışlarının kuyruğa alınmış durumda kalmasını sağlama araçlarına sahip olması gerekir.

Sonraki adımlar