Mengenal Arsitektur Serverless di Cloud Computing

Muhammad Arslan 31 Mei 2017

Mengenal Arsitektur Serverless di Cloud Computing

#Mengenal Arsitektur Serverless

Sebelum kita mengenal lebih jauh tentang arsitektur serverless, kita flashback sebentar bagaimana pengembangan aplikasi web klasik dilakukan.

Dulu saat HTML pertama ada, penyedia hosting masih terbatas pada lembaga pemerintahan dan universitas saja. Kemudian munculah bahasa pemrograman yang dapat membuat web menjadi lebih dinamis dan munculah web hosting yang membuat kita dapat memasang source code kita plus konfigurasi database dan ruang di server yang kita sewa. Setelah era tersebut, kita kenal dengan istilah virtual private server dimana kita dapat memiliki infrastruktur sendiri namun secara fisik tidak ada. Setelah VPS hadir, muncullah layanan lain yang dinamakan dengan platform as a service, dimana kita sudah dipasangkan berbagai infrastruktur untuk web kita dengan kelebihan scaling yang lebih mudah dibandingkan web hosting biasa. Dari sedikit cerita tersebut dapat kita perhatikan bawah semakin hari, interaksi kita dengan server semakin berkurang.

Berangkat dari sana, munculah sebuah layanan gaya baru dimana penyedia hosting cukup mewadahi source code saja dan menangani semua masalah server oleh mereka, sehingga pemilik source code tidak perlu berinteraksi terlalu sering dengan server seperti melakukan konfigurasi atau pengaturan jaringan. Dari sinilah konsep serverless mulai digaungkan oleh beberapa vendor besar sebagai konsep teknologi baru namun sebenarnya hanya kemudahan dari teknologi sebelumnya.

Karena lahir di era cloud computing, arsitektur serverless bukan berarti kita tidak menggunakan server sama sekali. Bagaimana mungkin client-server tidak membutuhkakn server? kecuali kalau kita ingin mengimplementasikan client-to-client namun tentu saja hal tersebut cukup kurang efisien untuk skala sangat besar.

Arsitektur serverless membuat kita dapat mengembangkan aplikasi web dengan konfigurasi seminimal mungkin. Less pada istilah serverless bukan berarti tidak sama sekali, tapi mempunyai arti dikurangi. Sehingga ketika kita ingin deploy aplikasi serverless kita, kita tidak perlu berinteraksi banyak melalui jalan seperti SSH atau remote connection lainnya. Kita sudah dimudahkan dengan konsol berbasis web yang disediakan oleh penyedia layanan. Contoh lainnya adalah kita men-deploy suatu kode yang tinggal dihubungkan ke proxy tanpa harus mengotak - atik konfigurasi web server. Atau memilih kode mana yang akan dieksekusi jika suatu antrian sudah didatangi oleh jutaan message yang antri dalam queue service.

Perhatian utama dari arsitektur serverless antara lain:

  • availability, layanan harus tersedia 24/7 tanpa down kecuali terjadi error saat deploy kode
  • scalability, scaling mudah ketika terjadi lonjakan pengunjung dan penggunaan resource serta adanya auto scaling
  • service integration, dapat menggunakan semua layanan yang ada di penyedia layanan arsitektur serverless
  • minimal deployment, konfigurasi minimal tanpa harus masuk settingan inti. misal masuk ke konfigurasi web server secara langsung untuk melakukan proxying terhadap aplikasi
  • cost reduction, mengurangi biaya untuk mengelola infrastruktur sendiri
  • managable, dapat dikelola dengan mudah dan cepat melalui konsol yang mudah digunakan dan kenyamanan yang diutamakan
  • monitoring, monitoring tidak terbatas pada melihat penggunaan resource melalui CLI.

Untuk layanan yang ditawarkan dalam arsitektur serverless antara lain

  • function as a service, (AWS Lambda, Azure Function, Google Cloud Function, IBM Open Whisk)
  • database, (AWS RDS, Azure SQL Database, IBM Cloudant)
  • storage, (AWS S3, AWS Glacier, Azure Blob Storage)
  • notification, (AWS SNS, Azure Notification Hub)
  • message queue, (AWS SQS, Azure Service Bus Queue)
  • stream, (AWS Kinesis Stream, Azure Event Hub)
  • data lake, (AWS Data Lake, Azure Data Lake)
  • machine learning, (AWS Machine Learning, Azure Machine Learning)
  • dan lain - lain

Beberapa vendor yang menyediakan layanan arsitektur serverless antara lain:

  • Amazon Web Service
  • Microsoft Azure
  • Google Cloud
  • IBM

(arslan)