3 Open Source Serverless Platform

2 min read

Open Source Serverless Platform
Open Source Serverless Platform (Ilustrasi: Rio Astamal)

TeknoCerdas.com – Salam cerdas untuk kita semua. Serverless atau juga sering disebut dengan Function as a Service (FaaS) adalah sebuah metode untuk melakukan deployment aplikasi tanpa perlu memikirkan server atau infrastruktur dibelakangnya. Serverless adalah layanan yang menitik beratkan pada pengalaman developer sehingga mereka hanya fokus pada aplikasi tanpa perlu memikirkan scaling. Pada tulisan ini akan dibahas 3 open source Serverless platform.

AWS Lambda adalah pionir untuk layanan Serverless. Beberapa perusahaan mungkin tidak ingin bergantung pada satu vendor saja. Jika itu pilihannya maka platform open source untuk Serverless dapat menjadi alternatif.

Baca Juga:
Mengenal Layanan Serverless dari Berbagai Cloud Provider

Dibalik kompleksitas infrastruktur dibelakang Serverless, umumnya para vendor menggunakan teknologi container untuk menghidupkan layanan mereka.

Berikut ini adalah daftar 3 open source Serverless platform yang dapat dicoba secara bebas dan cuma-cuma.

1. OpenFaaS

OpenFaaS adalah sebuah framework Serverless yang memudahkan developer untuk melakukan deployment fungsi ke Kubernetes baik dan bentuk kode atau sebuah binary. OpenFaaS dibangun menggunakan bahasa pemrograman Go. OpenFaaS memanfaatkan Docker dan Kubernetes untuk menjalankan fungsi yang dibuat. Beberapa fitur utama pada OpenFaaS diantaranya:

  • Fungsi dapat ditulis dengan semua bahasa pemrograman karena fungsi dipaket menggunakan Docker image.
  • Memiliki Web Portal yang memudahkan deployment dan monitoring fungsi-fungsi yang dibuat.
  • CLI tools untuk pengembangan dan deployment fungsi
  • Auto scaling berdasarkan request yang datang

Berikut ini adalah contoh sebuah fungsi penghitung kata pada OpenFaaS yang dipaket sebagai Docker image.

FROM functions/alpine:latest
USER root
ENV fprocess="wc"
USER 1000
CMD ["fwatchdog"]

Image function/alpine:latest adalah image custom buatan dari OpenFaaS yang ditujukan untuk memudahkan pembuatan sebuah fungsi.

Website OpenFaaS dapat ditemukan di https://www.openfaas.com/.

2. Apache OpenWhisk

Apache OpenWhisk adalah Serverless platform open source yang dapat mengeksekusi fungsi dalam skala apapun. Apache OpenWhisk secara otomatis melakukan manage infrastruktur, server dan auto scaling menggunakan Docker. Container orkestrator utama yang didukung adalah Kubernetes. Namun selain itu Apache OpenWhisk juga mendukung Apache Mesos dan Docker Compose.

Apache OpenWhisk dapat menggunakan semua bahasa pemrograman karena fungsi yang dibuat dipaket dalam Docker. Namun secara bawaan Apache OpenWhisk memiliki official runtime yang mendukung banyak bahasa pemrograman diantaranya: NodeJS, Go, Java, Scala, PHP, Python dan Ruby.

Dibawah ini adalah contoh sebuah fungsi PHP menggunakan official runtime dari Apache OpenWhisk.

packages:
  default:
    actions:
      helloPHP:
        code: |
            <?php
            function main(array $args) : array
            {
                $name = $args["name"] ?? "stranger";
                $greeting = "Hello $name!";
                echo $greeting;
                return ["greeting" => $greeting];
            }
        runtime: php:7.3

Baca Juga:
Serverless PHP: Membuat API dengan AWS Lambda dan Runtime Bref

Karena Apache OpenWhisk berada dibawah bendera Apache Foundation maka keberlangsungan project cukup terjamin.

Website Apache OpenWhisk dapat ditemukan di https://openwhisk.apache.org/.

3. Kubeless

Kubeless adalah Kubernetes-native serverles framework yang mendukung eksekusi dari sebuah kode tanpa perlu memikirkan infrastruktur dibelakangnya. Menurut saya cara kerja dan desain dari Kubeless adalah yang paling mirip dengan apa yang dapat ditemukan pada AWS Lambda. Kubeless adalah alternatif untuk layanan FaaS komersial seperti AWS Lambda, Azure Functions dan Google Cloud Functions.

Fitur-fitur utama dari Kubeless adalah:

  • Mendukung runtime bawaan untuk berbagai bahasa pemrograman Javascript, Go, Python, PHP, Ruby, .NET dan Ballerina. Untuk bahasa yang belum didukung dapat menggunakan custom runtime.
  • CLI yang kompatibel dengan AWS Lambda CLI
  • Event trigger menggunakan Apache Kafka
  • Prometheus untuk monitoring pemanggilan Fungsi dan latensinya.
  • Terdapat plugin untuk Serverless Framework

Berikut ini contoh sebuah fungsi pada Kubeless yang ditulis menggunakan Javascript.

def foo(event, context):
    return "hello world"

Sangat mirip dengan kode yang digunakan pada AWS Lambda karena terdapat object event dan context. Website Kubeless dapat ditemukan pada https://kubeless.io/.

Selain 3 open source Serverless platform masih ada beberapa platform Serverless lainnya yang open source. Beberapa diantaranya adalah: