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 eastusAdı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.fqdnBu, 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:
- Uygulamayı yeni bir revizyonla güncelleyin (eskiyi aktif tutmak).
- Yeni revizyona küçük bir trafik yüzdesi gönderin.
- Yavaş yavaş hataları ve geçncy izlemek sırasında trafiği artırmak.
- 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:latestDağı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
- [FONT=0]Adopt a microservices architecture[Dönetici:0][Döneticileri ACA'nın revizyonu ve ingress modeli ile uyumlu hale getiren bir mikro hizmettir.
- [FONT=0)Implement CI/CD boru hatları[[DÜT:1], bu inşa, test, tarama ve otomatik olarak dağıtın.Süre-Bicep/Terraform) ortamları tanımlamak için altyapı kullanın.
- [FONT:0]Başlangıçtan güvenlik)[Döneticileri, Anahtar Pencere referansları, VNet entegrasyonu ve görüntü taraması. Rotate sırları düzenli olarak ve denetim erişimi.
- [0] Doğru planı seçerek maliyet için optimize etmek, mantıklı min/max çoğaltmalar oluşturmak ve sabit iş yükleri için rezerve etmek.
- [FONT:0)Enable observability) erken: Log Analytics'e girişler gönder, Uygulama İçgörülerini etkinleştirin ve hata oranlarına dair uyarıları oluşturun, gecikme ve çoğaltma say.
- [FONT=0] Dapr ve KEDA[DÜDÜT:1], çapraz ele geçirme kaygılarını işlemek için kullanılır: devlet yönetimi, yeniden kurullar, pub/sub ve etkinlik odaklı ölçeklendirme.Bu, kazan plakayı azaltır ve dayanıklılık artırır.
- [FONT:0) Sıfıra ölçeklendirme için tasarım[DÜDÜT:1) Eğer iş yükünüz izin verirse, Soğuk genellikle basit konteynerler için iki saniyenin altındadır; sağlık araştırmalarıyla ve uygun min çoğaltmalarla azaltabilirsiniz.
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]