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.
Etiket URL'si, düzeltme ayrıntıları bölmesinde bulunur.
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.
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:
- Gizli dizi değerleri (kapsayıcı yeni gizli dizi değerlerini tanımadan önce düzeltmeler yeniden başlatılmalıdır)
- Düzeltme modu
- Giriş yapılandırması şunları içerir:
- Girişi açma veya kapatma
- Trafik bölme kuralları
- Etiketler
- Özel kapsayıcı kayıt defterleri için kimlik bilgileri
- Dapr ayarları
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.