Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Petunjuk / Saran
Konten ini adalah kutipan dari eBook, Merancang Aplikasi .NET Cloud Native untuk Azure, tersedia di .NET Docs atau sebagai PDF gratis yang dapat diunduh yang dapat dibaca secara offline.
Kami telah membahas kontainer dalam bab ini dan di bab 1. Kami telah melihat bahwa kontainer memberikan banyak manfaat bagi aplikasi cloud-native, termasuk portabilitas. Di cloud Azure, Anda dapat menyebarkan layanan kontainer yang sama di seluruh lingkungan penahapan dan produksi. Azure menyediakan beberapa opsi untuk menghosting beban kerja kontainer ini:
- Azure Kubernetes Services (AKS)
- Azure Container Instance (ACI)
- Azure Web Apps untuk Kontainer
Azure Container Registry (Pendaftaran Kontainer Azure)
Saat membuat kontainer layanan mikro, Anda terlebih dahulu membuat kontainer "gambar." Gambar adalah representasi biner dari kode layanan, dependensi, dan runtime. Meskipun Anda dapat membuat gambar secara manual menggunakan Docker Build perintah dari Docker API, pendekatan yang lebih baik adalah membuatnya sebagai bagian dari proses build otomatis.
Setelah dibuat, gambar kontainer disimpan dalam registri kontainer. Mereka memungkinkan Anda untuk membangun, menyimpan, dan mengelola gambar kontainer. Ada banyak registri yang tersedia, baik publik maupun privat. Azure Container Registry (ACR) adalah layanan registri kontainer yang dikelola sepenuhnya di cloud Azure. Ini mempertahankan gambar Anda di dalam jaringan Azure, mengurangi waktu untuk menyebarkannya ke host kontainer Azure. Anda juga dapat mengamankannya menggunakan prosedur keamanan dan identitas yang sama dengan yang Anda gunakan untuk sumber daya Azure lainnya.
Anda membuat Azure Container Registry menggunakan portal Microsoft Azure, Azure CLI, atau alat PowerShell. Membuat registri di Azure sederhana. Ini memerlukan langganan Azure, grup sumber daya, dan nama unik. Gambar 3-10 menunjukkan opsi dasar untuk membuat registri, yang akan dihosting di registryname.azurecr.io.
Gambar 3-10. Buat registri kontainer
Setelah membuat registri, Anda harus mengautentikasinya sebelum dapat menggunakannya. Biasanya, Anda akan masuk ke registri menggunakan perintah Azure CLI:
az acr login --name *registryname*
Setelah diautentikasi, Anda dapat menggunakan perintah docker untuk mendorong gambar kontainer ke dalamnya. Namun, sebelum dapat melakukannya, Anda harus menandai gambar Anda dengan nama (URL) server masuk ACR Anda yang sepenuhnya memenuhi syarat. Ini akan memiliki format registryname.azurecr.io.
docker tag mycontainer myregistry.azurecr.io/mycontainer:v1
Setelah menandai gambar, Anda menggunakan docker push perintah untuk mendorong gambar ke instans ACR Anda.
docker push myregistry.azurecr.io/mycontainer:v1
Setelah Anda mendorong gambar ke registri, ada baiknya untuk menghapus gambar dari lingkungan Docker lokal Anda, menggunakan perintah ini:
docker rmi myregistry.azurecr.io/mycontainer:v1
Sebagai praktik terbaik, Anda tidak boleh mengunggah citra secara manual ke registri kontainer. Sebagai gantinya, gunakan alur build yang ditentukan dalam alat seperti GitHub atau Azure DevOps. Pelajari selengkapnya di babCloud-Native DevOps.
Tugas ACR
Tugas ACR adalah sekumpulan fitur yang tersedia dari Azure Container Registry. Ini memperluas siklus pengembangan inner-loop Anda dengan membangun dan mengelola citra kontainer di cloud Azure. Alih-alih memanggil docker build dan docker push secara lokal di komputer pengembangan Anda, mereka secara otomatis ditangani oleh Tugas ACR di cloud.
Perintah AZ CLI berikut membangun gambar kontainer dan mendorongnya ke ACR:
# create a container registry
az acr create --resource-group myResourceGroup --name myContainerRegistry008 --sku Basic
# build container image in ACR and push it into your container registry
az acr build --image sample/hello-world:v1 --registry myContainerRegistry008 --file Dockerfile .
Seperti yang Anda lihat dari blok perintah sebelumnya, Tidak perlu menginstal Docker Desktop di komputer pengembangan Anda. Selain itu, Anda dapat mengonfigurasi pemicu Tugas ACR untuk membangun kembali gambar kontainer pada kode sumber dan pembaruan gambar dasar.
Azure Kubernetes Service
Kami membahas Azure Kubernetes Service (AKS) panjang lebar dalam bab ini. Kita telah melihat bahwa itu adalah orkestrator kontainer de facto yang mengelola aplikasi cloud-native yang terkontainer.
Setelah menyebarkan gambar ke registri, seperti ACR, Anda dapat mengonfigurasi AKS untuk menarik dan menyebarkannya secara otomatis. Dengan alur CI/CD yang sudah diterapkan, Anda dapat mengonfigurasi strategi canary release untuk meminimalkan risiko yang terlibat saat menyebarkan pembaruan dengan cepat. Versi baru aplikasi awalnya dikonfigurasi dalam produksi tanpa adanya lalu lintas yang diarahkan ke sana. Kemudian, sistem akan merutekan persentase kecil pengguna ke versi yang baru disebarkan. Saat tim semakin percaya diri dengan versi baru, tim dapat meluncurkan lebih banyak instans dan menonaktifkan yang lama. AKS dengan mudah mendukung gaya penyebaran ini.
Seperti kebanyakan sumber daya di Azure, Anda dapat membuat kluster Azure Kubernetes Service menggunakan portal, baris perintah, atau alat otomatisasi seperti Helm atau Terraform. Untuk mulai menggunakan kluster baru, Anda perlu memberikan informasi berikut:
- Langganan Azure
- Grup sumber daya
- Nama kluster Kubernetes
- Wilayah
- Versi Kubernetes
- Awalan nama DNS
- Ukuran simpul
- Jumlah simpul
Informasi ini cukup untuk memulai. Sebagai bagian dari proses pembuatan di portal Microsoft Azure, Anda juga dapat mengonfigurasi opsi untuk fitur kluster berikut:
- Timbangan
- Otentikasi
- Jaringan
- Pemantauan
- Tagar
Panduan mulai cepat ini memandu penyebaran kluster AKS melalui portal Azure.
Azure Bridge ke Kubernetes
Aplikasi cloud-native dapat tumbuh besar dan kompleks, membutuhkan sumber daya komputasi yang signifikan untuk dijalankan. Dalam skenario ini, seluruh aplikasi tidak dapat dihosting pada mesin pengembangan (terutama laptop). Azure Bridge ke Kubernetes mengatasi kekurangannya. Ini memungkinkan pengembang untuk bekerja dengan versi lokal layanan mereka saat menghosting seluruh aplikasi dalam kluster pengembangan AKS.
Ketika siap, pengembang menguji perubahan mereka secara lokal saat berjalan terhadap aplikasi lengkap di kluster AKS - tanpa mereplikasi dependensi. Di bawah tenda, jembatan menggabungkan kode dari komputer lokal dengan layanan di AKS. Pengembang dapat dengan cepat melakukan iterasi dan debug kode langsung di Kubernetes menggunakan Visual Studio atau Visual Studio Code.
Gabe Monroy, mantan VP Manajemen Produk di Microsoft, menjelaskannya dengan baik:
Bayangkan Anda adalah karyawan baru yang mencoba memperbaiki bug dalam aplikasi layanan mikro kompleks yang terdiri dari puluhan komponen, masing-masing dengan konfigurasi dan layanan dukungan mereka sendiri. Untuk memulai, Anda harus mengonfigurasi lingkungan pengembangan lokal sehingga dapat meniru produksi termasuk menyiapkan IDE, membangun rantai alat, dependensi layanan kontainer, lingkungan Kubernetes lokal, tiruan untuk layanan pendukung, dan banyak lagi. Dengan semua waktu yang terlibat dalam menyiapkan lingkungan pengembangan Anda, memperbaiki bug pertama itu bisa memakan waktu ber hari! Atau Anda hanya dapat menggunakan Bridge ke Kubernetes dan AKS.