Azure Container Apps'te değişiklikleri güncelleştirme ve dağıtma

Bulutta kapsayıcılı uygulamalar geliştirirken değişiklik yönetimi zor olabilir. Son olarak, değişiklikleri izlemek, çalışma süresini sağlamak ve sorunsuz geri alma işlemlerini işlemek için mekanizmalara sahip olmak için desteğe ihtiyacınız vardır.

Azure Container Apps'te değişiklik yönetimi, kapsayıcı uygulamanızın her sürümünün anlık görüntüsü olan düzeltmelerle desteklenir.

Düzeltmelerin temel özellikleri şunlardır:

  • Sabit: Bir düzeltme oluşturulduktan sonra değiştirilemez durumda kalır.

  • Sürümlendi: Düzeltmeler, kapsayıcı uygulamasının sürümlerinin kaydı olarak görev yaparak durumunu çeşitli aşamalarda yakalar.

  • Otomatik olarak sağlanır: Kapsayıcı uygulamasını ilk kez dağıttığınızda, ilk düzeltme otomatik olarak oluşturulur.

  • Kapsamlı değişiklikler: Düzeltmeler statik kalırken, uygulama kapsamı değişiklikleri tüm düzeltmeleri etkileyebilirken , düzeltme kapsamı değişiklikleri yeni bir düzeltme oluşturur.

  • Geçmiş kaydı: Varsayılan olarak 100 etkin olmayan düzeltmeye erişiminiz vardır, ancak bu eşiği el ile ayarlayabilirsiniz.

  • Birden çok düzeltme: Birden çok düzeltmeyi eşzamanlı olarak çalıştırabilirsiniz. Bu özellik özellikle uygulamanızın farklı sürümlerini aynı anda yönetmeniz gerektiğinde yararlıdır.

Yaşam döngüsü

Her düzeltme, durumunun ve kullanılabilirliğinin etkilediği belirli durumlardan geçer. Kapsayıcı uygulaması yaşam döngüsü boyunca farklı sağlama, çalıştırma ve etkin olmayan durumdan geçer.

Sağlama durumu

Yeni bir düzeltme oluşturduğunuzda kapsayıcı uygulaması başlatma ve hazırlık denetimlerinden geçer. Bu aşamada sağlama durumu, kapsayıcı uygulamasının ilerleme durumunu izlemek için bir kılavuz görevi görür.

Çalıştırma Durumu Açıklama
Hazırlanıyor Düzeltme doğrulama sürecindedir.
Sağlanan Düzeltme tüm denetimleri başarıyla geçti.
Sağlama başarısız oldu Düzeltme, doğrulama sırasında sorunlarla karşılaştı.

Çalışma durumu

Bir kapsayıcı uygulaması başarıyla sağlandıktan sonra, düzeltme çalışma aşamasına girer. Çalışma durumu, kapsayıcı uygulamasının sistem durumunu ve işlevselliğini izlemeye yardımcı olur.

Çalıştırma Durumu Açıklama
Hazırlanıyor Düzeltme doğrulama sürecindedir.
0'a ölçeklendirin Sıfır çalışan çoğaltma ve hiçbir yeni çoğaltma sağlanmaz. Ölçek kuralları tetiklenirse kapsayıcı uygulaması yeni çoğaltmalar oluşturabilir.
Etkinleştirme Sıfır çalışan çoğaltma, bir çoğaltma sağlanıyor.
Etkinleştirme başarısız oldu İlk çoğaltma sağlanamadı.
Ölçeklendirme / İşleme Ölçeği daraltma veya genişletme işlemi gerçekleşiyor. Bir veya daha fazla çoğaltma çalışırken, diğer çoğaltmalar sağlanıyor.
Çalışıyor Bir veya daha fazla çoğaltma çalışıyor. Bildirecek bir sorun yok.
Çalışıyor (en fazla) En fazla çoğaltma sayısı (düzeltmenin ölçek kurallarına göre) çalışıyor. Bildirecek bir sorun yok.
Sağlamayı kaldırma Düzeltme etkin durumdan etkin olmayana geçiş yapmakta ve oluşturduğu tüm kaynakları kaldırıyor.
Düzeyi düşürüldü Düzeltmedeki en az bir çoğaltma başarısız durumda. Belirli sorunlar için çalışan durum ayrıntılarını görüntüleyin.
Başarısız oldu Kritik hatalar düzeltmelerin başarısız olmasına neden oldu. Çalışan durum ayrıntıları sağlar. Yaygın nedenler şunlardır:
•Son -landırma
• Çıkış kodu 137

Etkin değil durumu

Düzeltmeler etkin olmayan bir duruma da girebilir. Bu düzeltmeler sağlama veya çalıştırma durumlarına sahip değildir. Ancak Azure Container Apps bu düzeltmelerin listesini tutar ve en fazla 100 etkin olmayan girdiyi barındırır. Düzeltmeyi istediğiniz zaman etkinleştirebilirsiniz.

Etkin olmayan düzeltme sınırını değiştirme

Container Apps tarafından izlenen etkin olmayan düzeltmelerin sayısını denetlemek için veya containerapp update komutlarıyla containerapp create parametresini kullanabilirsiniz--max-inactive-revisions.

Bu örnekte, 50 etkin olmayan düzeltmeyi izleyen yeni bir kapsayıcı uygulamasının nasıl oluşturulacağı gösterilmektedir:

az containerapp create --max-inactive-revisions 50

Düzeltme modları

Azure Container Apps iki düzeltme modunu destekler. Seçtiğiniz mod, uygulamanızın kaç düzeltmesinin aynı anda etkin olduğunu belirler.

Düzeltme modları Açıklama Varsayılan
Tekli Yeni düzeltmeler otomatik olarak sağlanır, etkinleştirilir ve istenen boyuta ölçeklendirilir. Tüm çoğaltmalar ölçek kuralı tarafından tanımlandığı gibi çalıştırıldıktan sonra trafik eski sürümden yenisine yönlendirilir. Güncelleştirme başarısız olursa trafik eski düzeltmeye işaret eder. Eski düzeltmelerin sağlamaları otomatik olarak kaldırılır. Yes
Miktar çarpanı Birden çok etkin düzeltmeniz olabilir, trafiği düzeltmeler arasında bölebilir ve eski düzeltmelerin sağlamasını ne zaman kaldırabileceğinizi seçebilirsiniz. Bu denetim düzeyi, bir uygulamanın birden çok sürümünü test etme, mavi-yeşil testi veya uygulama güncelleştirmelerinin tam denetimini alma için yararlıdır. Daha fazla ayrıntı için trafik bölme bölümüne bakın.

Etiketler

Dış HTTP trafiğine sahip kapsayıcı uygulamaları için etiketler trafiği belirli düzeltmelere yönlendirir. Etiket, trafiği etiketin atandığı düzeltmeye yönlendirmek için kullanabileceğiniz benzersiz bir URL sağlar.

Düzeltmeler arasında trafik değiştirmek için etiketi bir düzeltmeden diğerine taşıyabilirsiniz.

  • Etiketler, bir düzeltmeden diğerine taşındığında aynı URL'yi tutar.
  • Bir etiket aynı anda yalnızca bir düzeltmeye uygulanabilir.
  • Etiketlerle yapılan düzeltmelerde trafik bölme için ayırma gerekli değildir.
  • Etiketler en çok uygulama birden çok düzeltme modundayken kullanışlıdır.
  • Etiketleri, trafiği bölmeyi veya her ikisini de etkinleştirebilirsiniz.

Etiketler yeni düzeltmeleri test etmede kullanışlıdır. Örneğin, bir dizi test kullanıcısına erişim vermek istediğinizde, onlara etiketin URL'sini verebilirsiniz. Ardından kullanıcılarınızı farklı bir düzeltmeye taşımak istediğinizde etiketi bu düzeltmeye taşıyabilirsiniz.

Etiketler trafik bölme işleminden bağımsız olarak çalışır. Trafik bölme işlemi, kapsayıcı uygulamasının uygulama URL'sine giden trafiği, trafik yüzdesine göre düzeltmelere dağıtır. Trafik bir etiketin URL'sine yönlendirildiğinde, trafik belirli bir düzeltmeye yönlendirilir.

Bir etiket adı şu şekilde olmalıdır:

  • Küçük harf alfasayısal karakterlerden veya kısa çizgilerden oluşur (-)
  • Alfabetik karakterle başlama
  • Alfasayısal karakterle bitir

Etiketler şu şekilde olmamalıdır:

  • Ardışık iki tire (--)
  • 64 karakterden uzun olmalıdır

Azure portalındaki kapsayıcı uygulamanızın Düzeltme yönetimi sayfasından etiketleri yönetebilirsiniz.

Screenshot of Container Apps revision management.

Etiket URL'si, düzeltme ayrıntıları bölmesinde bulunur.

Screenshot of Container Apps revision details.

Sıfır kesinti süresi dağıtımı

Tek düzeltme modunda Container Apps, uygulamanızın yeni bir düzeltme oluştururken kapalı kalma süresi yaşamamasını sağlar. Yeni düzeltme hazır olana kadar mevcut etkin düzeltme devre dışı bırakılamaz.

Giriş etkinleştirilirse, yeni düzeltme hazır olana kadar mevcut düzeltme trafiğin %100'ünün alınmasına devam eder.

Yeni bir düzeltmenin hazır olduğu kabul edilir:

  • Düzeltme başarıyla sağlandı
  • Düzeltmenin ölçeği önceki düzeltme çoğaltma sayısıyla eşleşecek şekilde artırıldı (yeni düzeltmenin en düşük ve en yüksek çoğaltma sayısına göre)
  • Tüm çoğaltmalar başlangıç ve hazırlık yoklamalarını geçti

Birden çok düzeltme modunda, düzeltmelerin ne zaman etkinleştirildiğini veya devre dışı bırakıldığını ve hangi düzeltmelerin giriş trafiğini alacağını denetleyebilirsiniz. Bir trafik bölme kuralılatestRevision olarak ayarlandıysa true, trafik hazır olana kadar en son düzeltmeye geçiş yapmaz.

Birden çok düzeltmeyle çalışma

Varsayılan olarak tek düzeltme modu olsa da, bazen düzeltmelerinizin nasıl yönetildiğini tam olarak denetlemek isteyebilirsiniz.

Birden çok düzeltme modu, düzeltmenizi el ile yönetme esnekliği sağlar. Örneğin, birden çok düzeltme modunu kullanmak, her düzeltmeye tam olarak ne kadar trafik ayrıldığına karar vermenizi sağlar.

Trafik bölme

Aşağıdaki diyagramda iki düzeltme içeren bir kapsayıcı uygulaması gösterilmektedir.

Azure Container Apps: Traffic splitting among revisions

Bu senaryoda kapsayıcı uygulamasının şu durumda olduğu varsayılır:

  • Giriş etkinleştirildiğinden kapsayıcı uygulaması HTTP veya TCP aracılığıyla kullanılabilir hale getirilmiştir.
  • İlk düzeltme, Düzeltme 1 olarak dağıtıldı.
  • Kapsayıcı güncelleştirildikten sonra, Düzeltme 2 olarak yeni bir düzeltme etkinleştirildi.
  • Trafik bölme kuralları, Düzeltme 1'in isteklerin %80'ini ve Düzeltme 2'nin kalan %20'sini alması için yapılandırılır.

Doğrudan düzeltme erişimi

Trafiği düzeltmeye yönlendirmek için yönlendirme kuralı kullanmak yerine, düzeltmeyi belirli bir URL'ye yönelik istekler için kullanılabilir hale getirmek isteyebilirsiniz. Birden çok düzeltme modu, etki alanınıza gelen tüm istekleri en son düzeltmeye göndermenize olanak sağlarken, doğrudan erişim için etiketler aracılığıyla eski bir düzeltmeye yönelik istekler kullanılabilir.

Etkinleştirme durumu

Birden çok düzeltme modunda, düzeltmeleri gerektiği gibi etkinleştirebilir veya devre dışı bırakabilirsiniz. Etkin düzeltmeler çalışır durumdadır ve istekleri işleyebilirken, etkin olmayan düzeltmeler uykuda kalır.

Container Apps etkin olmayan düzeltmeler için ücret almaz. Ancak, kullanılabilir düzeltmelerin toplam sayısıyla ilgili bir üst sınır vardır ve en eskileri 100 sayısını aştığınızda temizlenir.

Değişiklik türleri

Kapsayıcı uygulamasında yapılan değişiklikler iki kategoriye ayrılır: düzeltme kapsamı veya uygulama kapsamı değişiklikleri. Düzeltme kapsamı değişiklikleri, uygulamanızı dağıttığınızda yeni bir düzeltme tetiklerken , uygulama kapsamı değişiklikleri tetiklemez.

Düzeltme kapsamı değişiklikleri

Kapsayıcı uygulaması düzeltme kapsamı değişiklikleriyle güncelleştirildiğinde yeni bir düzeltme oluşturulur. Değişiklikler dağıtıldıkları düzeltmeyle sınırlıdır ve diğer düzeltmeleri etkilemez.

Düzeltme kapsamı değişikliği, kapsayıcı uygulaması kaynak şablonunun properties.template bölümündeki parametrelerde yapılan herhangi bir değişikliktir.

Bu parametreler şunlardır:

  • Düzeltme son eki
  • Kapsayıcı yapılandırması ve görüntüleri
  • Kapsayıcı uygulaması için ölçeklendirme kuralları

Uygulama kapsamı değişiklikleri

Uygulama kapsamı değişiklikleri olan bir kapsayıcı uygulaması dağıttığınızda:

  • Değişiklikler genel olarak tüm düzeltmelere uygulanır.
  • Yeni bir düzeltme oluşturulmaz.

Uygulama kapsamı değişiklikleri, kapsayıcı uygulaması kaynak şablonunun properties.configuration bölümündeki parametrelerde yapılan herhangi bir değişiklik olarak tanımlanır.

Bu parametreler şunlardır:

Düzeltmeleri özelleştirme

Düzeltme adını ve etiketlerini, adlandırma kurallarınızla veya sürüm oluşturma stratejinizle daha iyi uyumlu olacak şekilde özelleştirebilirsiniz.

Ad soneki

Container Apps'teki her düzeltmeye benzersiz bir tanımlayıcı atanır. Adlar otomatik olarak oluşturulurken, düzeltme adını kişiselleştirebilirsiniz.

Düzeltme adının tipik biçimi şu şekildedir:

<CONTAINER_APP_NAME>-<REVISION_SUFFIX>

Örneğin, album-api adlı bir kapsayıcı uygulamanız varsa ve düzeltme sonekini ilk düzeltmeye karar verirseniz, tam düzeltme adı album-api-first-revision olur.

Düzeltme soneki adı:

  • Yalnızca küçük harf alfasayısal karakterlerden veya kısa çizgilerden oluşur (-)
  • Alfabetik karakterle başlama
  • Alfasayısal karakterle bitir

Adlar şu şekilde olmamalıdır:

  • Ardışık iki tire (--)
  • 64 karakterden uzun olmalıdır

ARM şablonunda, Azure CLI az containerapp create ve az containerapp update komutlar aracılığıyla veya Azure portalı üzerinden düzeltme oluştururken düzeltme son ekini ayarlayabilirsiniz.

Kullanım örnekleri

Kapsayıcı uygulamalarında düzeltmeleri kullanmaya yönelik yaygın kullanım örnekleri aşağıdadır. Bu liste, Container Apps düzeltmelerini kullanmanın amacının veya özelliklerinin kapsamlı bir listesi değildir.

Sürüm yönetimi

Düzeltmeler, uygulamanızın yeni sürümlerini kullanıma sunma sürecini kolaylaştırır. Bir güncelleştirmeyi veya yeni bir özelliği kullanıma sunmaya hazır olduğunuzda, geçerli canlı sürümü etkilemeden yeni bir düzeltme oluşturabilirsiniz. Bu yaklaşım sorunsuz bir geçiş sağlar ve son kullanıcılar için kesintileri en aza indirir.

Önceki sürümlere geri dönme

Bazen uygulamanızın önceki, kararlı bir sürümüne hızla geri dönmeniz gerekir. Gerekirse kapsayıcı uygulamanızın önceki bir düzeltmesine geri dönebilirsiniz.

A/B testi

Uygulamanızın farklı sürümlerini test etmek istediğinizde düzeltmeler A/B testini destekleyebilir. Kullanıcılarınızın bir alt kümesini yeni bir düzeltmeye yönlendirebilir, geri bildirim toplayabilir ve gerçek dünya verilerine göre bilinçli kararlar alabilirsiniz.

Mavi-yeşil dağıtımlar

Düzeltmeler mavi-yeşil dağıtım stratejisini destekler. İki paralel düzeltmeye (canlı sürüm için mavi ve yeni sürüm için yeşil) sahip olarak, yeni bir düzeltmede aşamalı olarak aşama oluşturabilirsiniz. Yeni sürümün kararlılığı ve performansına güvendikten sonra trafiği tamamen yeşil ortama geçirebilirsiniz.

Sonraki adımlar