Mengenal Berbagai Tools untuk Membangun Aplikasi Berarsitektur Serverless

Pendahuluan

Serverless memang masih belum lazim di khalayak IT Indonesia. Namun perlahan tapi pasti, rekan - rekan IT yang sudah mulai banyak menggunakan virtual private server, platform as a service, dan layanan cloud lainnya mungkin akan mulai melirik sesuatu yang dinamakan dengan serverless architecture ini.

Memang vendor besar yang baru menyediakan masih didominasi oleh Amazon Web Service, Microsoft Azure, dan Google Cloud Platform. Namun walaupun baru tiga yang secara resmi membuka layanan ini, berbagai tools untuk membangun aplikasi serverless ini sudah bermunculan.

Berbagai Framework Arsitektur untuk Serverless

Berikut adalah berbagai tools untuk memulai pembuatan aplikasi serverless dengan bahasa pemrograman yang kamu sukai:

Azure Function Tool

Azure Function Tool adalah peralatan untuk local development dalam membuat, menguji, menjalankan, debugging, dan deploy kode kita ke Azure Function Service.

Turtle

Turtle adalah toolkit untuk membangun aplikasi serverless yang bersifat event driven. Kamu dapat membuat sebuah function Node.js yang akan di-deploy ke berbagai layanan FaaS.

  • Github url: https://github.com/iopipe/turtle/
  • Github Stars: 145
  • Bahasa Pemrograman: Node.js
  • Sistem Operasi: Windows, OSX, Linux, BSD
  • FaaS Service: AWS Lambda, Azure Function, Google Cloud Function

Lambada

Lambada dapat membantu kamu membuat REST API berbasis serverless dengan menggunakan bahasa Java. Lambada menggunakan JAX-RS API dan dapat men-deploy aplikasi kamu secara mudah ke AWS Lambda dan API Gateway

Shep

Shep adalah toolkit untuk membangun aplikasi serverless yang dapat di-deploy di AWS API Gateway dan AWS Lambda. Kamu dapat menggunakan Node.js untuk membuat aplikasi serverless menggunakan Sheep.

  • Github url: https://github.com/bustle/shep
  • Github Stars: 200
  • Bahasa Pemrograman: Node.js
  • Sistem Operasi: Windows, OSX, Linux, BSD
  • FaaS Service: AWS Lambda

Sparta

Sparta adalah toolkit untuk membangun aplikasi serverless yang dapat di-deploy di AWS API Gateway dan AWS Lambda. Kamu dapat menggunakan Go untuk membuat aplikasi serverless menggunakan Sparta.

Selain itu kamu juga dapat mengintegrasikan S3 dan SNS sebagai event source, dan dapat juga membantu kamu men-deploy static website di S3.

Python Lambda

Python Lambda adalah toolkit untuk membangun aplikasi serverless yang dapat di-deploy di AWS Lambda menggunakan bahasa pemrograman Python.

Deep

Deep adalah toolkit untuk membangun aplikasi serverless yang dapat di-deploy di berbagai Faas Service. Kamu dapat menggunakan Node.js untuk membuat aplikasi serverless menggunakan Deep.

Lambdoku

Lambdoku adalah toolkit untuk membangun aplikasi serverless yang memberikan pengalaman seperti menggunakan Heroku Toolbet sat menggunakan AWS Lambda.

AWS Lambda Go

AWS Lambda Go adalah toolkit untuk membangun aplikasi serverless dengan menggunakan Go di AWS Lambda.

Kappa

Kappa adalah toolkit untuk membangun aplikasi serverless yang dapat di-deploy di berbagai AWS Lambda menggunakan bahasa pemrograman Python. Namun kamu dapat mengintegrasikannya dengan berbagai event source seperti Cloudwatch, S3, dan SNS. Kamu juga dapat mengatur IAM Role melalui Kappa.

Wsk

Wsk adalah toolkit untuk membangun aplikasi serverless yang di-deploy di Apache OpenWhisk. Sebuah proyek open source yang dapat membantu kamu membangun layanan Faas Sendiri. Wsk sudah terintegrasi di dalam proyek Apache OpenWhisk ini.

IronFunction

Iron Function adalah toolkit untuk membangun aplikasi serverless yang di-deploy di Iron.IO. Sebuah layanan FaaS yang dikenal dengan IronMQ-nya.

Gordon

Gordon adalah sebuah toolkit yang dapat membantu kamu membangun aplikasi serverless yang memberikan pilihan bahasa pemrograman cukup banyak. Gordon ditujukan untuk membangun aplikasi serverless menggunakan AWS Lambda dan AWS Cloud Formation.

Gordon juga memiliki integrasi dengan API Gateway, Cloudwatch, DynamoDB, Kinesis Stream, dan S3. Selain itu kamu dapat melakukan development secara lokal menggunakan bahasa pemrograman kesukaan kamu.

  • Github url: https://github.com/jorgebastida/gordon
  • Github Stars: 1847
  • Bahasa Pemrograman: Python, Node.js, Go, Java, Kotlin, Scala
  • Sistem Operasi: Windows, OSX, Linux, BSD
  • FaaS Service: AWS Lambda

Claudia.js

Claudia.js adalah toolkit untuk membangun aplikasi serverless yang dapat di-deploy di AWS Lambda dan API Gateway. Kamu dapat menggunakan Node.js untuk membuat aplikasi serverless menggunakan Claudia.js.

AWS Chalice

Chalice adalah toolkit untuk membangun aplikasi serverless yang dapat di-deploy di AWS Lambda dan API Gateway. Kamu dapat menggunakan Python untuk membuat aplikasi serverless menggunakan Chalice.

Chalice ini memiliki pattern yang mirip dengan Flask. Salah satu web framework populer di Python.

Zappa

Zappa adalah toolkit untuk membangun aplikasi serverless yang dapat di-deploy di AWS Lambda dan API Gateway. Kamu dapat menggunakan Python untuk membuat aplikasi serverless menggunakan Zappa.

Zappa memiliki dukungan terhadap berbagai layanan AWS seperti VPC, S3, SNS, SQS, Cloudwatch, DynamoDB, dan Kinesis Stream. Selain itu Zappa juga dapat membantu kamu menjalankan asynchronous function.

Uniknya, Zappa ini dapat membantu kamu menulis sebuah service yang ditulis menggunakan web framework berbasis WSGI seperti Flask, Django, Falcon, dan Bottle. Jadi bila framework serverless lain menggunakan function Python biasa dan mendefinisikannya di file konfigurasi. Berbeda dengan Zappa, kamu dapat membuat beberapa endpoint, misalnya ditulis menggunakan Flask, dan di-deploy ke satu lambda. Sehingga dalam satu lambda bisa mempunya sub-endpoint.

Apex

Apex adalah toolkit untuk membangun aplikasi serverless yang dapat di-deploy di AWS Lambda dan API Gateway. Kamu dapat menggunakan berbagai bahasa pemrograman untuk membuat aplikasi serverless menggunakan Apex.

Apex memiliki dukungan terhadap VPC, dan beberapa layanan AWS yang diintegrasikan dengan function yang kamu buat.

  • Github url: https://github.com/apex/apex
  • Github Stars: 5507
  • Bahasa Pemrograman: Python, Node.js, Go, Java, Rust, Clojure
  • Sistem Operasi: Windows, OSX, Linux, BSD
  • FaaS Service: AWS Lambda

Serverless Framework

Framework serverless yang dikembangkan oleh Serverless Inc. ini merupakan salah satu framework yang sangat populer dikalangan serverless architecture.

Serverless Framework adalah toolkit untuk membangun aplikasi serverless yang dapat di-deploy di berbagai FaaS. Kamu dapat menggunakan berbagai bahasa pemrograman untuk membuat aplikasi serverless menggunakan FaaS.

Selain itu, kehebatan framework yang satu ini adalah dukungan terhadap integrasi berbagai layanan yang ada di suatu provider. Misal bila kita ingin membuat aplikasi serverless di Azure, kamu dapat mengintegrasikannya dengan Service Bus Queue, Blob Storage, Notification Hub, Azure SQL Database, dan lainnya. Begitupun bila kita membidik AWS dan Google Cloud Platform.

Serverless Framework ini merupakan salah satu framework yang paling niat dikembangkan oleh komunitas dan kontributornya karena memiliki visi yang sangat kuat. Selain itu dokumentasinya sangat lengkap dan mudah dibaca. Kemudian Serverless Framework pun memiliki plugin yang kompatibel dengannya dalam jumlah yang sangat banyak.

Saat ini komunitasnya masih terpusah di Amerika Serikat, Eropa, dan Jepang. Dan mungkin popularitasnya ini disebabkan namanya sendiri yang merupakan nama dari arsitektur serverless itu sendiri sehingga selalu muncul di halaman hasil pencarian Google.

  • Github url: https://github.com/serverless/serverless
  • Github Stars: 17174
  • Bahasa Pemrograman: Python, Node.js, Java, Scala
  • Sistem Operasi: Windows, OSX, Linux, BSD
  • FaaS Service: AWS Lambda, Azure Function, Google Cloud Function, IBM OpenWhisk

Penutup

Dari berbagai Tools diatas yang telah saya catat, paling banyak bahasa pemrograman yang digunakan untuk serverless architecture ini adalah Node.js. Dan Amazon Web Service adalah salah satu layanan yang banyak digemari oleh para pembuat framework untuk membangun aplikasi berarsitektur serverless.

ridwanbejo

Read more posts by this author.