0Pricing
Cloud & IT Cert Prep · Pelajaran

Azure Container Apps

Terapkan aplikasi layanan mikro ke Azure Container Apps dengan integrasi sidecar Dapr, konfigurasikan ingress, dan gunakan penskalaan otomatis berbasis KEDA yang dipicu oleh kedalaman antrean Service Bus.

Azure Container Apps adalah pelajaran Cloud & IT Cert Prep gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cloud & IT Cert Prep, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.

Apa Itu Azure Container Apps?

Azure Container Apps (ACA) adalah layanan hosting kontainer tanpa server yang dikelola sepenuhnya, dibangun di atas Kubernetes dan KEDA (Penskalaan Otomatis Berbasis Peristiwa Kubernetes). Berbeda dengan AKS, Anda tidak perlu mengelola bidang kontrol, kumpulan node, atau manifes Kubernetes secara langsung. Sebagai gantinya, Anda menerapkan kontainer menggunakan CLI atau definisi YAML sederhana, dan Azure menangani seluruh orkestrasi. ACA ideal untuk layanan mikro, backend API, pekerja berbasis peristiwa, dan tugas pemrosesan latar belakang yang perlu diskalakan secara dinamis, termasuk penskalaan hingga nol.

Lingkungan Container Apps

Sebuah Lingkungan Container Apps adalah batas terisolasi tempat satu atau beberapa Container Apps berjalan. Semua aplikasi dalam sebuah lingkungan berbagi jaringan virtual dan ruang kerja Log Analytics yang sama. Lingkungan dicakup oleh sebuah wilayah dan grup sumber daya. Anda dapat menerapkan beberapa lingkungan untuk mengisolasi tim atau tahap (produksi dibandingkan penahapan). Sebuah lingkungan secara opsional dapat disuntikkan ke VNet Anda sendiri untuk memungkinkan komunikasi privat antara Container Apps dan layanan Azure lainnya tanpa melalui internet publik.

# Create a Container Apps environment
az containerapp env create \
  --name myACAEnvironment \
  --resource-group myRG \
  --location eastus

Menerapkan Container App

Untuk menerapkan Container App, Anda menentukan citra kontainer (dari Azure Container Registry atau registri publik mana pun), jumlah replika, dan variabel lingkungan. Aplikasi dapat diakses secara publik melalui URL HTTPS yang dibuat otomatis jika Anda mengaktifkan ingres eksternal. Konfigurasi ingres mencakup port target, pembagian lalu lintas untuk penerapan blue-green, serta apakah hanya HTTP atau HTTPS yang diizinkan. ACA mengambil citra saat penerapan; lingkungan tersebut harus memiliki izin pengambilan pada registri.

# 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 10

Penskalaan Otomatis Berbasis KEDA

Container Apps melakukan penskalaan menggunakan penskala KEDA yang dipicu berdasarkan metrik eksternal. Penskala KEDA bawaan mencakup: lalu lintas HTTP (permintaan serentak per replika), kedalaman antrean Azure Service Bus (pesan yang menunggu), Azure Storage Queue, Cron (berbasis waktu), dan CPU/Memori. Ketika metrik penskala turun menjadi nol dan minReplicas diatur ke 0, Container Apps diskalakan hingga nol — tanpa biaya komputasi sampai permintaan baru tiba. Penskalaan hingga nol sangat baik untuk pekerja berbasis peristiwa dengan beban kerja yang tidak teratur.

# 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 20

Integrasi Dapr

Dapr (Runtime Aplikasi Terdistribusi) adalah runtime portabel berbasis peristiwa yang menyederhanakan pembuatan layanan mikro. Container Apps memiliki integrasi Dapr bawaan — Anda mengaktifkannya untuk setiap aplikasi dengan satu bendera. Dapr menyediakan blok pembangun untuk: pemanggilan layanan (dengan percobaan ulang dan mTLS), perpesanan pub/sub (mengabstraksikan Service Bus, Event Hubs), manajemen status (mengabstraksikan Redis, Cosmos DB), dan pengikatan keluaran. Dengan Dapr, layanan mikro berkomunikasi melalui sespan Dapr tanpa perlu mengetahui detail infrastruktur yang mendasarinya.

# 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 http

Revisi dan Pembagian Lalu Lintas

Setiap penerapan ke Container App membuat revisi baru. Dalam mode beberapa revisi, Anda dapat membagi lalu lintas di antara revisi untuk penerapan blue-green atau canary. Misalnya, kirim 10% lalu lintas ke revisi baru dan 90% ke revisi stabil saat ini. Pantau laju kesalahan dan latensi pada revisi baru sebelum meningkatkan bobot lalu lintasnya menjadi 100%. Revisi lama dapat dinonaktifkan tetapi tetap disimpan dalam riwayat, sehingga memungkinkan pembatalan langsung dengan mengembalikan bobot lalu lintas.

# Set traffic split between two revisions
az containerapp ingress traffic set \
  --name myapi \
  --resource-group myRG \
  --revision-weight myapi--abc123=90 myapi--def456=10

Rahasia dan Variabel Lingkungan

Container Apps mendukung dua cara untuk memasukkan konfigurasi: variabel lingkungan (untuk konfigurasi yang tidak sensitif seperti bendera fitur atau URL API) dan rahasia (untuk nilai sensitif seperti string koneksi). Rahasia disimpan pada tingkat Container App dan direferensikan oleh variabel lingkungan atau komponen Dapr. Untuk pengaturan yang paling aman, referensikan rahasia dari Azure Key Vault menggunakan identitas terkelola, sehingga nilai rahasia diambil saat runtime dan tidak pernah disimpan di bidang konfigurasi Container App.

# 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'

Pekerjaan: Beban Kerja yang Berjalan hingga Selesai

Container Apps Jobs memperluas platform untuk mendukung beban kerja berjalan hingga selesai—kontainer yang dimulai, melakukan pekerjaan, lalu berhenti. Jobs mendukung tiga jenis pemicu: Manual (dipicu melalui API atau CLI), Terjadwal (ekspresi cron), dan Berbasis peristiwa (pemicu penskalaan KEDA menjalankan setiap eksekusi). Jobs hanya ditagihkan berdasarkan waktu eksekusi yang sebenarnya dan ideal untuk pemrosesan batch, pembuatan laporan, migrasi basis data, serta pipeline inferensi ML yang berjalan secara berkala atau sebagai respons terhadap peristiwa.

# 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 1Gi

Observabilitas: Log dan Metrik

Container Apps mengirim log sistem (peristiwa platform seperti pembuatan revisi dan penskalaan) serta log konsol (stdout/stderr aplikasi Anda) ke ruang kerja Analitik Log yang terlampir pada lingkungan tersebut. Lakukan kueri terhadap log dengan KQL: ContainerAppConsoleLogs_CL | where ContainerAppName_s == 'myapi' | project TimeGenerated, Log_s. Metrik Azure Monitor bawaan mencakup jumlah replika, jumlah permintaan, latensi permintaan, serta pemanfaatan CPU/memori per replika—semuanya tersedia di portal Azure tanpa konfigurasi tambahan.

# Stream live logs from a Container App
az containerapp logs show \
  --name myapi \
  --resource-group myRG \
  --follow

ACA vs. AKS vs. App Service

Memilih platform kontainer Azure yang tepat: Container Apps paling sesuai untuk layanan mikro, pekerja berbasis peristiwa, dan API ketika Anda menginginkan manfaat Kubernetes tanpa mengelola klaster—terutama saat penskalaan ke nol bermanfaat. AKS paling sesuai ketika Anda memerlukan kontrol penuh atas Kubernetes, operator khusus, atau konfigurasi simpul tertentu (GPU, memori tinggi). App Service paling sesuai untuk aplikasi web dan API tradisional ketika tim pengembang menginginkan model PaaS sederhana tanpa beban pengelolaan kontainer. Ketiganya mendukung kontainer; perbedaannya terletak pada kompleksitas pengelolaan dibandingkan dengan tingkat kontrol.

Jaringan: Ingress Internal dan Eksternal

Container Apps mendukung dua mode ingress: Eksternal (dapat diakses publik melalui titik akhir HTTPS dengan penyeimbangan beban dan TLS otomatis) serta Internal (hanya dapat diakses dari dalam lingkungan Container Apps yang sama atau dari sumber daya yang terhubung melalui peering VNet). Ingress internal digunakan untuk layanan backend yang tidak boleh terekspos ke internet. Apps dapat saling memanggil menggunakan nama DNS internal yang dibuat otomatis, http://myapi, dalam lingkungan yang sama, sehingga memungkinkan komunikasi sederhana antarlayanan tanpa menerapkan gateway API.

Pemeriksaan Singkat

Uji pemahaman Anda tentang konsep Microsoft Azure Fundamentals (AZ-900) dari pelajaran ini.

Rangkuman Pelajaran

Dalam pelajaran ini Anda mempelajari bahwa Azure Container Apps menyediakan hosting kontainer tanpa server yang dibangun di atas Kubernetes dan KEDA tanpa pengelolaan klaster, penskalaan KEDA memungkinkan penskalaan ke nol berdasarkan kedalaman antrean, lalu lintas HTTP, atau jadwal cron, dan integrasi Dapr menyederhanakan komunikasi antarlayanan mikro serta pengelolaan status. Berikutnya, kita menghubungkan semuanya menjadi alur kerja pengembang menyeluruh dari ujung ke ujung.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Azure Container Apps” gratis?

Ya — teks lengkap “Azure Container Apps” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cloud & IT Cert Prep, upgrade ke CoddyKit PRO. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Azure Container Apps”?

Terapkan aplikasi layanan mikro ke Azure Container Apps dengan integrasi sidecar Dapr, konfigurasikan ingress, dan gunakan penskalaan otomatis berbasis KEDA yang dipicu oleh kedalaman antrean Service… Kamu berlatih Cloud & IT Cert Prep dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Cloud & IT Cert Prep?

Tidak diperlukan pengalaman sebelumnya. Cloud & IT Cert Prep di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Azure Container Apps” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Cloud & IT Cert Prep ini?

Ya. Setiap pelajaran Cloud & IT Cert Prep menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Managed Identity untuk Autentikasi Tanpa Kata Sandi
  2. Azure Service Bus untuk Pesan yang Terpisah
  3. Azure Container Apps
  4. Alur Kerja Pengembang Menyeluruh
← Kembali ke Cloud & IT Cert Prep