Fitur - Fitur Umum yang Dimiliki Penyedia Cloud Computing

Muhammad Arslan 24 Agustus 2017

Fitur - Fitur Umum yang Dimiliki Penyedia Cloud Computing

Cloud Computing adalah salah satu hal yang cukup memberi pengaruh besar dalam pembangunan aplikasi web dan mobile yang juga dapat membantu kita menangani jumlah traffic yang masif. Dalam memberdayakan cloud computing, kamu bisa membangunnya sendiri yang tentu butuh ongkos dan tenaga yang tidak murah. Atau menggunakan penyedia cloud yang sudah teruji kehandalannya namun harus merogok koceh juga yang walaupun belum tentu murah.

Dalam cloud computing, developer diberi harapan dengan adanya less configuration dan less manage terhadap suatu infrastruktur yang menyokong solusi mereka. Umumnya penyedia cloud hanya menyediakan virtual private server saja. Namun ada juga yang mengembangkan layananya hingga beragam layanan yang membuat developer tidak harus reinvent the wheel dan dont repeat yourself.

Seperti kita tahu vendor besar seperti IBM, Microsoft, Google, Alibaba Cloud, dan Amazon Web Service sudah menyediakan berbagai layanan yang membuat developer semakin kepincut untuk menggunakannya dalam proyek mereka. Namun bagi kamu yang belum pernah tahu sama sekali ada apa aja sih layanan yang disediakan cloude computing vendor. Kita bisa lihat disini.

###1. Virtual Private Server

Virtual private server menawarkan spesifikasi yang cukup beragam. Ada instance yang memiliki RAM tinggi, ada yang memiliki prosesor tinggi, dan ada juga yang memiliki ukuran harddisk lebih besar.

Biasanya kita dapat melakukan perubahan plan menjadi skala yang lebih besar atau menjadi lebih kecil. Perubahan dilakukan apabila kebutuhan yang diharapkan semakin meninggi.

Contoh: Azure VM, AWS EC2, GCP Compute Engine

###2. File Storage

Tak elok rasanya bila kita ingin menyimpan jumlah data yang masif namun harus membuat instance baru dari server yang kita inginkan. Vendor biasanya menyediakan layanan yang dapat menampung berbagai file dari customer-nya tanpa harus membuat instance server baru dan memiliki ukuran yang cukup besar.

Selain itu colocation juga diharapkan menjadi salah satu fitur built-in terhadap suatu file storage yang disediakan cloud vendor.

Contoh: Azure Blob Storage, AWS S3, AWS Glacier , GCP Cloud Storage

###3. Relational Database

Ini yang paling menarik, untuk mendapatkan high availbility, developer biasanya harus repot dalam konfigurasi replikasi database ataupun konfigurasi cluster database. Belum lagi bila harus melakukan vertical scaling terhadap ukuran server.

Vendor seharusnya menyediakan layanan relational database management system ini untuk menangani masalah high availbility dan masalah keamanan. Diharapkan juga bila ada update dari penyedia RDBMS, vendor dapat menanganinya secara sigap, tanpa harus menunggu update terlalu lama.

Contoh: Azure SQL Database, AWS Aurora, AWS Relational Database Service, GCP Cloud SQL

###4. NoSQL Database

Tidak berbeda jauh dengan relational database, hanya saja yang disediakan adalah berbagai nosql database dengan segala paradigma. Ada yang dapat menyediakan untuk berupa dokumen, ada juga yang berupa key value, ada juga yang berupa graf.

Kelebihannya dibandingkan dengan on-premise tentu adalah kita tidak perlu mengkonfigurasi ulang database tersebut. Terlebih kita dapat memperbaharui spesifikasi server yang digunakan untuk nosql database tersebut dan biasanya terintegrasi dengan layanan lain yang dimiliki oleh cloud vendor tersebut.

Contoh: AWS DynamoDB, IBM Cloudant, Azure DocumentDB, GCP Cloud BigTable, GCP Cloud DataStore

###5. Message Queue

Message queue sendiri adalah sebuah layanan dimana kamu dapat dengan mudah mengirimkan sejumlah pesan yang akan diproses belakangan. Pesan akan ditampung dalam rentang waktu tertentu dan memiliki ukuran tertentu. Dan untuk mengolahnya, kamu harus memiliki worker yang dipasang di tempat terpisah atau menggunakan layanan worker as a service yang dimiliki oleh cloud vendor.

Contoh: AWS Kinesis Stream, Azure Event Hub, Azure HDInsight Kafka, AWS SQS, AWS Service Bus Queue

###6. Platform As A Service

Bila untuk deployment seringkali harus menyiapkan sendiri infrastruktur untuk aplikasi web kita, maka ada juga cloud vendor yang menyediakan setumpuk infrastruktur yang dibutuhkan dalam satu tempat. Biasa dinamakan dengan application service atau platform as a service.

Di dalamnya sudah terdapat sistem operasi, web server, bahasa pemrograman yang dibutuhkan, standard library, dan tools - tools lain yang terkait dengan kebutuhan aplikasi web kita. Selain itu scaling-nya pun lebih mudah dilakukan karena kita tinggal upgrade plan saja tanpa harus melakukan konfigurasi ulang mesin server kita.

Contoh: GCP App Engine, Azure App Service, AWS ElasticBeanstalk, Heroku, Redhat Openshift

###7. Machine Learning

Machine learning akan memakan sejumlah dataset yang kamu miliki dan mengolahnya dengan algoritma tertentu untuk menentukan suatu prediksi pada input data yang dia respon. Tentu cukup banyak usaha yang harus dikeluarkan bila harus membuat infrastruktur sendiri. Belum lagi menampung dataset yang bejibun jumlahnya hingga petabytes.

Biasanya cloud vendor menyediakan layanan machine learning untuk domain klasifikasi, clustering, dan frequent item set. Ada juga yang menyediakan layanan lain untuk deep learning dalam pengolahan gambar untuk menentukan objek apa saja yang terdapat di dalam gambar itu.

Selain machine learning ada juga cloud vendor yang menyediakan layanan pendukung seperti image processing dan computer vision.

Contoh: AWS ML, Azure ML, BigML, GCP Machine Learning Engine

###8. Caching

Tidak semua data harus diakses langsung ke database apalagi yang sering diambil. Misal seperti statistik user atau papan skor sebuah permainan. Cukup sekali load dan simpan di sebuah tempat yang bernama caching.

Enaknya lagi caching memiliki sistem kadaluwarsa yang bila sudah kadaluwarsa kita tinggal ambil lagi data terbaru dan simpan di dalam caching. Alhasil kita tak perlu ribet - ribet menulis ulang banyak query dan cukup gunakan caching untuk menghemat tenaga yang dibutuhkan.

Bentuknya biasanya key-value dimana key adalah nama informasi yang akan disimpan, dan value adalah struktur sederhana atau kompleks yang akan disimpan di dalam baris caching.

Contoh: AWS Elastic Cache, Azure Redis Cache, GCP Cloud Storage

###9. Container Service

Saat ini microservice sedang booming - booming-nya. Dimana kita dapat men-deploy sub aplikasi kita di dalam sebuah container yang dinamakan dengan Docker. Dengan menggunakan Docker, sub aplikasi tertentu dapat di-scale secara khusus dan tidak perlu mengubah keseluruhan sistem, sehingga sub aplikasi lain yang tidak perlu di-scale tetap pada spesifikasi sebelumnya.

Untuk melakukan hal ini memang cukup banyak teknik yang diperlukan, namun beberapa cloud vendor sudah mempermudah urusan ini dan kamu cukup menyediakan source code dan beberapa definisi, dan tinggal upload saja di cloud vendor tersebut.

Untuk scaling pun cukup mudah dilakukan karena kamu sudah disediakan panel yang lebih menarik.

Contoh: AWS Elastic Container Service, Azure Container Service, GCP Container Engine

###10. Email dan Push Notification

Notifikasi tentu diperlukan sebuah aplikasi untuk mengabari user bila ada informasi tertentu. Ada yang masih menggunakan e-mail ada juga yang memberitahu informasi terbaru langsung ke handphone milik user baik itu berbasis Android ataupun iOS. Ada juga yang langsung mengirim notifikasi lewat SMS ataupun langsung ke laptop melalui desktop notification.

Teknik tersebut dinamakan dengan push notification, dimana kamu dapat mengirim pesan tertentu langsung ke device milik user melalui metode tertentu.

Contoh: AWS SNS, AWS SES, Azure Notification Hub, Google Firebase

###11. Big Data

Jangan meremehkan big data walaupun data yang kamu kumpulkan cuma tiga kolom. Kalau data tersebut ada 1 milyar baris, bagaimanakah cara kamu menyimpan dan mengelolanya? apakah disimpan di dalam MySQL hingga biaya membengkak karena harus membuat cluster? atau diubah menjadi file tertentu dan menyimpanya di atas storage yang kompatibel dengan HDFS?.

Di beberapa cloud vendor, bila kita menyimpan file di layanan storage mereka, biasanya sudah terintegrasi dengan layanan Hadoop yang mereka miliki. Begitu pula berbagai aplikasi yang berjalan diatas Hadoop disediakan juga diatasnya hanya dengan beberapa klik saja.

Bila kita harus membangunnya tentu perlu banyak hal yang harus dilalui. Dan tentu saja scaling-nya pun perlu waktu dan dana lebih dibandingkan bila kita mengandalkan cloud vendor.

Contoh: Azure DataLake, Azure HDInsight, AWS Athena, AWS Elastic Map Reduce, GCP BigQuery, GCP Cloud DataProc

###12. Content Delivery Network

Content Delivery Network adalah sebuah infrastruktur dimana kamu dapat menyimpan sejumlah static file dari aplikasi yang kamu miliki, dan akan dikloning ke beberapa data center milik cloud vendor. Kemudian user dari aplikasi yang kamu kembangkan akan mengakses static file yang terdekat dengan lokasi dimana data center itu berada.

Static file disini bisa berupa file Javascript, CSS, JPEG, Gif, dan lainnya. Dengan demikian respon aplikasi kamu pun akan semakin gegas dan tidak menunggu waktu lama untuk memuat semua static file.

Contoh: AWS CDN, Azure CDN, GCP Cloud CDN

(arslan/gcp/aws/azure)