Serverless Makin Banyak Dipakai, Begini Cara Kerja Aplikasi yang Berjalan Tanpa Mengurus Server
Istilah serverless makin sering muncul dalam pembahasan pengembangan aplikasi modern. Secara sederhana, serverless adalah cara menjalankan aplikasi atau kode tanpa harus menyewa, memasang, dan merawat server sendiri. Developer cukup menulis kode, mengunggahnya ke penyedia cloud, lalu penyedia itulah yang mengurus server, kapasitas, dan pemeliharaannya.
Meski namanya "tanpa server", server tetap ada di balik layar. Bedanya, pengguna tidak perlu memikirkannya sama sekali. Model ini dipakai luas oleh layanan seperti AWS Lambda, Google Cloud Run, Cloudflare Workers, Vercel Functions, hingga Supabase Edge Functions. Banyak di antaranya bahkan menyediakan kuota gratis yang cukup besar. Artikel ini menjelaskan apa itu serverless, cara kerjanya, contoh layanan, perhitungan biaya, kelebihan dan kekurangannya, hingga contoh kode sederhana.
| Aspek | Server Tradisional (VPS) | Serverless |
|---|---|---|
| Pengelolaan server | Diurus sendiri: OS, update, keamanan | Diurus penyedia cloud |
| Cara bayar | Biaya tetap per bulan, dipakai atau tidak | Sesuai jumlah permintaan dan waktu eksekusi |
| Skalabilitas | Harus menambah kapasitas secara manual | Otomatis naik-turun sesuai trafik |
| Waktu siaga | Server menyala 24 jam | Kode hanya berjalan saat dipanggil |
| Proses jangka panjang | Cocok | Terbatas batas waktu eksekusi |
| Kendali sistem | Penuh | Terbatas pada lingkungan penyedia |
Apa Itu Serverless
Serverless adalah model komputasi cloud di mana penyedia layanan bertanggung jawab penuh atas infrastruktur. Developer tidak perlu memilih spesifikasi server, memasang sistem operasi, mengatur web server, atau memikirkan berapa banyak server yang dibutuhkan saat trafik naik. Semua itu diatur otomatis.
Ada tiga ciri utama layanan serverless:
- Tanpa pengelolaan server: tidak ada server yang perlu dipantau, diperbarui, atau di-restart.
- Skala otomatis: kapasitas bertambah saat permintaan melonjak dan menyusut saat sepi, bahkan bisa sampai nol.
- Bayar sesuai pemakaian: biaya dihitung dari jumlah permintaan dan lama kode berjalan, bukan dari jam server menyala.
Dua Jenis Serverless: FaaS dan BaaS
Serverless umumnya dibagi menjadi dua kategori besar.
Function as a Service (FaaS). Developer menulis potongan kode kecil yang disebut function, lalu function itu dijalankan ketika ada pemicu, misalnya permintaan HTTP, file yang diunggah, atau jadwal tertentu. Contohnya AWS Lambda, Google Cloud Run functions, Azure Functions, Cloudflare Workers, Vercel Functions, Netlify Functions, dan Supabase Edge Functions.
Backend as a Service (BaaS). Penyedia menyediakan layanan backend siap pakai seperti database, autentikasi, dan penyimpanan file yang bisa langsung dipanggil dari aplikasi. Contohnya Supabase dan Firebase. Developer tidak menulis server, cukup memakai layanan yang sudah ada.
Dalam praktiknya, keduanya sering digabung. Misalnya, aplikasi memakai Supabase untuk database dan login, lalu memakai function untuk memproses pembayaran atau mengirim email.
Cara Kerja Serverless
Alur kerja sebuah function serverless kurang lebih seperti ini:
- Developer menulis function dan mengunggahnya ke penyedia cloud.
- Penyedia menyimpan kode tersebut dan menunggu pemicu.
- Ketika ada pemicu, misalnya pengguna membuka URL API, penyedia menyiapkan lingkungan eksekusi.
- Function dijalankan, memproses permintaan, lalu mengembalikan hasil.
- Setelah selesai, lingkungan eksekusi bisa dipakai lagi untuk permintaan berikutnya atau dimatikan bila tidak ada permintaan.
Jika ada seribu permintaan masuk bersamaan, penyedia akan menjalankan banyak salinan function secara paralel. Pengguna tidak perlu mengatur apa pun.
Memahami Cold Start
Salah satu istilah yang wajib dipahami adalah cold start. Ketika sebuah function sudah lama tidak dipanggil, penyedia perlu menyiapkan lingkungan baru sebelum kode bisa berjalan. Proses persiapan ini menambah waktu tunggu pada permintaan pertama, mulai dari puluhan milidetik hingga beberapa detik, tergantung platform, bahasa pemrograman, dan ukuran kode.
Platform berbasis edge seperti Cloudflare Workers memakai teknologi isolate yang sangat ringan, sehingga cold start nyaris tidak terasa. Sementara platform berbasis container atau runtime yang lebih berat bisa mengalami cold start lebih panjang. Cara mengurangi dampaknya antara lain menjaga ukuran kode tetap kecil, mengurangi dependensi, dan memilih bahasa yang cepat dimuat.
Contoh Layanan Serverless dan Kuota Gratisnya
Banyak penyedia serverless menawarkan kuota gratis bulanan. Berikut ringkasannya berdasarkan data per September 2026:
| Layanan | Kuota Gratis | Catatan |
|---|---|---|
| AWS Lambda | 1 juta permintaan dan 400.000 GB-detik per bulan | Termasuk layanan always free AWS |
| Google Cloud Run | 2 juta permintaan per bulan | Plus kuota vCPU dan memori, perlu kartu untuk daftar |
| Cloudflare Workers | 100.000 permintaan per hari | Batas CPU 10 ms per permintaan di paket gratis |
| Vercel Functions (Hobby) | 1 juta pemanggilan dan 4 jam CPU per bulan | Hanya untuk proyek pribadi non-komersial |
| Netlify Functions | Bagian dari 300 kredit per bulan | Kuota tidak bisa terlampaui dan tidak menimbulkan tagihan |
| Supabase Edge Functions | 500.000 pemanggilan per bulan | Di paket Free Supabase |
Angka kuota dapat berubah sewaktu-waktu, sehingga selalu cek halaman harga resmi masing-masing penyedia sebelum memilih.
Bagaimana Biaya Serverless Dihitung
Model bayar sesuai pemakaian membuat biaya serverless sangat efisien untuk aplikasi dengan trafik kecil atau tidak menentu. Umumnya ada dua komponen biaya:
- Jumlah permintaan: berapa kali function dipanggil.
- Durasi dan memori: berapa lama function berjalan dikalikan memori yang dipakai, biasanya dihitung dalam satuan GB-detik.
Sebagai gambaran, function yang dipanggil beberapa ribu kali per bulan untuk form kontak hampir pasti masuk kuota gratis. Sebaliknya, untuk aplikasi dengan trafik tinggi dan stabil sepanjang hari, biaya serverless bisa lebih mahal dibanding VPS dengan harga tetap. Karena itu, hitung perkiraan biaya sebelum memindahkan beban kerja besar ke serverless.
Kelebihan Serverless
- Tidak perlu mengurus server: tidak ada update sistem operasi, patch keamanan server, atau pemantauan disk.
- Skala otomatis: aplikasi tetap responsif saat terjadi lonjakan trafik, misalnya saat promo atau kampanye iklan.
- Hemat untuk trafik kecil: tidak ada biaya ketika tidak ada permintaan.
- Cepat dirilis: developer bisa fokus pada logika aplikasi, bukan konfigurasi infrastruktur.
- Ketersediaan tinggi: penyedia umumnya menjalankan function di banyak lokasi dan zona sekaligus.
Kekurangan Serverless
- Cold start: permintaan pertama setelah lama tidak aktif bisa terasa lebih lambat.
- Batas waktu eksekusi: function biasanya dibatasi durasi tertentu, sehingga tidak cocok untuk proses berjam-jam.
- Ketergantungan penyedia: kode yang memakai fitur khusus satu penyedia bisa sulit dipindahkan.
- Debugging lebih rumit: menelusuri error di sistem terdistribusi butuh log dan alat pemantauan yang baik.
- Biaya sulit diprediksi: trafik besar yang tidak terduga, atau serangan bot, bisa menaikkan tagihan bila tidak ada batas pengeluaran.
- Tanpa state lokal: data tidak bisa disimpan di memori antar permintaan, sehingga perlu database atau cache eksternal.
Kapan Sebaiknya Memakai Serverless
Serverless sangat cocok untuk:
- API ringan untuk website atau aplikasi mobile.
- Webhook, misalnya menerima notifikasi dari payment gateway, marketplace, atau WhatsApp API.
- Form kontak dan pendaftaran pada landing page statis.
- Tugas terjadwal seperti kirim laporan harian atau membersihkan data lama.
- Pemrosesan file, misalnya mengompres gambar setelah diunggah.
- Integrasi AI, seperti endpoint yang meneruskan pertanyaan pengguna ke API model AI tanpa membuka kunci API di browser.
- Bot chat berbasis webhook untuk Telegram atau WhatsApp.
Kapan Serverless Kurang Cocok
Ada beberapa kondisi di mana VPS atau server khusus lebih masuk akal:
- Proses yang berjalan lama, seperti render video, pelatihan model AI, atau scraping berjam-jam.
- Aplikasi dengan koneksi permanen, misalnya server game atau WebSocket bervolume tinggi, kecuali platform menyediakan layanan khusus untuk itu.
- Trafik tinggi dan stabil 24 jam, di mana biaya tetap server justru lebih murah.
- Aplikasi lama (legacy) yang sulit dipecah menjadi function kecil.
- Kebutuhan kontrol penuh atas sistem operasi dan konfigurasi jaringan.
Contoh Kode: Function Serverless Sederhana
Cloudflare Workers. Contoh function yang mengembalikan respons JSON:
export default {
async fetch(request) {
const url = new URL(request.url)
const nama = url.searchParams.get('nama') || 'Tamu'
return Response.json({ pesan: `Halo, ${nama}!` })
}
}
Function ini bisa dideploy dengan alat bawaan Cloudflare, Wrangler, menggunakan perintah npx wrangler deploy.
Vercel Functions. Pada proyek yang dideploy ke Vercel, cukup buat file di folder api, misalnya api/halo.js:
export function GET(request) {
return Response.json({ pesan: 'Halo dari serverless Vercel' })
}
Setelah proyek dideploy, function langsung bisa diakses di alamat /api/halo.
Supabase Edge Functions. Function dibuat dengan Supabase CLI:
npx supabase functions new kirim-notifikasi
npx supabase functions deploy kirim-notifikasi
Edge Functions Supabase cocok dipakai bersama database Supabase, misalnya untuk memproses data sebelum disimpan atau memanggil layanan pihak ketiga dengan kunci rahasia.
Serverless, Edge, dan Container: Apa Bedanya
Serverless function biasa berjalan di region tertentu, misalnya Singapura, dan cocok untuk logika yang dekat dengan database.
Edge function berjalan di banyak lokasi di seluruh dunia, dekat dengan pengguna. Responsnya cepat, tetapi lingkungannya lebih terbatas, misalnya tidak semua pustaka Node.js bisa dipakai.
Serverless container, seperti Google Cloud Run, menjalankan aplikasi dalam bentuk container Docker dengan skala otomatis. Pilihan ini memberi fleksibilitas lebih besar karena hampir semua bahasa dan pustaka bisa dipakai.
Tips Mulai Memakai Serverless
- Mulai dari kasus kecil, seperti form kontak atau webhook, sebelum memindahkan logika besar.
- Simpan kunci rahasia di environment variable, bukan di dalam kode.
- Pasang batas pengeluaran atau alert biaya di dashboard penyedia.
- Tambahkan rate limiting untuk mencegah penyalahgunaan endpoint publik.
- Gunakan logging dan monitoring agar error mudah dilacak.
- Pilih region terdekat dengan pengguna dan database untuk mengurangi latensi.
Pertanyaan yang Sering Diajukan
Apakah serverless benar-benar tanpa server? Tidak. Server tetap ada, tetapi dikelola sepenuhnya oleh penyedia cloud sehingga pengguna tidak perlu mengurusnya.
Apakah serverless lebih murah dari VPS? Untuk trafik kecil hingga menengah atau tidak menentu, umumnya lebih murah. Untuk trafik tinggi dan stabil, VPS bisa lebih hemat.
Bahasa apa yang bisa dipakai? Tergantung penyedia. JavaScript dan TypeScript didukung hampir semua platform, sedangkan Python, Go, Java, dan bahasa lain tersedia di AWS Lambda dan Google Cloud.
Apakah Supabase termasuk serverless? Ya. Supabase termasuk Backend as a Service dan juga menyediakan Edge Functions yang berjenis Function as a Service.
Apakah serverless aman? Penyedia menangani keamanan infrastruktur, tetapi keamanan kode, kunci API, dan hak akses tetap menjadi tanggung jawab developer.
Kesimpulan
Serverless mengubah cara aplikasi dibangun dengan memindahkan urusan server ke penyedia cloud. Developer cukup menulis kode, sementara skala, ketersediaan, dan pemeliharaan diatur otomatis. Dengan model bayar sesuai pemakaian dan kuota gratis yang cukup besar, serverless menjadi pilihan menarik untuk API ringan, webhook, form, tugas terjadwal, hingga integrasi AI.
Meski begitu, serverless bukan jawaban untuk semua kebutuhan. Proses berjangka panjang, koneksi permanen, atau trafik tinggi yang stabil sering lebih cocok dijalankan di VPS. Pilihan terbaik biasanya adalah kombinasi keduanya: serverless untuk bagian yang trafiknya naik-turun, dan server tradisional untuk beban kerja yang berjalan terus-menerus.
Clovertechno