Modern App Geliştirme için Azure Konteyner Uygulamaları'nı işletmek ve Yönetmek

Azure Konteyner Uygulamaları (ACA), ekiplerin mikro hizmet dağıtması, arka plan işleri ve API uç noktalarının, kümes veya orkestratörlerin karmaşıklığını sağlamaları için tamamen yönetilen ve inşa edilmiş uygulama modelleridir.ACA, Azure'un altta yatan altyapıyı, ölçeklendirmeyi veya yönetmeyi sağlamaları gerektiğinde modern uygulama geliştirmeleri için tasarlanmıştır.

Azure Konteyner Uygulamaları Nedir?

Azure Konteyner Uygulamaları, kümeleme cihazı ile doğrudan etkileşim kurma için yönetilen bir ortam olarak çalışır, Azure App Servisi (web uygulamaları için) ve Azure Kubernetes Service (AKS) (tüm küme kontrolü için) - düğümleri yönetmeden basitleştirilmiş Kubernetler deneyimi sağlar. ACA, Kubernetes'i hood altında kullanır.

Her konteyner App, birden fazla revizyonu dağıtabileceğiniz ve trafik bölmesini yönetebileceğiniz bir revizyon tabanlı ortamda çalışır. Platform, dayanıklı, mikro hizmet tabanlı uygulamalarla birlikte inşa edilen etkinlik odaklı mimarileri desteklemektedir.[Kubernetes Event-Driven Autoscaling) ve [[Döneticileri [Döneticileri ve iş akışları) ve iş akışları için (Distributed Application Runtime) for buildingoxy Apps ayrıca sıfıra ölçeklendirmeyi destekler.

Core Özellikler ve Cap Yükümleri

Serverless Architecture ve Otomatik Scaling

ACA'nın sunucusuz modeli, sanal makineleri veya küme düğümlerini sağlama ve yönetme ihtiyacını ortadan kaldırır. Platform otomatik olarak HTTP trafiğine dayanan, olay çoğaltmaları (örneğin, kuyruk derinliği, cron programları), veya özel ölçümler ile KEDA ölçeklendirmeler yapılandırılabilir ve minimum kopyalar minimuma ve maksimum çoğaltma sayabilirsiniz.

İnşa Edilmiş Dapr Destek

Dapr, bir bina blok seti (devlet yönetimi, pub/sub, davetli, sırlar, bağlayıcılar) sağlar. ACA, Dapr'ı platform seviyesinde birleştirir, böylece ayrı bir yankar veya altyapı yönetmek olmadan Konteyner App'e olanak sağlar. Bu yüksek mikro hizmetlerin geliştirilmesini azaltır.

Yeniden planlama Yönetimi ve Trafik Bölünmesi

Konteyner Uygulamaları Azure App Servisi ile benzer bir revizyon modeli kullanır: Her kod veya yapılandırma değişikliği yeni bir revizyon yaratırken, eski revizyonlar mevcut kalır. mavi-yeşil dağıtımlar, A/B testleri veya sahnelenen rolloutlar gerçekleştirmek için trafik yüzdesi ayarlayabilirsiniz.Revisions aktif, deaktive edilebilir veya yuvarlanabilir, size dağıtım güvenliğini sağlamak için iyi bir kontrol sağlayabilirsiniz.

Ingress and Custom Domains

Her konteyner App eşsiz bir HTTPS uç noktası alır (örneğin, ESFLT:0). SSL/TLS sertifikaları ile özel alanlar atayabilir, iç (VNet) veya dış trafik izin vermek için yapılandırın ve birden fazla uygulama üzerinden yol tabanlı routing için trafik kuralları oluşturabilirsiniz.

Çevre ve Ağlama

Konteyner Uygulamaları, uygulamalarınız, veri tabanları ve diğer Azure hizmetleri arasında güvenli bir sınır olarak çalışan bir uygulama ortamı olarak kullanılmaktadır.Çevre VNet entegrasyonunu (eski veya iç ortamlar), uygulamalar, veritabanılar ve diğer Azure hizmetleri arasında özel iletişim sağlar. Ayrıca trafik kontrol etmek için özel uç noktaları ve ağ güvenlik grupları kullanabilirsiniz.

Yönetilen Kimlik ve Sırlar

ACA Azure Yönetilen Identities'i destekliyor, konteynerlerinizin Azure hizmetlerine (Key Vault, Storage, SQL Database) sert bilgi vermeden gerçekleştirilmesine izin veriyor. Sırlar doğrudan Azure Key Vault'dan referanslanabilir ve çevre değişkenleri veya hacimler çalıştırılabilir.

Azure Konteyner Uygulamaları

Bir konteyner App'i işletmek, uygulamanızı çevre ve ölçeklendirme kurallarını oluşturmak için konteynerlemekten birkaç adım içerir. Aşağıda genişletilmiş bir iş akışı vardır.

Adım 1: Konç Görüntüünüzü Hazırlayın ve Dene

Uygulamanız için bir Dockerfile oluşturmaya başlayın (örneğin, .NET, Node.js, Python, Go). Görüntünün optimize edilmesi (multi- aşamalar, minimum temel görüntüler) sağlar.If ACR Push the image to a container records –Azure Container (ACR)).

Adım 2: Bir Konteyner App Çevresi Oluştur

Bir uygulama dağıtmadan önce, bir konteyner Uygulamaları Çevresi oluşturmanız gerekir. Bu, Azure Portal, Azure CLI, Bicep, ARM veya Terraform. Bu işlem için bölge, sanal ağ (), ve üretim için VNet entegrasyonunun güvenli bir şekilde kullanılmasını ve özel uç noktaların kullanılmasını sağlar. Örnek CLI komut:

az containerapp env create --name MyEnvironment --resource-group MyRG --location eastus

Adım 3: Konteyner Appunu Tanımlayın ve Deploy the Container App

Uygulamayı tanımlamak için doğru komut kullanın, görüntüyü, çevre değişkenlerini, sırları, ingress ayarlarını ve ölçeklendirme yapılandırmasını ifade edin. Örnek:

az containerapp create --name myapp --resource-group MyRG \
 --environment MyEnvironment --image myregistry.azurecr.io/myapp:v1 \
 --target-port 8080 --ingress external --query properties.configuration.ingress.fqdn

Bu, uygulama otomatik olarak üretilen FQDN ile bir revizyon yaratır ve ortaya çıkarır. Uygulamayı daha sonra yeni görüntüler, çevre değişkenleri veya ölçeklendirme kuralları ile güncelleyebilirsiniz. ”

Adım 4: Sırları ve Yönetilen Kimlik

Azure Key Vault'ta hassas değerler (bağlantı dizeleri, API anahtarları) ve onları konteyner App'inizde sırları olarak referanslayın. Sisteme imza atan veya kullanıcı atamalı kimlik, böylece uygulamanız Anahtar Pencere ve diğer Azure kaynaklarına kodda kimlik doğrulamadan otantik olarak atıfta bulunabilir.

Adım 5: Scaling Kuralları

HTTP isteklerine dayanan otoskaling, CPU, hafıza veya özel etkinlik kaynakları (örneğin, Azure Service Bus kuyrukları, Kafka, TavşanMQ) Dış sistemlerden ölçeklendirmek için KEDA ölçekleyicileri kullanın. Örneğin, bir kuyrukta mesaj sayısına göre ölçeklendirmek için:

az containerapp update --name myapp --resource-group MyRG \
 --min-replicas 0 --max-replicas 10 \
 --scale-rule-name queue-scaler --scale-rule-type azure-queue \
 --scale-rule-auth connection=queue-connection-string \
 --scale-rule-metadata "queueName=myqueue" "queueLength=5"

Azure Konteyner Uygulamaları Yönetimi

Bir kez dağıtılanda, sürekli yönetim izleme, güncelleme ve iyi ölçeklendirme ve güvenlik içerir.

Yeniden planlama Yönetimi ve İşbirlikleri Stratejileri

Uygulamanızı alt süre olmadan güncellemek için revizyon modelini kullanın. Yeni bir görüntü veya değişiklik yapılandırmasını zorlarken, ACA yeni bir revizyon yaratır.In default, all traffic goes to the latest revision.To implement a blue-green deployment:

  1. Uygulamayı yeni bir revizyonla güncelleyin (eskiyi aktif tutmak).
  2. Yeni revizyona küçük bir trafik yüzdesi gönderin.
  3. Yavaş yavaş hataları ve geçncy izlemek sırasında trafiği artırmak.
  4. Eğer istikrarlı olursa, yeni revizyona% 100 trafik ve eskisini devre dışı bırakmak.

Bu yaklaşım riskin en aza indirgenmesi ve daha önceki revizyona geri dönmek için hızlı bir geri dönüş sağlar.

Azure Monitor ile İzleme ve Log Analytics

Azure Monitor ile entegrasyon otomatikdir. metrikleri (örneğin, CPU, hafıza, çoğaltma sayılarını) Azure Portal'da görebilirsiniz. ayrıntılı oturumlar için, konteyner App'inizi bir Log Analytics çalışma alanı ile göndermek için yapılandırın. Kusto sorgularını kullanarak.

Proscaling in Production

Varsayılan otomatikleme birçok senaryo için iyi çalışırken, üretim uygulamaları genellikle özel KEDA ölçekleyicileri gerektirir: Azure Service Bus mesajına göre ölçeklendirmek veya özel bir Prometheus metrik.Staban trafiği ve patlama kapasitesinin üstesinden gelmek için uygun min ve max çoğaltmalar ayarlamanızı sağlayın. Azure portalını kullanın.

Konteynerler ve Demiryolu Backdating

Konteyner Uygulamaları, yeni bir görüntüyü dağıtdığınızda, yeni revizyonun eskisiyle paralel olarak başlatılır.Yeni revizyon sağlıklı olduğunda, trafik yönlendirilir.Eğer sağlık kontrolleri başarısız olursa, ACA otomatik olarak geri dönebilir.

Güvenlik En İyi Uygulamaları

Azure Kaynakları için Yönetilen Identities for Azure Resources

Enable sistem, konteyner resmi veya çevre değişkenlerinde kimlik depolamadan Key Vault, Storage ve veritabanına erişmeye olanak sağlar.NET'in kimliğini Azure AD aracılığıyla gerçekleştirilmesi için kullanın.

Key Vault ile Gizli Yönetim

Azure Key Vault'ta tüm hassas veriler depolayın ve onları Konteyner App yapılandırmanızda gizli referanslar olarak referanslayın. ACA otomatik olarak bunları iş zamanındaki bilgisayar değişkenleri veya hacim hatları olarak enjekte eder.YouTube Key Vault'da işsiz sırları.

Ağ Güvenliği Ağı

İç sadece hizmetler için, konteyner uygulamalarınızı dış trafik engellilerle dağıtın. Ağ güvenlik grupları aracılığıyla sınırsız/yaşlı trafiği sınırlamak için VNet entegrasyonu kullanın. halka açık uç noktalarından gelen trafik için IP kısıtlamasını sağlayın veya Azure Front Door veya API Management'i ön planda kullanın.

Konteyner Image Güvenlik

Microsoft Artifact Record Kayıt Kayıt Kayıtları veya diğer güvenli kaynaklardan güvenilir temel görüntüler kullanın.Sesing:0) Microsoft Defender for Konteynerler için ) veya ACR'nin entegre taramasını sağlamak için ACR'nin özel uç noktalarıyla ilgili görüntüyü açın.

Uyum ve Sertifikalar

Azure Konteyner Uygulamaları Azure uyumluluk sertifikalarını (SOC, PCI DSS, HIPAA, ISO) Veri uzmanlık gereksinimleri karşılayan bir bölgede dağıtılır. Azure Policy'ı yönetişim (örneğin VNet enjeksiyonu veya özel görüntü kayıtlarını gerektiren) kullanın.

Maliyet Optimizasyonu Maliyet

Tüketim vs. Özel Plan

ACA iki fiyat tiers sunuyor: [[Dönetici[Dönetici:0)Convolt) (geçmiş başına vCPU-saniye ve hafızaya ödeme) ve [[2)Dedikated[Düzücük senaryolar için tüketime izin verilir.

Autoscaling ve Scaling to Zero

Plan iş veya API'ler için minimum çoğaltmalar öngörülemeyen trafikle ilgili olarak yapılandırın.Bu, boş zamanlara ihtiyaç duyan kritik yollar için, soğuktan kaçınmak için minimum 1 set verin.Speçevreye ölçeklendirmek için her zaman ayarlandığından daha fazla veri tabanı yüklemeye yardımcı olmak için.

Siteler Instances and saves Plans

Özel planlar için, kullanım ve tahmin temel tüketimlerini yeniden korumadan önce hesaplamak için% 40 tasarruf etmek için bir yıl veya üç yıllık rezerve edilmiş örneklere taahhüt edin. Azure Tasarruf Planı da konteyner Uygulamaları hesaplamasına uygulanır.

Verimli Konteyner Resimleri

Küçük görüntüler zaman ve depolama maliyetlerini azaltır. Alp veya distroless temel görüntüler kullanın, eserler inşa edin ve tabaka önbelleği akıllıca. Mağaza sadece resminizde iş zamanı - ayrı bir inşaat aşamasında araç inşa edin.Bu aynı zamanda zaman ve ölçeklendirme hızını da geliştirir.

Diğer Azure Hizmetleri ile bütünleşme

Azure Konteyner Kayıt Kayıt Kayıt Kayıt

ACR'yi konteyner Uygulamaları için özel kayıt olarak kullanın. geo-replication, görüntü taraması ve sanatifact imzasını destekler.Enable ACR'nin “admin’ hesabı veya kullanımı, kimlikleri güvenli bir şekilde çekmeyi başardı.

Azure DevOps ile CI/CD boru hatları ve GitHub Actions

Azure DevOps'ta Azure CLI görevlerini kullanarak otomatik dağıtımlar veya GitHub Actions. Bir görüntü oluşturabilirsiniz, ACR'ye itin ve tek bir boru hattında konteyner App revizyonunu güncelleyebilirsiniz. Örnek GitHub Actions iş akışı adım:

- name: Deploy to Azure Container Apps
 run: az containerapp update --name myapp --resource-group MyRG --image myacr.azurecr.io/myapp:latest

Dağıtım yuvalarını kullanın (gerekli trafik bölmesi) sahneye kullanın ve tam rollout öncesinde değişiklikleri doğrulayın.

Event-Driven Entegrasyon

Azure Service Bus veya Event Hubs ile birlikte trolül mikro hizmetlerini bozmak için zemin oluşturmak için KEDA ölçekleyicileri yapılandırın.Bu model, sipariş işleme, bildirim veya toplu iş akışları için mükemmel.

Modern App Geliştirme için En İyi Uygulamalar

Bu uygulamaları takip ederek ve Azure Konteyner Uygulamaları' sunucusuz konteyner runtime'ı kullanarak, takımlar ölçeklenebilir, güvenli ve maliyet verimli olan modern uygulamaları inşa edebilir ve işletmektedir. Platform, geliştiricilere herhangi bir dil kullanma özgürlüğü verirken operasyonel yükü azaltır, çerçeve veya bir konteynerde çalışan araç.

Resmi derin yönlendirme için, UYG'ye atıfta bulunun:0)Azure Konteyner Uygulamaları Belgeleri). Dapr ile dağıtılmış uygulama kalıpları hakkında daha fazla bilgi edinmek için, [[Üyetim:2.Dapr belgeleri[DÜyetimli otoskaling örnekleri için, [[Üyetimlemeler için]