Bagikan melalui


Pilih layanan kontainer Azure

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

Nota

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

Ikhtisar

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

Nota

Jika Anda tidak berkomitmen untuk kontainerisasi, pilih opsi komputasi yang berbeda untuk menghosting beban kerja Anda.

Artikel pengantar ini menguraikan layanan kontainer Azure yang tercakup dalam panduan ini dan membandingkan model layanan mereka berdasarkan konfigurasi dan solusi yang telah ditentukan sebelumnya, seperti pendekatan yang dikelola pelanggan versus pendekatan yang dikelola Microsoft. Setelah Anda mengidentifikasi layanan kandidat berdasarkan preferensi model layanan Anda, langkah selanjutnya adalah menilai opsi terhadap persyaratan beban kerja Anda dengan meninjau artikel tentang pertimbangan bersama untuk jaringan, keamanan, operasi, dan keandalan.

Panduan ini membantu Anda mengevaluasi trade-off berdasarkan persyaratan teknis, ukuran, dan kompleksitas beban kerja Anda. Ini juga mempertimbangkan keahlian tim Anda untuk memastikan pengambilan keputusan berdasarkan informasi.

Layanan kontainer Azure dalam cakupan untuk panduan ini

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

Logo Azure Container Apps

Azure Container Apps adalah platform terkelola penuh yang memungkinkan Anda menjalankan aplikasi dalam kontainer tanpa khawatir tentang orkestrasi atau infrastruktur. Untuk informasi lebih lanjut, lihat Dokumentasi 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. App Service adalah layanan terkelola penuh untuk menghosting aplikasi web berbasis HTTP yang memiliki pemeliharaan infrastruktur bawaan, patching keamanan, penskalaan, dan alat diagnostik. Untuk informasi selengkapnya, lihat dokumentasi App Service .

Untuk daftar lengkap layanan kontainer Azure, lihat Kontainer di Azure.

Pertimbangan model layanan

Model layanan membantu Anda memahami berapa banyak fleksibilitas dan kontrol yang disediakan setiap layanan kontainer Azure. Layanan kompleks memberikan kontrol yang lebih baik, sementara layanan yang lebih sederhana membuat manajemen lebih mudah tetapi membatasi kustomisasi.

Untuk informasi selengkapnya tentang terminologi dan konsep 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

Azure Kubernetes Service (AKS)

AKS adalah campuran iaaS dan PaaS yang lebih berfokus pada kontrol daripada kesederhanaan. Ini menggunakan Kubernetes, yang merupakan sistem standar untuk mengatur kontainer. AKS menyederhanakan manajemen infrastruktur inti yang mendasar. Namun, platform berbasis komputer virtual (VM) ini 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, registri kontainer, atau gateway aplikasi.

AKS menyediakan akses ke server API Kubernetes, yang memungkinkan Anda menyesuaikan orkestrasi kontainer dan menyebarkan aplikasi tambahan dari Cloud Native Computing Foundation. Akibatnya, tim beban kerja yang baru di Kubernetes menghadapi kurva pembelajaran yang signifikan. Jika Anda tidak terbiasa dengan solusi kontainer, Anda harus mempertimbangkan kurva pembelajaran ini. Solusi PaaS berikut memberikan hambatan yang lebih rendah untuk masuk. Anda dapat beralih ke Kubernetes ketika persyaratan Anda menuntutnya.

AKS Otomatis

AKS Otomatis memudahkan untuk mengadopsi Kubernetes dengan mengotomatiskan tugas manajemen kluster yang kompleks. Otomatisasi ini mengurangi kebutuhan akan keahlian Kubernetes tingkat lanjut. Ini memberikan pengalaman yang lebih efisien seperti PaaS sambil mempertahankan fleksibilitas dan ekstensibilitas Kubernetes. Azure mengelola penyiapan kluster, provisi node, penskalakan, patching keamanan, dan menerapkan konfigurasi praktik terbaik secara default. Otomatisasi ini mengurangi upaya operasional tetapi membatasi opsi topologi yang tersedia.

Nota

Panduan ini membedakan antara AKS Standard dan AKS Automatic jika berlaku. Jika tidak, Anda dapat berasumsi bahwa fungsionalitas yang dijelaskan konsisten di kedua penawaran.

Container Apps

Container Apps adalah lapisan abstraksi di atas Kubernetes yang memungkinkan aplikasi Anda untuk berjalan dan menskalakan tanpa memerlukan manajemen langsung dari infrastruktur yang mendasarinya. Container Apps menyediakan opsi komputasi tanpa server dan khusus. Opsi ini memberi Anda kontrol penuh atas jenis dan jumlah sumber daya komputasi yang tersedia untuk aplikasi Anda. Container Apps mengabstraksi API orkestrasi kontainer sambil tetap menyediakan akses bawaan ke fitur utama seperti ingress Layer 7, pemisahan lalu lintas, pengujian A/B, dan manajemen siklus hidup aplikasi.

Aplikasi Web untuk Kontainer

Aplikasi Web untuk Kontainer adalah penawaran PaaS yang memprioritaskan kesederhanaan atas kontrol dibandingkan dengan Aplikasi Kontainer. Ini mengabstraksi orkestrasi kontainer sambil tetap mendukung penskalaan, 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. Pendekatan ini dapat membantu Anda menyederhanakan operasi, yang mengurangi biaya keseluruhan. Jika Anda memilih opsi ini, pertimbangkan fitur berikut:

  • 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 layanan, kontrol akses, dan kontrol jaringan, untuk memenuhi persyaratan keamanan.

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

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

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

  • Web App for Containers adalah fitur App Service. App Service mengelompokkan aplikasi ke dalam batas komputasi logis yang disebut paket App Service. Karena Anda dapat mencakup kontrol akses berbasis peran di tingkat aplikasi, Anda mungkin ingin menghosting beberapa beban kerja dalam satu paket. Namun, yang terbaik adalah menghosting satu beban kerja untuk setiap rencana untuk menghindari masalah tetangga yang bising. Semua aplikasi dalam satu paket App Service berbagi komputasi, memori, dan penyimpanan yang dialokasikan yang sama.

    Saat Anda mempertimbangkan isolasi perangkat keras, perlu diingat 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 berfungsi paling baik untuk satu komponen beban kerja atau beberapa komponen beban kerja terkait erat yang berbagi siklus hidup serupa dan 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.

Keseimbangan antara kontrol dan kemudahan penggunaan

AKS menyediakan konfigurasi terbanyak, tetapi konfigurasi tersebut membutuhkan upaya yang lebih operasional dibandingkan dengan layanan lain. Aplikasi Kontainer dan Aplikasi Web untuk Kontainer adalah layanan PaaS yang memiliki tingkat fitur yang dikelola Microsoft yang serupa. Aplikasi Web untuk Kontainer berfokus pada kesederhanaan untuk melayani audiens targetnya, yang merupakan pelanggan App Service yang sudah ada yang terbiasa dengan antarmuka.

Praktik terbaik

Layanan yang memberikan lebih banyak kesederhanaan biasanya sesuai dengan pelanggan yang fokus pada pengembangan fitur alih-alih manajemen infrastruktur. Layanan yang memberikan kontrol lebih biasanya sesuai dengan pelanggan yang membutuhkan konfigurasi dan memiliki keterampilan, sumber daya, dan pembenaran bisnis untuk mengelola infrastruktur mereka sendiri.

Pertimbangan umum untuk semua beban kerja

Tim beban kerja mungkin lebih suka model layanan tertentu, tetapi model tersebut mungkin tidak memenuhi persyaratan keseluruhan organisasi. Misalnya, pengembang mungkin menginginkan lebih sedikit upaya operasional, tetapi tim keamanan mungkin mempertimbangkan overhead ini yang diperlukan untuk kepatuhan. Tim perlu berkolaborasi untuk membuat kompromi yang tepat.

Pertimbangan bersama mencakup berbagai faktor. Hanya subset pertimbangan yang mungkin berlaku untuk Anda berdasarkan jenis beban kerja. Peran Anda dalam organisasi juga memengaruhi pertimbangan mana yang relevan.

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 Ikhtisar
pertimbangan Jaringan Jaringan di layanan kontainer Azure tergantung pada preferensi Anda untuk kesederhanaan atau konfigurasi. AKS memberikan kontrol yang luas atas aliran jaringan tetapi membutuhkan lebih banyak upaya operasional. Container Apps memiliki fitur jaringan yang dikelola Azure dan berada di antara AKS dan Aplikasi Web untuk Kontainer, yang melayani pelanggan yang sudah menggunakan App Service.

Keputusan desain jaringan memiliki konsekuensi jangka panjang karena mengubahnya sering mengharuskan Anda untuk menyebarkan ulang beban kerja. Beberapa faktor, seperti perencanaan alamat IP, penyeimbangan beban, penemuan layanan, dan jaringan privat, bervariasi di seluruh layanan ini. Anda harus meninjau dengan cermat bagaimana setiap layanan memenuhi persyaratan jaringan tertentu.
Pertimbangan Keamanan Aplikasi Kontainer, AKS, dan Aplikasi Web untuk Kontainer terintegrasi dengan penawaran keamanan Azure utama seperti Azure Key Vault dan identitas terkelola. AKS menyediakan fitur tambahan seperti perlindungan ancaman runtime dan kebijakan jaringan. Layanan PaaS seperti Container Apps mungkin tampaknya memiliki lebih sedikit fitur keamanan, tetapi itu sebagian karena Azure mengelola lebih banyak komponen infrastruktur yang mendasar. Karena komponen-komponen ini tidak terekspos ke pelanggan, risikonya lebih rendah.
Pertimbangan operasional AKS menyediakan penyesuaian terbanyak, tetapi membutuhkan input yang lebih operasional.

Solusi PaaS seperti Aplikasi Kontainer dan Aplikasi Web untuk Kontainer memungkinkan Azure menangani tugas seperti pembaruan OS. Skalabilitas dan fleksibilitas SKU perangkat keras penting. AKS menyediakan opsi perangkat keras yang fleksibel, tetapi Aplikasi Kontainer dan Aplikasi Web untuk Kontainer memiliki lebih sedikit pilihan. Di AKS, skalabilitas aplikasi adalah tanggung jawab Anda, sehingga Anda dapat menerapkan solusi yang kompatibel dengan Kubernetes. AKS Otomatis, Aplikasi Kontainer, dan Aplikasi Web untuk Kontainer berfokus pada pendekatan yang lebih sederhana.
Pertimbangan keandalan Aplikasi Web untuk Kontainer dan Aplikasi Kontainer memiliki konfigurasi pemeriksaan kesehatan terbatas dibandingkan dengan AKS. Namun, mereka lebih mudah disiapkan karena menggunakan AZURE Resource Manager API yang sudah dikenal.

AKS memerlukan API Kubernetes dan juga mengharuskan Anda untuk mengelola skalabilitas dan ketersediaan kumpulan simpul Kubernetes untuk menjadwalkan instans aplikasi dengan benar. Persyaratan ini meningkatkan upaya operasional untuk AKS. Perjanjian tingkat layanan (SLA) untuk Aplikasi Kontainer dan Aplikasi Web untuk Kontainer lebih mudah dihitung daripada SLA AKS. Plane kontrol AKS dan kolam simpul masing-masing memiliki SLA sendiri, yang harus dikombinasikan. Semua layanan menyediakan redundansi zona di pusat data yang mendukungnya.

Setelah Anda meninjau pertimbangan sebelumnya, Anda mungkin masih tidak menemukan kecocokan yang sempurna, dan ini biasa terjadi.

Mengevaluasi kompromi

Komputasi cloud itu kompleks. Ini melibatkan kolaborasi di banyak tim dan harus memperhitungkan batasan dalam orang, anggaran, dan waktu. Faktor-faktor ini membuat pemilihan layanan cloud sulit dan penuh dengan trade-off.

Untuk beban kerja apa pun, beberapa persyaratan mungkin lebih penting daripada yang lain. Misalnya, tim aplikasi mungkin lebih memilih solusi PaaS seperti Container Apps tetapi memilih AKS karena tim keamanan mereka memerlukan kontrol jaringan yang menolak secara default di antara komponen beban kerja yang terkolokasi. Fitur khusus AKS ini menggunakan kebijakan jaringan Kubernetes.

Pertimbangan bersama sebelumnya mencakup persyaratan yang paling umum tetapi tidak komprehensif. Anda harus mengevaluasi setiap persyaratan terhadap set fitur layanan pilihan Anda sebelum membuat keputusan.

Kesimpulan

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

Banyak tim beban kerja memilih layanan kontainer Azure hanya berdasarkan apakah mereka lebih suka PaaS atau IaaS. Tim lain perlu menyelidiki lebih lanjut untuk menentukan bagaimana fitur khusus layanan memenuhi beban kerja atau persyaratan organisasi.

Gunakan panduan ini untuk mengevaluasi opsi Anda dengan hati-hati dan menghindari pengambilan keputusan yang sulit dibalik. Namun, tidak ada keputusan yang final sampai pengembang mencoba layanan dan mengevaluasinya berdasarkan pengalaman langsung alih-alih teori.

Kontributor

Microsoft mempertahankan artikel ini. Kontributor berikut menulis artikel ini.

Penulis utama:

Kontributor lain:

Untuk melihat profil LinkedIn nonpublik, masuk ke LinkedIn.