Tanpa Server

Benny William Pardede
PPL D7 — Fasilkom UI
4 min readMay 22, 2019
Tanpa Nama

Tekonologi Serverless. Kita bisa internetan tanpa server, kurang keren apa coba.

Eits jangan salah tangkap ya, servernya/hostnya tetep ada, namanya aja tanpa server. Pelan-pelan kita bedah arti kata Serverless ya.

Ketika bicara serverless, orang-orang ilmu komputer sebenarnya bicara tentang sebuah varian dari as-a-service (aas) yakni Function as a Service (Faas). Eh, gatau makna dari as-a-service?

At your Service

Anything/Everything as a service (XaaS) adalah istilah yang menggambarkan kategori layanan yang terkait dengan cloud computing dan akses jarak jauh (remote access). Dengan teknologi cloud computing, vendor menawarkan perusahaan berbagai jenis layanan melalui web atau jaringan serupa. Gagasan inti di balik XaaS dan layanan cloud lainnya adalah bahwa sebuah bisnis dapat memangkas biaya dan mendapatkan jenis sumber daya tertentu dengan membeli layanan dari penyedia dengan berlangganan. Sebelum munculnya XaaS dan layanan cloud, bisnis seringkali harus membeli produk perangkat lunak berlisensi dan menginstalnya di situs. Mereka harus membeli hardware dan menghubungkannya bersama untuk membuat jaringan. Mereka harus melakukan semua pekerjaan pengamanan server di lokasi, dan mereka harus menyediakan pengaturan server yang mahal dan infrastruktur lainnya untuk semua proses bisnis mereka.

Sebaliknya, dengan XaaS, bisnis hanya membeli apa yang mereka butuhkan, dan membayarnya sesuai kebutuhan. Hal ini memungkinkan perusahaan untuk secara drastis mengubah model layanan dari waktu ke waktu. Dengan menggunakan pendekatan multi-penyewa, layanan cloud dapat memberikan banyak fleksibilitas. Konsep seperti pengumpulan sumber daya dan elastisitas yang cepat mendukung layanan ini di mana para pemimpin bisnis dapat dengan mudah menambah atau mengurangi layanan yang diperlukan.

Ide ini dimulai dengan Software as a Service (SaaS) dimana penyedia cloud yang menawarkan aplikasi perangkat lunak individual. Istilah lain seperti Infrastructure as a Service (IaaS) dan Communications as a Service(CaaS) bermunculan ketika layanan cloud berevolusi. Begitu banyaknya jenis sumber daya TI yang sekarang disediakan dengan pendekatan ini, XaaS adalah istilah yang agak ironis seiring menjamurnya layanan cloud.

Function Service

Bagaimana dengan Function as a Service yang ingin kita bahas? Seperti contoh-contoh yang diberikan di atas, berarti layanan cloud menyediakan pelayanan berupa fungsi. Ya, function, method, def, yang kalian biasa temukan di bahasa pemrograman favorit kalian. Fungsi tersebut bisa kita kasih endpoint yang pada akhirnya akan menjadi sebuah API. Jadi satu server FaaS hanya akan berperan untuk menjadi endpoint satu-banyak fungsi saja bukan? Salah.

Coba pikir baik-baik, layanan FaaS cukup hanya menyediakan sebuah fungsi, namun apakah efisien jika kita perlu membuat sebuah app/program baru, lalu membuat image nya, hanya untuk menyediakan sebuah fungsi? Disinilah teknologi Serverless menjawab keborosan yang sudah disebut di paragraf XaaS. Bahwa setiap XaaS, termasuk FaaS, ingin menjadi pembantu dan pelayan bagi setiap bisnis yang tidak ingin memikirkan alokasi waktu dan biaya untuk deployment layanan utama bisnis mereka.

Bedanya FaaS dengan lainnya adalah anggota XaaS lainnya adalah mereka menyediakan server yang bisa gunakan dan otak-atik servernya. Ada juga yang menyediakan jasa hosting, dimana server dan OS nya sudah ada dan kita hanya perlu push image program kita. Sedangkan FaaS bekerja pada tingkatan hirarki aplikasi yang lebih tinggi lagi dimana kita tidak perlu memikirkan server, OS, maupun image. Cukup menyetor definisi fungsinya saja ke layanan cloud Serverless!

The How

Alur pemakaian layanan Serverless dapat dilihat disini.

Bisa dilihat pada output akhir pekerjaan teman saya, pada akhirnya kita diberikan sebuah URL endpoint yang membuktikan Serverless tetap membutuhkan server nyata. Serverless hanya berarti tidak melihat keberadaan server pada proses deployment, karena kita cukup menyetor fungsi, menentukan endpoint, dan voila jadilah sebuah layanan. Tidak akan terasa konfigurasi servernya seperti konfigurasi host, port, process, entrypoint, dan hal-hal merepotkan lainnya bagi developer m̶a̶l̶a̶s̶. Tapi jika tidak ada konfigurasi server, bagaimana server itu tahu cara memanggil dan mengolah fungsi kita? Sebenarnya logika dan komputasi tetap berjalan, bahkan server terus aktif menunggu request. Namun, dalam Serverless tidak ada yang namanya State seperti pada state yang diterangkan pada topik Automata pada ilmu komputer. Aplikasi berjalan jika hanya jika dipanggil (API call) atau diatur untuk berjalan jika ada suatu kejadian tertentu (event-triggered). Kalau tidak ada pemicunya, fungsi itu akan sleep kembali; tidak ada saved data!

Kenapa tidak ada State? Paling mudah untuk menjelaskannya adalah satu fungsi saja tidak akan memakai sepersepuluh resource dari sebuah CPU server. Tentu saja karena sebuah penyedia layanan Severless tentu tidak hanya ingin berhenti melayani satu fungsi dari satu bisnis saja. Maka dari itu penyedia layanan akan membuka pintu untuk lebih banyak fungsi untuk satu server, yang mengakibatkan satu server akan menjalankan banyak fungsi sekaligus. Jika terdapat state untuk setiap process fungsi, resource komputer akan jatuh dengan cepat.

Penyedia layanan harus bisa mengimplementasikan teknologi melayani banyak process dalam satu server. Jikalau penyedia layanan gagal untuk me-manage jutaan process dari ribuan fungsi, alur bisnis dari para pengguna layanan akan berhadapan dengan downtime yang tentu saja tidak diinginkan oleh pebisnis. Jadi bersiaplah pada resiko downtime tersebut jika ingin memakai layanan Serverless. Terlebih lagi, jika fungsi yang ingin disetor mengandung formula/rumus/informasi rahasia bisnis, sebaiknya jangan menggunakan layanan Serverless karena cukup jelas bahwa pada dasarnya Anda menyerahkan fungsi Anda ke orang lain untuk dijalankan.

Benny William Pardede
Koneg Liquid

--

--