Azure Container Apps
Dapr yan araba tümleştirmesiyle bir mikro hizmet uygulamasını Azure Container Apps’e dağıtın, gelen trafiği yapılandırın ve Service Bus kuyruğu derinliğiyle tetiklenen KEDA tabanlı otomatik ölçeklendirmeyi kullanın.
Azure Container Apps, CoddyKit'te ücretsiz bir Cloud & IT Cert Prep dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Cloud & IT Cert Prep öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.
Azure Container Apps Nedir?
Azure Container Apps (ACA), Kubernetes ve KEDA (Kubernetes Olay Tabanlı Otomatik Ölçeklendirme) üzerine kurulmuş, tamamen yönetilen sunucusuz bir kapsayıcı barındırma hizmetidir. AKS'nin aksine, denetim düzlemini, düğüm havuzlarını veya Kubernetes bildirimlerini doğrudan yönetmezsiniz. Bunun yerine kapsayıcıları basit bir CLI veya YAML tanımı kullanarak dağıtırsınız ve tüm düzenlemeyi Azure gerçekleştirir. ACA; sıfıra kadar dinamik olarak ölçeklenmesi gereken mikro hizmetler, API arka uçları, olay odaklı çalışanlar ve arka plan işleme görevleri için idealdir.
Container Apps Ortamları
Bir Container Apps Ortamı, bir veya daha fazla Container Apps'in çalıştığı yalıtılmış sınırdır. Bir ortamdaki tüm uygulamalar aynı sanal ağı ve Log Analytics çalışma alanını paylaşır. Ortamlar bir bölge ve kaynak grubuyla sınırlıdır. Ekipler veya aşamalar (üretim ve hazırlama gibi) arasında yalıtım sağlamak için birden çok ortam dağıtabilirsiniz. Bir ortam, Container Apps ile diğer Azure hizmetleri arasında genel internet üzerinden geçmeden özel iletişim kurulabilmesi için isteğe bağlı olarak kendi sanal ağınıza VNet eklenmiş şekilde yapılandırılabilir.
# Create a Container Apps environment
az containerapp env create \
--name myACAEnvironment \
--resource-group myRG \
--location eastusContainer App Dağıtma
Bir Container App dağıtmak için kapsayıcı görüntüsünü (Azure Container Registry'den veya herhangi bir genel kayıt defterinden), çoğaltma sayısını ve ortam değişkenlerini belirtirsiniz. Dış giriş etkinleştirilirse uygulamaya otomatik oluşturulan bir HTTPS URL'si üzerinden genel erişim sağlanır. Giriş yapılandırması hedef bağlantı noktasını, mavi-yeşil dağıtımlar için trafik bölüştürmeyi ve yalnızca HTTP'ye veya HTTPS'ye izin verilip verilmeyeceğini içerir. ACA, görüntüyü dağıtım sırasında çeker; ortamın kayıt defterinde çekme izinlerine sahip olması gerekir.
# Deploy a container app from Azure Container Registry
az containerapp create \
--name myapi \
--resource-group myRG \
--environment myACAEnvironment \
--image myacr.azurecr.io/myapi:latest \
--target-port 8080 \
--ingress external \
--registry-server myacr.azurecr.io \
--min-replicas 1 \
--max-replicas 10KEDA Tabanlı Otomatik Ölçeklendirme
Container Apps, harici ölçümlere göre tetiklenen KEDA ölçekleyicilerini kullanarak ölçeklenir. Yerleşik KEDA ölçekleyicileri şunları içerir: HTTP trafiği (çoğaltma başına eşzamanlı istekler), Azure Service Bus kuyruk derinliği (bekleyen iletiler), Azure Storage Queue, Cron (zamana dayalı) ve CPU/Bellek. Ölçekleyici ölçümü sıfıra düştüğünde ve minReplicas değeri 0 olarak ayarlandığında Container Apps sıfıra ölçeklenir; yeni istekler gelene kadar hiçbir işlem maliyeti oluşmaz. Sıfıra ölçekleme, iş yükleri düzensiz olan olay odaklı çalışanlar için mükemmeldir.
# Scale based on Service Bus queue depth
az containerapp update \
--name myworker \
--resource-group myRG \
--scale-rule-name sbqueue-scaler \
--scale-rule-type azure-servicebus \
--scale-rule-metadata 'queueName=orders' 'namespace=myservicebusns' 'messageCount=5' \
--scale-rule-auth 'connection=servicebus-connection-secret:connection' \
--min-replicas 0 \
--max-replicas 20Dapr Tümleştirmesi
Dapr (Dağıtık Uygulama Çalışma Zamanı), mikro hizmet oluşturmayı kolaylaştıran taşınabilir ve olay odaklı bir çalışma zamanıdır. Container Apps yerel Dapr tümleştirmesine sahiptir; bunu uygulama başına tek bir bayrakla etkinleştirirsiniz. Dapr şu yapı taşlarını sağlar: hizmet çağırma (yeniden deneme ve mTLS ile), yayınlama/abone olma iletileri (Service Bus ve Event Hubs'ı soyutlayarak), durum yönetimi (Redis ve Cosmos DB'yi soyutlayarak) ve çıktı bağlamaları. Dapr sayesinde mikro hizmetler, temel altyapının ayrıntılarını bilmeden Dapr yan hizmeti üzerinden iletişim kurar.
# Enable Dapr on a Container App
az containerapp update \
--name myapi \
--resource-group myRG \
--enable-dapr \
--dapr-app-id myapi \
--dapr-app-port 8080 \
--dapr-app-protocol httpSürümler ve Trafik Bölüştürme
Bir Container App'e yapılan her dağıtım yeni bir sürüm oluşturur. Birden çok sürüm modunda, mavi-yeşil veya kanarya dağıtımları için trafiği sürümler arasında bölebilirsiniz. Örneğin trafiğin %10'unu yeni sürüme, %90'ını mevcut kararlı sürüme gönderin. Trafik ağırlığını %100'e çıkarmadan önce yeni sürümdeki hata oranlarını ve gecikmeyi izleyin. Eski sürümler devre dışı bırakılabilir ancak geçmişte tutulur; bu sayede trafik ağırlığını geri taşıyarak anında geri alma yapılabilir.
# Set traffic split between two revisions
az containerapp ingress traffic set \
--name myapi \
--resource-group myRG \
--revision-weight myapi--abc123=90 myapi--def456=10Gizli Bilgiler ve Ortam Değişkenleri
Container Apps yapılandırma eklemek için iki yöntem destekler: ortam değişkenleri (özellik bayrakları veya API URL'leri gibi hassas olmayan yapılandırmalar için) ve gizli bilgiler (bağlantı dizeleri gibi hassas değerler için). Gizli bilgiler Container App düzeyinde depolanır ve ortam değişkenleri veya Dapr bileşenleri tarafından başvurularak kullanılır. En güvenli kurulum için gizli bilgileri yönetilen kimlik kullanarak Azure Key Vault'tan alın; böylece gizli değer çalışma zamanında getirilir ve Container App'in yapılandırma düzleminde hiçbir zaman depolanmaz.
# Add a secret to a Container App
az containerapp secret set \
--name myapi \
--resource-group myRG \
--secrets 'db-password=supersecretpassword'
# Reference the secret as an environment variable
az containerapp update \
--name myapi \
--resource-group myRG \
--set-env-vars 'DB_PASSWORD=secretref:db-password'İşler: Tamamlanana Kadar Çalışan İş Yükleri
Container Apps İşleri, platformu genişleterek başlayıp tamamlanan iş yüklerini destekler; bunlar başlatılan, işini yapan ve sonlanan kapsayıcılardır. İşler üç tetikleyici türünü destekler: El ile (API veya CLI aracılığıyla tetiklenir), Zamanlanmış (cron ifadesiyle) ve Olay güdümlü (KEDA ölçekleyicisi her çalıştırmayı tetikler). İşler yalnızca fiilî çalışma süresi için ücretlendirilir ve periyodik olarak veya olaylara yanıt olarak çalışan toplu işlem, rapor oluşturma, veritabanı geçişleri ve makine öğrenimi çıkarım işlem hatları için idealdir.
# Create a scheduled Container Apps job (run every hour)
az containerapp job create \
--name my-batch-job \
--resource-group myRG \
--environment myACAEnvironment \
--trigger-type Schedule \
--cron-expression '0 * * * *' \
--image myacr.azurecr.io/batchjob:latest \
--cpu 0.5 --memory 1GiGözlemlenebilirlik: Günlükler ve Ölçümler
Container Apps, sistem günlüklerini (revizyon oluşturma ve ölçeklendirme gibi platform olayları) ve konsol günlüklerini (uygulamanızın stdout/stderr çıkışı) ortama bağlı Log Analytics çalışma alanına gönderir. Günlükleri KQL ile sorgulayın: ContainerAppConsoleLogs_CL | where ContainerAppName_s == 'myapi' | project TimeGenerated, Log_s. Yerleşik Azure Monitor ölçümleri arasında çoğaltma sayısı, istek sayısı, istek gecikmesi ve çoğaltma başına CPU/bellek kullanımı bulunur; bunların tümüne ek yapılandırma gerektirmeden Azure portalından erişilebilir.
# Stream live logs from a Container App
az containerapp logs show \
--name myapi \
--resource-group myRG \
--followACA ve AKS ile App Service Karşılaştırması
Doğru Azure kapsayıcı platformunu seçme: Container Apps, kümeyi yönetmeden Kubernetes avantajlarından yararlanmak istediğiniz mikro hizmetler, olay güdümlü çalışanlar ve API'ler için en uygunudur; özellikle sıfıra ölçeklendirme değerliyse. AKS, Kubernetes üzerinde tam denetime, özel işleçlere veya belirli düğüm yapılandırmalarına (GPU, yüksek bellek) ihtiyaç duyduğunuzda en uygunudur. App Service, kapsayıcı yönetiminin ek yükü olmadan geliştirici ekibinin basit bir PaaS modelini tercih ettiği geleneksel web uygulamaları ve API'ler için en uygunudur. Üçü de kapsayıcıları destekler; aralarındaki fark, yönetim karmaşıklığı ile denetim arasındaki dengedir.
Ağ: İç ve Dış Giriş
Container Apps iki giriş modunu destekler: Dış (otomatik TLS içeren, yük dengelemesi yapılmış bir HTTPS uç noktası üzerinden genel erişime açıktır) ve İç (yalnızca aynı Container Apps ortamından veya VNet eşleştirilmiş kaynaklardan erişilebilir). İç giriş, internete asla açılmaması gereken arka uç hizmetleri için kullanılır. Uygulamalar, aynı ortam içinde otomatik oluşturulan http://myapi iç DNS adını kullanarak birbirlerini çağırabilir; böylece API ağ geçidi dağıtmadan hizmetler arası iletişim kolayca sağlanır.
Hızlı Kontrol
Bu derste ele alınan Microsoft Azure Fundamentals (AZ-900) kavramlarını anlayıp anlamadığınızı test edin.
Ders Özeti
Bu derste şunları öğrendiniz: Azure Container Apps, küme yönetimi gerektirmeden Kubernetes ve KEDA üzerine kurulmuş sunucusuz kapsayıcı barındırma olanağı sunar; KEDA ölçekleyicileri, kuyruk derinliğine, HTTP trafiğine veya cron zamanlamalarına göre sıfıra ölçeklendirmeyi sağlar; Dapr tümleştirmesi ise mikro hizmetler arası iletişimi ve durum yönetimini kolaylaştırır. Sırada, tüm parçaları uçtan uca eksiksiz bir geliştirici iş akışında birleştirmek var.
Sıkça Sorulan Sorular
“Azure Container Apps” dersi ücretsiz mi?
Evet — “Azure Container Apps” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Cloud & IT Cert Prep kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.
“Azure Container Apps” dersinde ne öğreneceğim?
Dapr yan araba tümleştirmesiyle bir mikro hizmet uygulamasını Azure Container Apps’e dağıtın, gelen trafiği yapılandırın ve Service Bus kuyruğu derinliğiyle tetiklenen KEDA tabanlı otomatik ölçeklend… Cloud & IT Cert Prep ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Cloud & IT Cert Prep öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Cloud & IT Cert Prep, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Azure Container Apps” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Cloud & IT Cert Prep dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Cloud & IT Cert Prep dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Parolasız Kimlik Doğrulama için Yönetilen Kimlik
- Ayrıştırılmış Mesajlaşma için Azure Service Bus
- Azure Container Apps
- Uçtan Uca Geliştirici İş Akışı