Tidak Ada Yang Namanya ‘Serverless’


Oke, kita pasti sudah umum dengan namanya serverless. Saya rasa developer sudah kenal dengan kata ini.

Sebutan dari ‘serverless’ sendiri ambigu dan secara garis besar merupakan bahasa marketing karena ada dasarnya dalam ‘serverless’ sendiri tetap ada server.

Serverless adalah model komputasi cloud di mana penyedia layanan cloud mengelola infrastruktur dan alokasi sumber daya komputasi yang dibutuhkan untuk menjalankan kode aplikasi, sehingga pengembang tidak perlu mengelola server secara langsung.

Gw udah capek ngoding, masa juga harus ngurusin server.

Developer

Beberapa layanan serverless untuk computing yang populer:

  • AWS Lambda
  • Vercel Functions
  • Cloudflare Workers

Serverless ini sangat menjadi solusi jika kalian butuh efisiensi waktu atau efisiensi sumber daya manusia. Karena serverless tidak perlu mengelola server dan bisa scaling otomatis aplikasi kita secara otomatis sesuai usage. Namun tentu ada harga yang harus dibayar.

Tidak ada yang namanya sempurna, termasuk si serverless ini. Serverless ini hemat ketika penggunaan kita sedikit, namun ketika aplikasi kita penggunaannya sudah terlampau banyak, karena harga serverless bisa menjadi sangat mahal karena perhitungan serverless dihitung dari seberapa banyak kita menggunakan layanan. Berbeda dengan kebanyakan layanan cloud biasa yang pada dasarnya cuma menghitung resource yang kita sewa.

Yang kedua serverless juga tricky dalam perhitungan biaya, misalnya saja kebanyakan layanan Function as a Services (FaaS) menggunakan compute hours dalam perhitungan biaya. Anggaplah aplikasi yang kita gunakan membutuhkan waktu sekitar 0.5 detik untuk menyelesaikan suatu event. Misalnya kita menambahkan logic tambahan, maka kemungkinan besar juga aplikasi kita dapat berjalan lebih lama dan kita akan mendapatkan tagihan biaya lebih tinggi.

Terakhir, keterbatasan dari sisi desain serverless itu sendiri. Serverless kebanyakan didesain secara event driven dengan waktu singkat. Misalnya saja kita mendesain suatu aplikasi berbasis websocket yang membutuhkan persistensi koneksi yang cukup lama. Serverless mungkin dapat mengatasi hal tersebut namun tentu saja tidak hingga beberapa jam. Belum lagi dari hambatan biaya compute hours yang semakin mahal.

Kesimpulan

Artikel ini bukan bermaksud untuk melarang, atau menyuruh anda untuk menjauhi benda bernama serverless. Namun artikel bertujuan untuk mengingatkan anda untuk menggunakan alat yang tepat untuk masalah yang anda hadapi.

Tools are just tools. They can help you find problems, but they won’t solve them for you.

Linus Torvalds