Blogger Jateng

Kelemahan Arsitektur Tanpa Server

Arsitektur tanpa server telah menarik perhatian yang signifikan dalam beberapa tahun terakhir, terutama karena janjinya akan skalabilitas, efisiensi biaya, dan pengurangan biaya operasional. Namun, seperti solusi teknologi lainnya, serverless juga memiliki kekurangannya sendiri yang harus dipertimbangkan oleh organisasi sebelum sepenuhnya berkomitmen pada paradigma ini. Di bawah ini, kami akan membahas tantangan-tantangan utama yang terkait dengan arsitektur tanpa server.

Penguncian Vendor

Salah satu kelemahan utama dari arsitektur tanpa server adalah penguncian vendor. Mayoritas platform serverless asli, seperti AWS Lambda, Google Cloud Functions, dan Azure Functions, memiliki fitur dan API sendiri. Kemampuan ini membuatnya rumit untuk memindahkan aplikasi dari satu penyedia ke penyedia lainnya. Terlalu banyak ketergantungan pada layanan tertentu juga dapat menciptakan kekakuan dan dapat membuatnya mahal dan berlarut-larut untuk mengganti vendor atau menggunakan pendekatan multi-cloud.

Waktu Eksekusi Terbatas

Fungsi-fungsi tanpa server ini juga biasanya memiliki batasan waktu eksekusi. Misalnya, AWS Lambda memiliki batas waktu maksimum 15 menit. Ini tidak masalah untuk banyak penggunaan, meskipun dapat menjadi batasan besar untuk tugas-tugas yang bertele-tele seperti pemrosesan data atau perhitungan yang rumit. Pengembang mungkin harus merancang ulang solusi atau mengikat lebih banyak layanan untuk menyelesaikan tugas-tugas semacam ini, sehingga menimbulkan kerumitan dan biaya.

sumber: ultahost.com

Latensi Mulai Dingin

Kerugian penting lainnya dari arsitektur tanpa server adalah latensi start dingin. Setelah durasi tertentu tidak aktif, ketika fungsi tanpa server dipicu, platform tempat fungsi tersebut dijalankan harus memulai lingkungan runtime yang mengakibatkan penundaan eksekusi selama beberapa detik. Latensi ini dapat bervariasi antara beberapa ratus milidetik hingga beberapa detik yang tidak dapat diterima untuk aplikasi yang harus responsif dan real time. Meskipun beberapa platform menawarkan solusi seperti konkurensi yang disediakan untuk mengurangi cold start, namun hal ini memerlukan biaya tambahan.

Debugging dan Pemantauan

Karena arsitektur tanpa server mengabstraksikan sebagian besar infrastruktur yang mendasarinya, debugging dan pemantauan aplikasi menjadi menantang. Alat dan metodologi debugging konvensional mungkin tidak dapat digunakan dan pengembang biasanya bergantung pada log untuk pemecahan masalah, yang pada gilirannya melelahkan dan memakan waktu. Selain itu, pemantauan aplikasi tanpa server berarti bahwa alat khusus diperlukan untuk melacak kinerja, latensi, dan kesalahan di seluruh fungsi yang didistribusikan, yang menambah kerumitan.

Keterbatasan Sumber Daya dan Ketergantungan

Platform tanpa server hadir dengan pembatasan sumber daya seperti memori, penyimpanan, dan daya CPU. Sebagai contoh, AWS Lambda saat ini mendukung memori 10 GB dan penyimpanan sementara 512 MB. Keterbatasan tersebut mungkin tidak ideal untuk aplikasi yang berat, sehingga mendorong pengembang untuk mencari solusi khusus atau mengulang arsitektur mereka. Demikian juga, manajemen ketergantungan bisa jadi sulit, terutama dengan pustaka atau paket yang besar.

Biaya Tak Terduga

Meskipun arsitektur tanpa server dimaksudkan untuk menghemat biaya bagi bisnis, pola penggunaan yang tidak dapat diprediksi dapat menimbulkan biaya yang menyebabkan tagihan yang jauh lebih tinggi daripada yang diharapkan. Dengan kata lain, platform tanpa server menagih Anda untuk berapa kali kode Anda berjalan, berapa lama, dan berapa banyak sumber daya yang dikonsumsi. Lonjakan lalu lintas atau fungsi yang tidak dioptimalkan dengan baik dapat dengan mudah menyebabkan biaya 10x lebih besar dari yang diharapkan. Organisasi-organisasi ini harus memantau penggunaan secara ketat dan mengoptimalkan kode mereka dalam upaya untuk menjaga biaya tetap terkendali.

Masalah Keamanan

Ini khusus untuk aplikasi tanpa server yang memiliki masalah keamanan tertentu. Fungsi tanpa server dapat menimbulkan tantangan bagi keamanan karena dapat berumur pendek, sehingga sulit untuk menerapkan kebijakan keamanan yang seragam, misalnya. Selain itu, permukaan serangan yang diperluas dapat diakibatkan oleh meningkatnya penggunaan dependensi dan integrasi pihak ketiga. Kerentanan lain dapat berasal dari kredensial akses yang salah konfigurasi atau sanitasi input yang buruk. Untuk mengurangi ancaman ini, organisasi perlu menerapkan praktik terbaik keamanan dan memanfaatkan alat yang tersedia dan “plug-in” pada platform.

Hilangnya Kontrol

Secara desain, arsitektur tanpa server mengabstraksikan infrastruktur yang mendasarinya, sehingga memungkinkan pengembang untuk fokus pada penulisan kode daripada mengelola server. Meskipun ini merupakan sebuah keuntungan, ini juga berarti kehilangan kendali atas aspek-aspek utama seperti konfigurasi server, pembaruan sistem operasi, dan pengaturan jaringan. Kurangnya kontrol ini dapat membatasi opsi penyesuaian dan menyulitkan untuk mengatasi persyaratan atau masalah tertentu.

Variabilitas Kinerja

Lingkungan bersama: Platform tanpa server berada di lingkungan bersama. Hal ini dapat menghasilkan kinerja yang bervariasi, terutama pada waktu-waktu puncak. Namun, serverless memberikan keandalan yang lebih rendah untuk aplikasi dengan kinerja yang konsisten.

Kesimpulan

Terlepas dari kelebihannya, arsitektur tanpa server juga memiliki beberapa tantangan, yaitu penguncian vendor, latensi cold start, kesulitan debugging, dan keterbatasan sumber daya hanyalah beberapa kekurangan yang harus dipertimbangkan oleh organisasi. Sebelum mengadopsi arsitektur tanpa server, sangat penting untuk mengevaluasi kesesuaiannya untuk kasus penggunaan tertentu dan menimbang untung ruginya. Dengan memahami keterbatasan ini, perusahaan dapat membuat keputusan yang tepat dan merancang arsitektur yang menyeimbangkan kelebihan dan kekurangan komputasi tanpa server.