Pengembangan web terus berubah, dan kini semakin banyak pengembang yang menggunakan fungsi tanpa server untuk membangun aplikasi yang berskala baik, lebih murah, dan cepat beradaptasi. Fungsi tanpa server Juga disebut Function-as-a-Service (FaaS), layanan ini memungkinkan Anda menjalankan kode backend saat terjadi peristiwa tanpa perlu menyiapkan atau mengelola server. Perusahaan cloud besar seperti AWS (Lambda), Google Cloud (Cloud Functions), dan Microsoft Azure (Azure Functions) telah mempermudah penerapan dan pengembangan fungsi-fungsi ini.
Dalam artikel ini, kita akan membahas cara-cara utama orang menggunakan fungsi tanpa server dalam pengembangan web masa kini. Kami akan menunjukkan bagaimana fungsi-fungsi tersebut menyederhanakan tugas-tugas kompleks dan mengurangi pekerjaan bagi pengembang dan perusahaan.
Apa itu Fungsi Tanpa Server?
Mari kita pahami sekilas fungsi tanpa server sebelum kita melihat bagaimana orang menggunakannya.
Fungsi tanpa server berfungsi sebagai potongan kode kecil yang independen. Fungsi ini akan aktif ketika terjadi hal-hal tertentu, seperti permintaan web, unggahan berkas, atau perubahan dalam basis data. Fungsi ini akan tumbuh atau menyusut dengan sendirinya untuk memenuhi permintaan. Jangan tertipu oleh namanya – "tanpa server" bukan berarti tidak ada server. Fungsi ini hanya berarti penyedia cloud mengurus semua hal di balik layar.
Fungsi-fungsi ini disertai dengan beberapa keuntungan:
Anda membayar sesuai dengan apa yang Anda gunakan: Tagihan hanya mencerminkan waktu penggunaan komputer yang Anda gunakan.
Mereka tumbuh bersama Anda: Anda tidak perlu menyiapkan penyeimbang beban atau kluster.
Pekerjaan Anda berkurang: Anda dapat fokus pada penulisan kode alih-alih mengelola hal-hal teknis.
Sekarang, mari kita lihat bagaimana orang menerapkan fungsi tanpa server pada aplikasi web dunia nyata.
1. Menangani Permintaan HTTP dan API
Fungsi tanpa server sering kali membangun API RESTful atau layanan mikro untuk menangani permintaan HTTP.
Anda dapat menerapkan fungsi yang merespons metode HTTP tertentu (GET, POST, PUT DELETE) alih-alih mengelola server web untuk merutekan dan memproses permintaan. Struktur ini berfungsi dengan baik untuk layanan mikro, CMS headless, dan pola backend-for-frontend (BFF).
Contoh:
Membangun API untuk mendukung backend aplikasi seluler.
Membuat formulir kontak yang memicu fungsi untuk mengirim email.
Bertindak sebagai perantara dan mengubah data di antara berbagai API pihak ketiga.
Manfaat:
Penerapan cepat
Peningkatan skala segera selama puncak lalu lintas
Tidak perlu menjalankan server web atau kerangka kerja yang lengkap
2. Pengiriman Formulir dan Webhook
Fungsi tanpa server sangat cocok untuk situasi asinkron dan berbasis peristiwa seperti pengiriman formulir dan webhook. Saat pengguna mengirimkan formulir, atau layanan pihak ketiga memposting ke aplikasi Anda, fungsi tanpa server dapat melakukan hal berikut:
Validasi dan sanitasi masukan.
Simpan dalam basis data.
Memicu layanan tambahan, misalnya mengirim email pemberitahuan atau mencatat kejadian.
Contohnya bisa meliputi:
Memproses pendaftaran buletin, atau menambahkan pengguna ke milis.
Menerima webhook Stripe atau Shopify untuk memperbarui pesanan atau mengirim email konfirmasi.
Manfaatnya meliputi penyelesaian dalam waktu yang lebih singkat daripada yang diperkirakan pengguna akan terjadi penundaan, lingkungan aman yang terisolasi dari proses lain, dan kemampuan untuk meningkatkan skala ketika acara meningkat.
3. Otentikasi dan Otorisasi
Autentikasi sangat penting dalam aplikasi web saat ini. Fungsi tanpa server dapat digunakan untuk menangani logika autentikasi dan otorisasi berbasis token yang aman.
Daripada mengekspos logika penting ke sisi klien atau membebani server orkestrasi, fungsi tanpa server dapat:
Validasi token JWT atau OAuth.
Terapkan kontrol akses berbasis peran.
Integrasikan dengan penyedia identitas seperti Auth0 atau Firebase Auth.
Contoh:
Memvalidasi pengguna sebelum mengakses dasbor.
Mengotorisasi hal-hal yang dapat dilakukan admin, seperti menghapus rekaman.
Manfaat:
Lebih banyak keamanan
Logika terdesentralisasi dan terisolasi
Integrasi yang mulus dengan layanan autentikasi pihak ketiga
4. Pemrosesan File dan Gambar Real-Time
Fungsi tanpa server merupakan cara hebat untuk memproses berkas media saat pengguna akhir mengunggah atau mengaksesnya.
Misalnya, Anda dapat memicu suatu fungsi saat pengguna mengunggah gambar ke penyimpanan cloud, dan fungsi tersebut dapat:
Ubah ukuran gambar
Mengonversi format (dari PNG ke WebP, misalnya)
Hasilkan gambar mini
Melakukan pemindaian virus
Contoh:
Membuat gambar responsif untuk desain web responsif.
Transcoding berkas audio atau video untuk streaming.
Manfaat:
Pemrosesan berdasarkan permintaan dan peristiwa yang sederhana
Mengurangi beban kerja front-end dalam memodifikasi file atau data.
Dapat dirangkai bersama untuk membuat jaringan pemrosesan yang lebih canggih dan menarik.
5. Tugas Terjadwal (Cron Job)
Platform tanpa server dapat memanggil fungsi sesuai jadwal menggunakan sintaksis cron, yang membuatnya cocok untuk pemrosesan latar belakang terjadwal seperti:
Contoh:
Mengirim email laporan harian atau pemberitahuan.
Membersihkan entri lama dalam basis data.
Mengambil data dari API pihak ketiga dan menyimpan hasilnya.
Manfaat:
Aplikasi Anda tidak memerlukan server khusus yang berjalan 24/7
Keandalan dengan logika coba lagi
Kontrol dan manajemen versi yang mudah
6. Resolver GraphQL Tanpa Server
Fungsi tanpa server bekerja dengan baik dengan arsitektur GraphQL di mana setiap fungsi dapat menjadi penentu untuk kueri atau mutasi tertentu.
Ini adalah cara yang menarik untuk membangun API secara dinamis dan membuat tim pengembangan lebih tangkas dalam membangun antarmuka tanpa backend monolitik.
Sebagai contoh:
Menyelesaikan pertanyaan profil pengguna.
Melakukan mutasi untuk memperbarui preferensi pengguna.
Keuntungan:
Kontrol butiran yang sangat halus pada setiap resolver
Mudah untuk diskalakan dan diterapkan nanti
Terbaik untuk tipe model JAMstack atau CMS tanpa kepala
7. Chatbots dan Komunikasi Real-Time
Banyak aplikasi modern yang menyertakan chatbot dan/atau kemampuan pengiriman pesan real-time. Fungsi tanpa server dapat menangani pesan obrolan yang masuk, memanggil API eksternal (seperti GPT atau Dialogflow), dan langsung mengirimkan respons.
Contoh:
Memproses pesan obrolan yang masuk dan menghasilkan respons otomatis.
Merekam sesi obrolan chatbot dan potensi analisis sentimen.
Manfaat:
Latensi rendah dan konkurensi tinggi.
Tanpa kewarganegaraan dan dapat dibuang begitu saja berdasarkan desainnya.
Integrasi yang mudah dengan API perpesanan seperti Twilio atau Slack.
8. Pengayaan Data dan Integrasi dengan API
Banyak aplikasi modern memiliki banyak API eksternal yang dapat Anda gunakan. Anda dapat memanfaatkan fungsi tanpa server untuk memasukkan, mengagregasi, mentransformasi, dan memperkaya data dari API, lalu mengirimkannya ke frontend atau menyimpannya dalam database.
Contoh:
Mengumpulkan data cuaca, lokasi atau keuangan dari API eksternal.
Menormalkan dan menyimpan data untuk analitik.
Manfaat:
Anda memiliki pemisahan logika data yang jelas
Mengurangi beban pada frontend
Sempurna untuk layanan mikro dan basis kode modular
9. Transaksi e-commerce dan pemrosesan pembayaran
Fungsi tanpa server dapat dengan aman mengelola tindakan sensitif seperti:
Memulai atau mengonfirmasi pembayaran.
Membuat faktur.
Memperbarui inventaris dan status pesanan.
Contoh:
Membuat titik akhir pembayaran yang berfungsi dengan Stripe.
Mengirim pemberitahuan pengiriman setelah pesanan dipenuhi.
Manfaat:
Peningkatan keamanan melalui isolasi
Dukungan kepatuhan (Misalnya PCI DSS)
Fungsi yang dapat dengan mudah diaudit dan diuji
10. Pengujian A/B dan Pengalihan Fitur
Apakah Anda ingin menguji fitur baru hanya dengan sebagian pengguna? Fungsi tanpa server dapat digunakan untuk mengontrol tanda fitur dan logika pengujian A/B secara dinamis.
Contoh:
Menentukan variasi beranda mana yang akan ditampilkan
Mengaktifkan komponen UI baru hanya untuk pengguna internal
Keuntungan:
Tidak perlu menyebarkan ulang seluruh aplikasi
Aktifkan iterasi dan pengujian yang cepat
Dapat dikonfigurasi dengan variabel lingkungan atau layanan konfigurasi jarak jauh
Kesimpulan
Fungsi Tanpa Server telah mengubah cara berpikir pengembang tentang pengembangan web. Mulai dari membangun MVP startup hingga menskalakan aplikasi global, fungsi ini membantu menghadirkan lebih banyak kapabilitas pengembangan sekaligus menghilangkan pertimbangan infrastruktur untuk pengembangan yang lebih cepat.
Fungsinya untuk melakukan tindakan stateless yang acak, berdasarkan kejadian dunia nyata, di samping penskalaan otomatis dan efektivitas biaya, akan membuat fungsi serverless menjadi bagian penting dari perangkat pengembangan web modern.
Seiring ekosistem tanpa server semakin matang, variasi kasus penggunaan akan terus bertambah. Mengadopsi arsitektur ini sekarang akan mempersiapkan para pengembang untuk masa depan yang lebih modular, efisien, dan tangguh.