Berbagai Bahasa Pemrograman untuk Function As A Service

Muhammad Arslan 27 Juni 2017

Berbagai Bahasa Pemrograman untuk Function As A Service

Serverless architecture adalah salah satu topik yang cukup menarik untuk digali, memang kehadiran cloud computing-lah yang membuatnya lahir. Karena tidak bisa ditampik juga kemudahan dalam membangun aplikasi akan dirasakan oleh pembuat aplikasi itu sendiri. FaaS merupakan salah satu komponen penting dari serverless architecture dimana kita tidak perlu terlibat banyak dalam administrasi server. Berbeda dengan mode deployment konvensional biasa yang biasa melibatkan kita dengan urusan administrasi server.

Salah satu hal terpenting dari serverless architecture adalah auto scaling. Dimana kita dapat dengan mudah menentukan kapan harus auto scaling. Kamu dapat menentukan rule bila ada kondisi harus auto scaling pada waktu tertentu. Salah satu concern kenapa FaaS hadir adalah bagaimana suatu bagian kode memiliki porsi resource yang berbeda dibandingkan yang lainnya. Dan juga mencegah overtaking resource oleh function lain. Dengan kata lain function akan diisolasi seperti pada microservice architecture, dan perbedaan penggunaan resource tidak akan mempengaruhi satu sama lain. Bila di microservice batasan resource ditentukan oleh host itu sendiri, sedangkan di serverless kamu tidak perlu menangani hal tersebut karena sudah ditangani oleh vendor.

Secara umum, FaaS memiliki caranya sendiri untuk dipasang. Ada juga yang menggunakan bantuan third party seperti Serverless Framework untuk deployment yang lebih mudah. Namun biasanya deployment bawaan dari suatu vendor kadang berbelit - belit dan cukup rumit. Oleh karena itu hadirlah berbagai third party yang mempermudah hal tersebut.

Untuk berkecimpung di ranah serverless, tidak perlu khawatir bila kamu sudah menguasai bahasa pemrograman mainstream. Bahkan bahasa pemrograman yang masih belum mainstream di Indonesia pun sudah memiliki tempat di ranah serverless. Kalau kamu sudah menguasai bahasa pemrograman seperti Node.js dan Python, kamu juga dapat membuat binary dari bahasa pemrograman yang kamu suka dan menjalankannya dengan bantuan process Node.js atau subprocess-nya Python.

Berikut ini adalah daftar beberapa bahasa pemrograman yang dapat kamu gunakan untuk berkecimpung di ranah serverless.

###1. Node.js

Node.js didukung secara resmi oleh AWS Lambda, Azure Function, IBM Open Whisk, Google Cloud Function. Kamu juga dapat menggunakan berbagai framework untuk serverless seperti Serverless, Claudia.js, Gordon, Apex, dan lainnya.

Node.js masih menjadi favorit untuk ranah serverless karena ketersediaan library yang lebih banyak untuk mengembangkan aplikasi serverless dibandingkan bahasa pemrograman lain.

###2. Python

Python secara resmi didukung oleh AWS Lambda, Azure Function, Google Cloud Function. Kamu juga dapat menggunakan berbagai framework seperti Serverless, Zappa, Gordon, Apex, Chalice dan lainnya.

###3. Java

Java secara resmi didukung oleh AWS Lambda, Azure Function, Google Cloud Function. Kamu dapat menggunakan framework seperti Serverless dan Gordon.

###4. Go

Go secara resmi didukung Google Cloud Function, dan kamu harus melalukan deployment yang telah diinstruksikan oleh Google Cloud Function. Namun kamu dapat menggunakan juga Apex untuk deploy kode Go kamu di AWS Lambda, walaupun masih belum resmi.

###5. CSharp (ASP.NET Core)

C# didukung secara resmi oleh AWS Lambda, Azure Function, Google Cloud Function. Terlebih di Azure Function semua alat pendukung sudah tersedia lengkap dan telah lolos uji. Namun sayangnya tools - tools tersebut hanya tersedia di Visual Studio dan Windows 10. Sistem operasi lain tidak dapat menggunakannya.

Namun kamu dapat menggunakan deployment yang diinstruksikan masing - masing vendor yang tentu saja agak lebih repot dibandingkan bila deploy ke Azure Function.

###6. FSharp

F# secara resmi didukung oleh Azure Function dan belum ada vendor lain yang mau menerima F#. Kamu dapat menggunakan Azure Function Tool untuk membuat aplikasi serverless menggunakan F#.

###7. PHP

Bahasa pemrograman favorit programmer Indonesia ini secara resmi didukung oleh Azure Function, Google Cloud Function. Belum banyak framework yang mendukungnya. Sehingga kamu harus melakukan deployment sesuai dengan ketentuan dari vendor.

###8. Ruby

Bagi pengguna Ruby on Rails, Google Cloud Function menjadi penyelamat Ruby untuk berkecimpung di dunia serverless. Secara resmi Google Cloud Function mewadahi Ruby sebagai salah satu bahasa pemrograman mereka untuk FaaS.

Namun sayangnya belum banyak framework untuk serverless yang dapat digunakan untuk Ruby. Sehingga kamu harus melakukan deployment sesuai dengan ketentuan dari vendor.

###9. Scala

Scala tidak secara resmi didukung oleh AWS Lamdba. Namun AWS Lambda mendukung Java secara resmi. Kamu dapat menggunakan framework seperti Serverless dan Gordon.

###10. Clojure

Clojure tidak secara resmi didukung oleh AWS Lambda. Namun AWS Lambda mendukung Java secara resmi. Kamu dapat menggunakan framework seperti Serverless dan Gordon.

###11. Kotlin

Kotlin tidak secara resmi didukung oleh AWS Lambda. Namun AWS Lambda mendukung Java secara resmi. Kamu dapat menggunakan framework seperti Serverless dan Gordon.