Pilih layanan kontainer Azure

Azure menawarkan berbagai layanan hosting kontainer yang dirancang untuk mengakomodasi berbagai beban kerja, arsitektur, dan persyaratan bisnis. Panduan pemilihan layanan kontainer ini dapat membantu Anda memahami layanan kontainer Azure mana yang paling cocok untuk skenario dan persyaratan beban kerja Anda.

Catatan

Dalam panduan ini, istilah beban kerja mengacu pada kumpulan sumber daya aplikasi yang mendukung tujuan bisnis atau eksekusi proses bisnis. Beban kerja menggunakan beberapa layanan, seperti API dan penyimpanan data, yang bekerja sama untuk memberikan fungsionalitas end-to-end tertentu.

Cara menggunakan panduan ini

Panduan ini mencakup dua artikel: artikel pengenalan ini dan artikel lain tentang pertimbangan yang dibagikan di semua jenis beban kerja.

Catatan

Jika Anda belum berkomitmen untuk kontainerisasi, lihat Memilih layanan komputasi Azure untuk informasi tentang opsi komputasi lain yang dapat Anda gunakan untuk menghosting beban kerja Anda.

Artikel pengenalan ini menjelaskan layanan kontainer Azure yang berada dalam cakupan untuk panduan ini dan bagaimana model layanan dibandingkan dalam hal tradeoff antara konfigurasi dan solusi berpendapat, seperti pendekatan yang dikelola pelanggan versus pendekatan yang dikelola Microsoft. Setelah Anda mengidentifikasi layanan kandidat berdasarkan preferensi model layanan Anda, langkah selanjutnya adalah mengevaluasi opsi terhadap persyaratan beban kerja Anda dengan meninjau artikel tentang pertimbangan bersama untuk jaringan, keamanan, operasi, dan keandalan.

Panduan ini mempertimbangkan tradeoff yang mungkin perlu Anda buat, berdasarkan persyaratan teknis, ukuran, dan kompleksitas beban kerja Anda dan keahlian tim beban kerja Anda.

Layanan kontainer Azure dalam cakupan untuk panduan ini

Panduan ini berfokus pada subset layanan kontainer yang saat ini ditawarkan Azure. Subset ini menyediakan set fitur yang matang untuk aplikasi web dan API, jaringan, pengamatan, alat pengembang, dan operasi. Layanan kontainer ini dibandingkan:

Logo Container Apps

Azure Container Apps adalah platform aplikasi berbasis Kubernetes yang dikelola sepenuhnya yang membantu Anda menyebarkan aplikasi HTTP dan non-HTTP dari kode atau kontainer tanpa mengatur infrastruktur. Untuk informasi selengkapnya, lihat dokumentasi Azure Container Apps.

Logo AKS

Azure Kubernetes Service (AKS) adalah layanan Kubernetes terkelola untuk menjalankan aplikasi kontainer. Dengan AKS, Anda dapat memanfaatkan add-on dan ekstensi terkelola untuk kemampuan tambahan sambil mempertahankan tingkat konfigurasi terluas. Untuk informasi selengkapnya, lihat dokumentasi AKS.

Logo App Service

Aplikasi Web untuk Kontainer adalah fitur Azure App Service, layanan yang dikelola sepenuhnya untuk menghosting aplikasi web berbasis HTTP dengan pemeliharaan infrastruktur bawaan, patching keamanan, penskalaan, dan alat diagnostik. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi App Service.

Untuk daftar lengkap semua layanan kontainer Azure, lihat halaman kategori produk layanan kontainer.

Pertimbangan model layanan

Model layanan memberikan wawasan terluas tentang tingkat fleksibilitas dan kontrol yang disediakan layanan kontainer Azure apa pun, sebagai ganti dari kesederhanaan keseluruhan dan kemudahan penggunaannya.

Untuk pengenalan umum tentang terminologi dan konsep sekeliling model layanan, termasuk infrastruktur sebagai layanan (IaaS) dan platform as a service (PaaS), lihat Tanggung jawab bersama di cloud.

Membandingkan model layanan solusi kontainer Azure

AKS

Sebagai hibrida IaaS dan PaaS, AKS memprioritaskan kontrol atas kesederhanaan. Meskipun AKS menyederhanakan manajemen infrastruktur inti yang mendasar, platform berbasis VM ini masih terekspos ke aplikasi Anda dan memerlukan pagar pembatas dan proses yang sesuai, seperti patching, untuk memastikan keamanan dan kelangsungan bisnis. Infrastruktur komputasi didukung oleh sumber daya Azure tambahan yang dihosting langsung di langganan Anda, seperti load balancer Azure.

AKS juga menyediakan akses ke server API Kubernetes, yang memungkinkan Anda menyesuaikan orkestrasi kontainer dan dengan demikian menyebarkan proyek dari Cloud Native Computing Foundation (CNCF). Akibatnya, ada kurva pembelajaran yang signifikan untuk tim beban kerja yang baru di Kubernetes. Jika Anda baru menggunakan solusi kontainer, kurva pembelajaran ini mungkin jera. Solusi PaaS berikut menawarkan hambatan yang lebih rendah untuk masuk. Anda dapat pindah ke Kubernetes ketika persyaratan Anda menentukan pemindahan tersebut.

Azure Container Apps

Container Apps, penawaran PaaS, menyeimbangkan kontrol dengan kesederhanaan. Ini menawarkan opsi komputasi tanpa server dan khusus, yang mengabstraksi kebutuhan untuk menambal sistem operasi atau membangun pagar pembatas di sekitar aplikasi, relatif terhadap sistem operasi. Container Apps juga sepenuhnya mengabstraksi API orkestrasi kontainer dan menyediakan subset fungsionalitas utamanya melalui API Azure yang mungkin sudah terbiasa dengan tim Anda. Selain itu, ingress Lapisan 7, pemisahan lalu lintas, pengujian A/B, dan manajemen siklus hidup aplikasi semuanya tersedia sepenuhnya di luar kotak.

Aplikasi Web untuk Kontainer

Aplikasi Web untuk Kontainer juga merupakan penawaran PaaS, tetapi memberikan lebih banyak kesederhanaan, dan lebih sedikit kontrol, daripada Aplikasi Kontainer. Ini mengabstraksi orkestrasi kontainer tetapi masih menyediakan penskalaan yang sesuai, manajemen siklus hidup aplikasi, pemisahan lalu lintas, integrasi jaringan, dan pengamatan.

Pertimbangan model hosting

Anda dapat menggunakan sumber daya Azure, seperti kluster AKS, untuk menghosting beberapa beban kerja. Melakukannya dapat membantu Anda menyederhanakan operasi dan dengan demikian mengurangi biaya keseluruhan. Jika Anda memilih jalur ini, berikut adalah beberapa pertimbangan penting:

  • AKS umumnya digunakan untuk menghosting beberapa beban kerja atau komponen beban kerja yang berbeda. Anda dapat mengisolasi beban kerja dan komponen ini dengan menggunakan fungsionalitas asli Kubernetes, seperti namespace, kontrol akses, dan kontrol jaringan, untuk memenuhi persyaratan keamanan.

    Anda juga dapat menggunakan AKS dalam skenario beban kerja tunggal jika Anda memerlukan fungsionalitas tambahan yang disediakan API Kubernetes dan tim beban kerja Anda memiliki pengalaman yang cukup untuk mengoperasikan kluster Kubernetes. Tim dengan pengalaman Kubernetes yang lebih sedikit masih dapat berhasil mengoperasikan kluster mereka sendiri dengan memanfaatkan add-on dan fitur yang dikelola Azure, seperti peningkatan otomatis kluster, untuk mengurangi overhead operasional.

  • Aplikasi Kontainer harus digunakan untuk menghosting satu beban kerja dengan batas keamanan bersama. Container Apps memiliki batas logis tingkat atas tunggal yang disebut lingkungan Container Apps, yang juga berfungsi sebagai batas keamanan yang ditingkatkan. Tidak ada mekanisme untuk kontrol akses terperinci tambahan. Misalnya, komunikasi intra-lingkungan tidak dibatasi, dan semua aplikasi berbagi satu ruang kerja Analitik Log.

    Jika beban kerja memiliki beberapa komponen dan beberapa batas keamanan, sebarkan beberapa lingkungan Container Apps, atau pertimbangkan AKS sebagai gantinya.

  • Aplikasi Web untuk Kontainer adalah fitur App Service. App Service mengelompokkan aplikasi ke dalam batas penagihan yang disebut paket App Service. Karena Anda dapat mencakup kontrol akses berbasis peran (RBAC) di tingkat aplikasi, mungkin menggoda untuk menghosting beberapa beban kerja dalam satu paket. Namun, kami sarankan Anda menghosting satu beban kerja per rencana untuk menghindari masalah Noisy Neighbor. Semua aplikasi dalam satu paket App Service berbagi komputasi, memori, dan penyimpanan yang dialokasikan yang sama.

    Saat Anda mempertimbangkan isolasi perangkat keras, Anda perlu mengetahui bahwa paket App Service umumnya berjalan pada infrastruktur yang dibagikan dengan pelanggan Azure lainnya. Anda dapat memilih Tingkat khusus untuk VM khusus atau tingkat Terisolasi untuk VM khusus di jaringan virtual khusus.

Secara umum, semua layanan kontainer Azure dapat menghosting beberapa aplikasi yang memiliki beberapa komponen. Namun, Aplikasi Kontainer dan Aplikasi Web untuk Kontainer lebih cocok untuk komponen beban kerja tunggal atau beberapa komponen beban kerja yang sangat terkait yang berbagi siklus hidup serupa, di mana satu tim memiliki dan menjalankan aplikasi.

Jika Anda perlu menghosting komponen aplikasi atau beban kerja yang berbeda dan berpotensi tidak terkait pada satu host, pertimbangkan AKS.

Tradeoff antara kontrol dan kemudahan penggunaan

AKS menyediakan konfigurasi terbanyak, tetapi konfigurasi ini dikenakan biaya peningkatan overhead operasional, dibandingkan dengan layanan lain. Meskipun Aplikasi Kontainer dan Aplikasi Web untuk Kontainer adalah layanan PaaS yang memiliki tingkat fitur yang dikelola Microsoft yang serupa, Aplikasi Web untuk Kontainer menekankan kesederhanaan untuk memenuhi audiens targetnya: pelanggan Azure PaaS yang ada, yang menemukan antarmuka yang akrab.

Aturan praktis

Umumnya, layanan yang menawarkan lebih banyak kesederhanaan cenderung sesuai dengan pelanggan yang lebih fokus pada pengembangan fitur dan lebih sedikit pada infrastruktur. Layanan yang menawarkan lebih banyak kontrol cenderung sesuai dengan pelanggan yang membutuhkan lebih banyak konfigurasi dan memiliki keterampilan, sumber daya, dan pembenaran bisnis yang diperlukan untuk mengelola infrastruktur mereka sendiri.

Pertimbangan bersama di semua beban kerja

Meskipun tim beban kerja mungkin lebih memilih model layanan tertentu, model tersebut mungkin tidak memenuhi persyaratan organisasi secara keseluruhan. Misalnya, pengembang mungkin lebih suka overhead operasional yang lebih sedikit, tetapi tim keamanan mungkin mempertimbangkan jenis overhead ini yang diperlukan untuk memenuhi persyaratan kepatuhan. Tim perlu berkolaborasi untuk melakukan tradeoff yang sesuai.

Ketahuilah bahwa pertimbangan bersama bersifat luas. Hanya subset yang mungkin relevan untuk Anda, tergantung tidak hanya pada jenis beban kerja tetapi juga pada peran Anda dalam organisasi.

Tabel berikut ini memberikan gambaran umum pertimbangan tingkat tinggi, termasuk perbandingan fitur layanan. Tinjau pertimbangan di setiap kategori dan bandingkan dengan persyaratan beban kerja Anda.

Kategori Gambaran Umum
Pertimbangan jaringan Jaringan di layanan kontainer Azure bervariasi tergantung pada preferensi Anda untuk kesederhanaan versus konfigurasi. AKS sangat dapat dikonfigurasi, memberikan kontrol yang luas atas aliran jaringan, tetapi membutuhkan upaya yang lebih operasional. Container Apps menawarkan fitur jaringan yang dikelola Azure. Ini adalah jalan tengah antara AKS dan Aplikasi Web untuk Kontainer, yang disesuaikan dengan pelanggan yang terbiasa dengan App Service.

Sangat penting, keputusan desain jaringan dapat memiliki konsekuensi jangka panjang karena tantangan mengubahnya tanpa menyebarkan kembali beban kerja. Beberapa faktor, seperti perencanaan alamat IP, tanggung jawab penyeimbangan beban, metode penemuan layanan, dan kemampuan jaringan privat, berbeda di seluruh layanan ini. Anda harus meninjau dengan cermat bagaimana layanan memenuhi persyaratan jaringan tertentu.
Pertimbangan keamanan Container Apps, AKS, dan Web App for Containers semuanya menyediakan integrasi dengan penawaran keamanan Azure utama seperti Azure Key Vault dan identitas terkelola. AKS menawarkan fitur tambahan seperti perlindungan ancaman runtime dan kebijakan jaringan. Meskipun mungkin tampak bahwa layanan PaaS seperti Container Apps menawarkan lebih sedikit fitur keamanan, itu sebagian karena lebih banyak komponen infrastruktur yang mendasar dikelola oleh Azure dan tidak terekspos ke pelanggan, yang mengurangi risiko.
Pertimbangan operasional Meskipun AKS menawarkan penyesuaian terbanyak, AKS menuntut input operasional yang lebih besar. Sebaliknya, solusi PaaS seperti Aplikasi Kontainer dan Aplikasi Web untuk Kontainer memungkinkan Azure menangani tugas seperti pembaruan OS. Skalabilitas dan fleksibilitas SKU perangkat keras sangat penting. AKS menyediakan opsi perangkat keras yang fleksibel, sedangkan Aplikasi Kontainer dan Aplikasi Web untuk Kontainer menyediakan konfigurasi yang ditetapkan. Skalabilitas aplikasi di AKS adalah tanggung jawab pelanggan sepenuhnya. Aplikasi Kontainer dan Aplikasi Web untuk Kontainer menawarkan pendekatan yang lebih efisien.
Pertimbangan keandalan Konfigurasi pemeriksaan kesehatan Aplikasi Web untuk Kontainer dan Aplikasi Kontainer lebih disederhanakan daripada konfigurasi AKS, mengingat mereka menggunakan API Azure Resource Manager yang sudah dikenal. AKS memerlukan penggunaan API Kubernetes. Ini juga mengharuskan Anda untuk mengambil tanggung jawab tambahan untuk mengelola skalabilitas dan ketersediaan kumpulan simpul Kubernetes untuk menjadwalkan instans aplikasi dengan benar. Persyaratan ini menghasilkan overhead tambahan untuk AKS.

Selain itu, SLA untuk Aplikasi Kontainer dan Aplikasi Web untuk Kontainer lebih mudah daripada AKS, di mana sarana kontrol dan kumpulan simpul masing-masing memiliki SLA mereka sendiri dan perlu diperparah sesuai. Semua layanan menawarkan redundansi zona di pusat data yang menawarkannya.

Setelah meninjau pertimbangan sebelumnya, Anda mungkin masih belum menemukan kecocokan yang sempurna. Itu sangat normal.

Mengevaluasi tradeoff

Memilih layanan cloud bukanlah latihan yang mudah. Mengingat kompleksitas komputasi cloud, kolaborasi antara banyak tim, dan batasan sumber daya yang melibatkan orang, anggaran, dan waktu, setiap solusi memiliki tradeoff.

Ketahuilah bahwa, untuk beban kerja tertentu, beberapa persyaratan mungkin lebih penting daripada yang lain. Misalnya, tim aplikasi mungkin lebih suka solusi PaaS seperti Aplikasi Kontainer tetapi memilih AKS karena tim keamanan mereka memerlukan kontrol jaringan tolak secara default antara komponen beban kerja yang dikolokasi, yang merupakan fitur khusus AKS yang menggunakan kebijakan jaringan Kube.

Terakhir, perhatikan bahwa pertimbangan bersama sebelumnya mencakup persyaratan yang paling umum tetapi tidak komprehensif. Tim beban kerja bertanggung jawab untuk menyelidiki setiap persyaratan terhadap kumpulan fitur layanan pilihan sebelum mengonfirmasi keputusan.

Kesimpulan

Panduan ini menjelaskan pertimbangan paling umum yang Anda hadapi saat memilih layanan kontainer Azure. Ini dirancang untuk memandu tim beban kerja dalam membuat keputusan berdasarkan informasi. Proses dimulai dengan memilih model layanan cloud, yang melibatkan penentuan tingkat kontrol yang diinginkan. Kontrol datang dengan mengorbankan kesederhanaan. Dengan kata lain, ini adalah proses menemukan keseimbangan yang tepat antara infrastruktur yang dikelola sendiri dan yang dikelola oleh Microsoft.

Banyak tim beban kerja dapat memilih layanan kontainer Azure hanya berdasarkan model layanan pilihan: PaaS versus IaaS. Tim lain perlu menyelidiki lebih lanjut untuk menentukan bagaimana fitur khusus layanan memenuhi beban kerja atau persyaratan organisasi.

Semua tim beban kerja harus menggunakan panduan ini selain menggabungkan uji tanggap untuk menghindari keputusan yang sulit dibalik. Namun, ketahuilah, bahwa keputusan tidak dikonfirmasi sampai pengembang mencoba layanan dan memutuskan berdasarkan pengalaman daripada teori.

Kontributor

Artikel ini dikelola oleh Microsoft. Ini awalnya ditulis oleh kontributor berikut.

Penulis utama:

Kontributor lain:

Langkah selanjutnya

Pelajari selengkapnya tentang pertimbangan arsitektur bersama untuk layanan yang disebutkan dalam artikel ini.