Memutuskan apakah komputasi tanpa server tepat untuk kebutuhan bisnis Anda
Untuk membantu memutuskan apakah komputasi tanpa server tepat untuk Anda, mari kita pelajari terlebih dahulu tentang apa itu tanpa server.
Apa itu komputasi tanpa server?
Komputasi tanpa server bisa dianggap sebagai fungsi layanan (FaaS), atau layanan mikro yang dihosting di platform cloud. Logika bisnis Anda berjalan sebagai fungsi dan Anda tidak perlu menyediakan atau menskalakan infrastruktur secara manual. Penyedia cloud mengelola infrastruktur. Aplikasi Anda diskalakan atau diturunkan secara otomatis tergantung pada muatan. Azure memiliki beberapa cara untuk membangun arsitektur semacam ini. Dua pendekatan yang paling umum adalah Azure Logic Apps dan Azure Functions, yang merupakan fokus modul ini.
Apa itu Azure Functions?
Azure Functions adalah platform aplikasi tanpa server. Hal ini memungkinkan pengembang untuk menghosting logika bisnis yang dapat dijalankan tanpa menyediakan infrastruktur. Azure Functions menyediakan skalabilitas intrinsik dan Anda hanya dikenakan biaya untuk sumber daya yang digunakan. Anda dapat menulis kode fungsi dalam bahasa pilihan Anda, termasuk C#, Java, JavaScript, Python, dan PowerShell. Dukungan untuk manajer paket seperti NuGet dan npm juga disertakan, sehingga Anda dapat menggunakan pustaka populer dalam logika bisnis Anda.
Manfaat solusi komputasi tanpa server
Komputasi tanpa server adalah opsi yang bagus untuk menghosting kode logika bisnis di cloud. Dengan penawaran tanpa server seperti Azure Functions, Anda dapat menulis logika bisnis Anda dalam bahasa pilihan Anda. Anda mendapatkan penskalakan otomatis, Anda tidak memiliki server untuk dikelola, dan Anda dikenakan biaya berdasarkan apa yang digunakan—bukan pada waktu yang dipesan. Berikut adalah beberapa karakteristik lain dari solusi tanpa server yang perlu Anda pertimbangkan.
Menghindari alokasi infrastruktur yang berlebihan
Misalkan Anda telah menyediakan server komputer virtual (VM) dan mengonfigurasinya dengan sumber daya yang cukup untuk menangani waktu muat puncak Anda. Ketika beban ringan, Anda berpotensi membayar infrastruktur yang tidak Anda gunakan. Komputasi tanpa server membantu menyelesaikan masalah alokasi dengan meningkatkan atau menurunkan skala secara otomatis, dan Anda hanya ditagih ketika fungsi Anda sedang memproses pekerjaan.
Logika tanpa kewarganegaraan
Fungsi tanpa kewarganegaraan adalah kandidat besar untuk komputasi tanpa server; instans fungsi dibuat dan dihancurkan sesuai permintaan. Jika keadaan diperlukan, status dapat disimpan dalam layanan penyimpanan terkait.
Peristiwa diterapkan
Fungsi digerakkan oleh peristiwa. Mereka hanya berjalan sebagai respons terhadap peristiwa (disebut "pemicu"), seperti menerima permintaan HTTP, atau pesan yang ditambahkan ke antrean. Anda mengonfigurasi pemicu sebagai bagian dari definisi fungsi. Pendekatan ini menyederhanakan kode Anda dengan memungkinkan Anda mendeklarasikan dari mana data berasal (trigger/input binding) dan ke mana ia pergi (output binding). Anda tidak perlu menulis kode untuk mengawasi antrian, gumpalan, hub, dan sebagainya. Anda dapat fokus murni pada logika bisnis.
Fungsi dapat digunakan di lingkungan komputasi tradisional
Fungsi adalah komponen utama komputasi tanpa server, tetapi juga merupakan platform komputasi umum untuk mengeksekusi semua jenis kode. Jika kebutuhan aplikasi berubah, Anda dapat mengambil proyek dan menyebarkannya di lingkungan tanpa server. Itu memberi Anda fleksibilitas untuk mengelola penskalaan, berjalan di jaringan virtual, dan bahkan mengisolasi fungsi Anda sepenuhnya.
Kelemahan solusi komputasi tanpa server
Komputasi tanpa server, seperti yang disediakan oleh Azure Functions dalam paket Konsumsi, tidak selalu merupakan solusi yang tepat untuk menghosting logika bisnis Anda. Berikut adalah beberapa karakteristik fungsi yang dapat memengaruhi keputusan Anda untuk meng-host layanan Anda dalam komputasi tanpa server.
Waktu eksekusi
Secara default, fungsi memiliki waktu habis dalam 5 menit. Waktu habis ini dapat dikonfigurasi hingga maksimum 10 menit. Jika fungsi Anda memerlukan lebih dari 10 menit untuk dieksekusi, Anda dapat menghostingnya di VM. Selain itu, jika layanan Anda dimulai melalui permintaan HTTP dan Anda mengharapkan nilai itu sebagai respons HTTP, batas waktu dibatasi lebih lanjut hingga 2,5 menit. Namun, ada juga opsi yang disebut Durable Functions yang memungkinkan Anda mengatur eksekusi beberapa fungsi tanpa batas waktu.
Frekuensi eksekusi
Karakteristik lain adalah frekuensi eksekusi. Jika Anda mengharapkan klien untuk menjalankan fungsi Anda terus menerus, akan bijaksana untuk memperkirakan penggunaan dan menghitung biaya penggunaan fungsi yang sesuai. Mungkin lebih murah untuk meng-host layanan Anda di VM.
Saat fungsi Anda diskalakan, hanya satu instans aplikasi fungsi yang dapat dibuat setiap 10 detik, hingga 200 total instans. Perlu diingat, setiap instans dapat melayani beberapa eksekusi bersamaan, jadi tidak ada batasan yang ditetapkan tentang berapa banyak lalu lintas yang dapat ditangani oleh satu instans. Berbagai jenis pemicu memiliki persyaratan penskalaan yang berbeda, jadi teliti pilihan pemicu Anda dan selidiki batasannya.