Teknologi terus berkembang dengan sangat cepat, dan sudah tidak tidak aneh jika ada suatu teknologi muncul dalam waktu singkat langsung digantikan dengan teknologi lainnya. Virtualisasi dan cloud computing mungkin baru booming dalam beberapa tahun terakhir (khususnya di Indonesia), kemudian muncul teknologi container yang sedang trend akhir-akhir ini. Nah kini ada lagi teknologi yang sedang naik daun, yaitu serverless computing, atau juga dikenal dengan istilah Function-as-a-Service (FaaS). Di blog ini RouteCloud akan menjelaskan apa itu serverless computing serta kelebihan dan kekurangannya.
Apa itu Serverless Computing?
Banyak orang mengira istilah serverless berarti tidak ada server, namun sebenarnya bukan seperti itu. Maksud serverless computing adalah semua orang dapat membuat dan menjalankan aplikasi tanpa harus memikirkan server untuk menjalankannya. Serverless computing tidak mengharuskan developer atau tim IT untuk setup server, install OS, management server, scaling (menambah atau mengurangi server sesuai kebutuhan). Semua management server akan dihandle oleh penyedia layanan, dalam hal ini cloud service provider sebagai penyedia layanan serverless. Serverless mendapatkan banyak respon positif terutama dari developer aplikasi. Banyak perusahaan yang mulai menerapkan serverless computing, salah satunya adalah Netflix.
Kelebihan Serverless Computing
Serverless computing memberikan banyak kelebihan, diantaranya :
- No server management. Dengan serverless, Anda tidak akan dipusingkan dengan hal-hal terkait management server. Dan sebagai developer, Anda dapat lebih fokus ke hal terkait development aplikasi.
- Flexible scaling. Aplikasi dapat selalu diakses dan berjalan tanpa kita harus memikirkan tentang capacity atau kemampuan server. Sistem serverless akan secara otomatis mengatur resource yang diperlukan sehingga tidak ada lagi server yang overutilized atau underutilized.
- High availability. Sistem serverless sudah memiliki fitur high availability (HA) dan fault tolerance. Anda tidak perlu membuat arsitektur HA karena provider serverless sudah menyediakanya.
- Cost effective. Dengan serverless computing, Anda hanya membayar saat kode / aplikasi dijalankan. Dibandingkan dengan sistem tradisional dimana Anda harus membayar VM (baik digunakan atau tidak provider akan mencharge Anda), sistem serverless dapat lebih efektif terkait biaya yang harus dikeluarkan. Namun patut dicatat bahwa biaya dapat lebih murah maupun lebih mahal, tergantung dari behavior dari aplikasi yang dijalankan.
Bagaimana Sistem Serverless Bekerja?
Pada sistem tradisional (non serverless) biasanya service membutuhkan server atau virtual machine untuk menjalankan aplikasi. Di serverless, layanan yang disediakan berupa abstraksi high level. Abstraksi tersebut dapat berbeda-beda tergantung jenis script/instruksi yang dijalankan dan triggernya. Contoh di sistem database, abstraksi adalah tabel, dan triggernya adalah query terhadap tabel tersebut.
Contoh lain penerapan serverless di game mobile, misalkan di game tersebut terdapat fitur untuk menampilkan high score dari pemain di seluruh dunia. Saat informasi tersebut direquest, sistem akan memanggil API. API ini akan mentrigger function AWS Lambda, yang mentrigger akses ke data stream dari database (mis. Amazon DynamoDB). Data tersebut dikirimkan ke user dalam bentuk object, dalam hal ini daftar top score.
Berbeda dengan sistem biasa, dimana VM EC2 selalu standby menunggu request, dengan menerapkan serverless resource computing hanya dijalankan saat eksekusi trigger saja sehingga dari sisi resource (dan cost) akan sangat efisien.
Provider Serverless Computing
Saat ini sudah ada beberapa cloud provider yang menyediakan layanan serverless, yaitu AWS Lambda, Google Cloud Functions, Azure Functions, dan IBM Cloud Functions. AWS menjadi yang pertama mengenalkan serverless, yaitu AWS Lambda pada tahun 2014. Awalnya Lambda hanya support Node.js, namun sekarang sudah support Python, Java, C#, Go, dan masih terus bertambah.
Untuk Google Cloud Function sendiri baru dirilis pada tahun 2016 dan mendukung Node.js. Dan salah satu yang paling menarik mungkin IBM Cloud Functions. Platform serverless computing IBM berbasis Apache OpenWhisk, yang dirilis IBM sebagai platform open source. OpenWhisk saat ini sudah mendukung Node.js, Python, Java, dan Swift.
Nah sekarang sudah tahu kan apa itu serverless computing? Jika tertarik mencobanya, silahkan rekan-rekan kunjungi salah satu provider di atas untuk mencoba dan mengetahui lebih lanjut.
Komentar