CLOUD COMPUTING
Semua orang berbicara tentang "cloud computing" Tapi apa artinya?
Dalam bahasa Indonesia, "cloud" berarti awan dan "computing" berarti komputasi. Semakin banyak, kita melihat teknologi bergerak ke cloud. Ini bukan hanya mode-pergeseran dari model perangkat lunak tradisional ke Internet tapi sudah melewati masanya. Penggunaan Internet mendapatkan masanya selama 10 tahun terakhir. Dekade berikutnya komputasi awan menjanjikan kita cara baru untuk berkolaborasi dengan apapun melalui perangkat mobile.
Jadi apa itu cloud computing? Intinya, komputasi awan adalah sejenis outsourcing program komputer. Dengan menggunakan komputasi awan, pengguna dapat mengakses perangkat lunak dan aplikasi dari manapun mereka membutuhkannya, sementara sedang dipandu oleh pihak luar - di "awan." Ini berarti bahwa mereka tidak perlu khawatir dengan hal-hal seperti penyimpanan dan daya, mereka hanya bisa menikmati hasil akhirnya.
Hidup saat sebelum Cloud Computing
Aplikasi bisnis tradisional selalu sangat rumit dan mahal. Jumlah dan variasi perangkat keras dan perangkat lunak yang dibutuhkan untuk menjalankannya butuh sekali pertimbangan. Kita memerlukan seluruh tim ahli untuk menginstal, mengkonfigurasi, menguji, menjalankan, mengamankan, dan memperbaruinya. Bila kita membandingkan usaha ini dengan puluhan atau ratusan aplikasi, mudah untuk melihat mengapa perusahaan terbesar dengan departemen TI terbaik tidak mendapatkan aplikasi yang mereka butuhkan. Usaha kecil dan menengah umumnya tidak memiliki peluang karena keterbatasannya.
Cloud Computing adalah cara yang lebih baik
Dengan komputasi awan, kita dapat menghilangkan kekhawatiran kita yang akan datang tiba-tiba dengan menyimpan data kita sendiri, hal tersebut dapat kita lakukan karena kita tidak mengelola perangkat keras dan perangkat lunak sendiri karena hal tersebut menjadi tanggung jawab vendor berpengalaman. Kita hanya membayar untuk apa yang akan kita butuhkan, pembaruan otomatis, dan penskalaan naik atau turunnya output dari penggunaan.
Fitur-fitur yang dimiliki 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, kita 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 kita yang belum
pernah tahu sama sekali ada apa aja sih layanan yang disediakan cloude
computing vendor. Kita bisa lihat disini.
1. Virtual Private Server (VPS)
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 kita dapat
dengan mudah mengirimkan sejumlah pesan yang akan diproses belakangan. Pesan
akan ditampung dalam rentang waktu tertentu dan memiliki ukuran tertentu. Dan
untuk mengolahnya, kita 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
kita 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. Caching memiliki kelebihan yaitu 4 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 kita cukup menyediakan source code dan beberapa
definisi, dan tinggal upload saja di cloud vendor tersebut. Untuk scaling pun cukup mudah
dilakukan karena kita 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 kita 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 kita kumpulkan
cuma tiga kolom. Kalau data tersebut ada 1 milyar baris, bagaimanakah cara kita menyimpan dan mengelolanya? Di beberapa cloud vendor, bila kita
menyimpan file di layanan storage mereka,
biasanya sudah terintegrasi dengan layanan Hadoop yang mereka (vendor) 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 (CDN)
Content Delivery Network adalah sebuah infrastruktur dimana kita dapat
menyimpan sejumlah static file dari aplikasi yang kita miliki,
dan akan dikloning ke beberapa data center milik cloud
vendor. Kemudian user dari aplikasi yang kita 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 kita pun akan
semakin gegas dan tidak menunggu waktu lama untuk memuat semua static
file.
Contoh: AWS CDN, Azure CDN, GCP Cloud CDN.
Referensi :
https://www.academia.edu/5726092/Makalah_Cloud_Computing
https://www.slideshare.net/p188/makalah-cloudcomputing
Comments
Post a Comment