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.
Istilah komputasi mengacu pada model penginangan untuk sumber daya komputasi yang menjalankan aplikasi Anda. Artikel ini menyediakan panduan preskriptif untuk membantu Anda memilih platform komputasi untuk layanan mikro. Pilihan platform komputasi layanan mikro Anda mungkin bergantung pada persyaratan yang lebih bernuansa.
Untuk arsitektur layanan mikro, pendekatan berikut populer:
- Sebarkan layanan mikro pada platform komputasi khusus, biasanya dengan menggunakan orkestrator layanan mikro.
- Sebarkan layanan mikro pada platform tanpa server.
Meskipun opsi ini bukan satu-satunya, keduanya terbukti pendekatan untuk membangun layanan mikro. Sebuah aplikasi mungkin mencakup kedua pendekatan.
Unduh file Visio arsitektur ini.
Menggunakan platform tanpa server
Anda dapat menggunakan platform tanpa server untuk menyebarkan layanan mikro di Azure Container Apps atau Azure Functions. Aplikasi Kontainer dan Fungsi menyediakan opsi komputasi tanpa server yang ditagih berdasarkan volume permintaan daripada konsumsi komputasi. Kedua platform juga memberi Anda opsi untuk menghosting beban kerja pada kapasitas khusus.
Menyebarkan layanan mikro berbasis kode
Jika Anda ingin menyebarkan layanan mikro Anda sebagai kode alih-alih menampungnya, Anda mungkin ingin menggunakan Azure Functions. Untuk informasi selengkapnya, lihat daftar bahasa pemrograman dan pembuatan skrip yang didukung oleh Functions. Untuk layanan mikro yang Anda kembangkan dalam bahasa lain, Anda mungkin ingin menerapkan handler kustom di Functions atau mempertimbangkan untuk membuat kontainer aplikasi.
Menggunakan model GPU
Jika layanan mikro Anda memerlukan kapasitas GPU, misalnya, untuk menjalankan tugas pembelajaran mesin, pertimbangkan untuk memilih Container Apps atau Azure Kubernetes Service (AKS) untuk platform Anda. AKS dapat menggunakan model GPU apa pun di Azure, dan Container Apps menawarkan subset model GPU untuk dipilih.
Menggunakan orkestrator layanan
Orkestrator menangani tugas yang berkaitan dengan penyebaran dan pengelolaan serangkaian layanan. Tugas-tugas ini termasuk menempatkan layanan di node, memantau kesehatan layanan, memulai ulang layanan yang tidak sehat, menyeimbangkan lalu lintas jaringan di seluruh instans layanan, penemuan layanan, menskalakan jumlah instans layanan, dan menerapkan pembaruan konfigurasi. Orkestrator populer termasuk Kubernetes, Azure Service Fabric, DC/OS, dan Docker Swarm.
Pada platform Azure, pertimbangkan opsi berikut:
Azure Kubernetes Service (AKS) adalah layanan Kubernetes terkelola. AKS menyediakan Kubernetes dan mengekspos titik akhir API Kubernetes, menghosting dan mengelola sarana kontrol Kubernetes, dan melakukan peningkatan otomatis, patching otomatis, autoscaling, dan tugas manajemen lainnya. AKS menyediakan akses langsung ke API Kubernetes.
Container Apps adalah layanan terkelola yang dibangun di Kubernetes yang mengabstraksi kompleksitas orkestrasi kontainer dan tugas manajemen lainnya. Container Apps menyederhanakan penyebaran dan manajemen aplikasi kontainer dan layanan mikro di lingkungan tanpa server sambil menyediakan fitur Kubernetes. Container Apps sangat ideal untuk skenario di mana akses langsung ke API Kubernetes tidak diperlukan.
Service Fabric adalah platform sistem terdistribusi untuk mengemas, meyebarkan, dan mengelola layanan mikro. Anda dapat menyebarkan layanan mikro ke Service Fabric sebagai kontainer, sebagai biner executable, atau sebagai Reliable Services. Dengan menggunakan model pemrograman Reliable Services, layanan dapat langsung menggunakan API pemrograman Service Fabric untuk mengkueri sistem, melaporkan kesehatan, menerima pemberitahuan tentang perubahan konfigurasi dan kode, dan menemukan layanan lain.
Gunakan Azure Red Hat OpenShift untuk menyebarkan kluster OpenShift yang dikelola sepenuhnya. Azure Red Hat OpenShift memperluasKubernetes. Azure Red Hat OpenShift direkayasa bersama, dioperasikan, dan didukung oleh Red Hat dan Microsoft.
Opsi lain, seperti Docker Enterprise Edition, dapat berjalan di lingkungan komputasi cloud di Azure. Anda dapat menemukan template penyebaran di Azure Marketplace.
Menggunakan API Kubernetes
Akses ke API Kubernetes sering menjadi faktor penentu ketika Anda memilih opsi komputasi. AKS menyediakan akses langsung ke API Kubernetes, tetapi Aplikasi Kontainer tidak. Container Apps menyembunyikan kompleksitas Kubernetes dan menyederhanakan pengalaman penyebaran kontainer. Jika Anda merancang penyebaran layanan mikro untuk berinteraksi langsung dengan API Kubernetes, AKS mungkin merupakan pilihan yang tepat.
Faktor keputusan lainnya
Mungkin ada faktor lain yang memengaruhi pemilihan platform komputasi layanan mikro Anda. Faktor-faktor ini termasuk opsi jala layanan, skalabilitas platform, dan set keterampilan yang mungkin Anda gunakan dalam organisasi.
Pertimbangan
Pertimbangan ini mengimplementasikan pilar Azure Well-Architected Framework, yang merupakan serangkaian tenet panduan yang dapat digunakan untuk meningkatkan kualitas beban kerja. Untuk informasi selengkapnya, lihat Microsoft Azure Well-Architected Framework.
Keandalan
Keandalan memastikan aplikasi Anda dapat mencapai komitmen yang Anda buat kepada pelanggan Anda. Untuk informasi selengkapnya, lihat Daftar periksa tinjauan desain untuk Keandalan.
Jika Anda memilih Azure Functions sebagai platform komputasi layanan mikro Anda, pertimbangkan untuk menyebarkan paket Functions Premium atau paket Azure App Service dalam konfigurasi zona redundan. Untuk informasi selengkapnya, lihat Keandalan dalam Fungsi.
Jika Anda memilih AKS sebagai platform komputasi layanan mikro, Anda dapat meningkatkan keandalan layanan mikro dengan menyebarkan kluster AKS yang menggunakan zona ketersediaan, dengan menggunakan tingkat Standar atau Premium untuk kluster Azure Kubernetes, dan dengan meningkatkan jumlah minimum pod dan simpul. Untuk informasi selengkapnya, lihat Praktik terbaik penyebaran dan keandalan kluster untuk AKS.
Jika Anda memilih Container Apps sebagai platform komputasi layanan mikro, Anda dapat meningkatkan keandalan dengan menggunakan zona ketersediaan. Untuk informasi selengkapnya, lihat Keandalan dalam Aplikasi Kontainer.
Keamanan
Keamanan memberikan jaminan terhadap serangan yang disengaja dan penyalahgunaan data dan sistem Anda yang berharga. Untuk informasi selengkapnya, lihat Daftar periksa tinjauan desain untuk Keamanan.
Jika Anda memilih Azure Functions sebagai platform komputasi Anda untuk menyebarkan layanan mikro, prinsip-prinsip mengamankan Azure Functions juga berlaku untuk layanan mikro.
Jika Anda memilih AKS sebagai platform komputasi untuk menyebarkan layanan mikro, arsitektur garis besar keamanan AKS memberikan panduan untuk mengamankan platform komputasi. Untuk praktik terbaik tentang keamanan layanan mikro di AKS, lihat Arsitektur layanan mikro AKS tingkat lanjut.
Jika Anda memilih Aplikasi Kontainer sebagai platform komputasi untuk menyebarkan layanan mikro, lihat garis besar keamanan untuk Aplikasi Kontainer untuk praktik terbaik keamanan.
Pengoptimalan Biaya
Pengoptimalan Biaya adalah tentang melihat cara untuk mengurangi pengeluaran yang tidak perlu dan meningkatkan efisiensi operasional. Untuk informasi selengkapnya, lihat Daftar periksa tinjauan desain untuk optimalisasi biaya.
Saat Anda menggunakan orkestrator, Anda membayar komputer virtual yang berjalan di kluster. Saat Anda menggunakan aplikasi tanpa server, Anda hanya membayar untuk sumber daya komputasi aktual yang Anda konsumsi. Dalam kedua kasus, Anda perlu memperhitungkan biaya layanan tambahan apa pun, seperti penyimpanan, database, dan layanan olahpesan.
Azure Functions, Container Apps, dan AKS menyediakan opsi autoscaling. Container Apps and Functions menyediakan platform tanpa server di mana biaya didasarkan pada konsumsi dan bisa nol. AKS hanya menyediakan opsi komputasi khusus.
Jika Anda memilih AKS sebagai platform komputasi untuk menyebarkan layanan mikro, Anda perlu memahami praktik terbaik pengoptimalan biaya. Untuk informasi selengkapnya, lihat Mengoptimalkan biaya di Azure Kubernetes Service.
Jika Anda memilih Aplikasi Kontainer sebagai platform komputasi layanan mikro, Anda perlu memahami berbagai model penagihan dan memutuskan model penyebaran untuk layanan mikro Anda berdasarkan persyaratan beban kerja Anda. Untuk informasi selengkapnya, lihat Penagihan di Aplikasi Kontainer.
Jika Anda memilih Azure Functions sebagai platform komputasi layanan mikro, Anda perlu memahami berbagai model penagihan dan memutuskan rencana Functions berdasarkan persyaratan beban kerja Anda. Untuk informasi selengkapnya, lihat Memperkirakan biaya berbasis konsumsi dan detail paket Azure Functions.
Keunggulan Kinerja Operasional
Keunggulan Operasional mencakup proses operasi yang menyebarkan aplikasi dan membuatnya tetap berjalan dalam produksi. Untuk informasi selengkapnya, lihat Checklist tinjauan desain untuk Keunggulan Operasional.
Anda dapat menyebarkan semua pilihan komputasi layanan mikro yang dijelaskan artikel ini secara otomatis dengan menggunakan Terraform, Bicep, dan bahasa skrip lainnya. Anda dapat menggunakan Application Insights, Azure Monitor, dan solusi pemantauan lainnya untuk memantau platform komputasi dan layanan mikro ini.
Pertimbangkan faktor-faktor berikut saat Anda memilih antara pendekatan orkestrator dan pendekatan tanpa server:
Fleksibilitas dan kontrol: Orkestrator memberi Anda kontrol atas konfigurasi dan pengelolaan layanan dan kluster Anda. Trade-off lebih kompleksitas. Dengan arsitektur serverless, Anda melepaskan beberapa tingkat kontrol karena detail ini diabstraksikan.
Portabilitas: Semua orkestrator yang tercantum dalam artikel ini, termasuk Kubernetes, DC/OS, Docker Swarm, dan Service Fabric, dapat berjalan secara lokal atau di beberapa cloud publik.
Integrasi aplikasi: Mungkin sulit untuk membangun aplikasi kompleks yang menggunakan arsitektur tanpa server karena Anda perlu mengoordinasikan, menyebarkan, dan mengelola banyak fungsi kecil dan independen. Salah satu opsi di Azure adalah menggunakan Azure Logic Apps untuk mengoordinasikan sekumpulan fungsi Azure. Untuk contoh pendekatan ini, lihat Membuat fungsi yang terintegrasi dengan Logic Apps.