Serverless? Kenapa Tidak?

Derby
Farmacare Crew
Published in
2 min readDec 6, 2022

Pengembangan sebuah apps tak lepas dari pemilihan arsitekturnya. Semuanya dimulai dari monolith atau yang secara singkat kita membuat satu apps besar yang menangani semuanya. Karena satu apps tersebut melayani banyaknya user sekaligus, bisa saja apps tersebut akan terasa lambat. Kemudian muncullah arsitektur microservice atau yang bisa kita sebut membagi satu apps besar ke beberapa apps kecil yang independen antar satu sama lain. Pemecahan ini bertujuan untuk membagi load dari user-nya.

Namun, meskipun menggunakan arsitektur monolith ataupun microservice kita masih harus memikirkan biaya server yang pastinya itu tidak murah. Akhirnya muncullah arsitektur serverless dimana kita bisa membuat apps tanpa harus memiliki server yang artinya biaya dan segala macam konfigurasi server untuk menjalankan apps kita akan berkurang cukup signifikan.

Serverless bekerja dengan cara kita menitipkan kode kita di dalam komputer atau server yang dimiliki oleh penyedia layanan seperti AWS atau GCP. Sehingga dengan arsitektur serverless kita tidak perlu memikirkan biaya dan konfigurasi server, developer hanya perlu fokus untuk menulis sebuah kode. Untuk urusan server sudah diatur oleh pihak dimana kita menaruh fungsi kita sehingga kita hanya ditagih biaya ketika fungsi kita dijalankan saja. Selain biaya yang sangat murah, kelebihan lainnya adalah high availability yang artinya apps kita tidak akan down atau mati walaupun ada error.

Dibalik kelebihan serverless, pasti juga ada kekurangannya. Misalnya serverless hanya mendukung beberapa bahasa pemrograman saja tergantung dari penyedia layanan. selain itu paradigma pemrograman kita akan sedikit berbeda dengan arsitektur yang lainnya. Fungsi kita juga akan masuk kedalam kondisi hibernasi jika dalam beberapa waktu tidak dieksekusi, yang mengakibatkan memberikan respon yang sedikit lebih lambat untuk pertama kalinya karena harus “membangunkan” terlebih dahulu fungsi yang terhibernasi tersebut.

Setiap arsitektur memiliki kelebihan dan kekurangan masing-masing. Untuk memilih sebuah arsitektur juga bergantung pada jenis apps yang akan kita bangun diatasnya. Jika kita ingin membangun suatu high availability apps dengan biaya yang murah, proses development yang relatif cepat, dan tidak ingin dihantui oleh biaya dan konfigurasi server maka serverless adalah pilihan yang tepat.

--

--