Belajar Google Cloud Platform Untuk Pemula / Perkenalan tentang Public Cloud

Service, Konsep dan Teknologi Dasar


Pengertian dan Sifat Cloud Computing

Terminologi Cloud Computing mengacu pada sekumpulan resource untuk komputasi yang fleksibel, bisa self-service, dan bisa diakses dari jaringan yang bisa memenuhi permintaan secara dinamis. Services di cloud bersifat fleksibel karena resource dan processing power yang tersedia bisa diatur untuk memenuhi perubahan kebutuhan secara fleksibel dan on the fly, tanpa butuh bantuan IT administrator (sehingga disebut self service).

Sejak zaman dahulu di awal mula computer networking populer, saat diagram network menggambarkan sebuah perusahaan dan komponen-komponennya, telah jadi sebuah standard bahwa kita bisa menggunakan gambar cloud / awan untuk mewakili internet, seperti gambar di bawah


Gambar awan ini merepresentasikan banyak tipe networking yang dibutuhkan untuk menjembatani bagian-bagian dari perusahaan untuk terhubung melalui inetrnet, diabstraksikan sedemikian rupa karena apa yang terjadi di internet adalah di luar kekuasaan perusahaan itu sendiri. Di sinilah terminologi cloud berasal, yaitu semua service yang available untuk diakses melalui jaringan.

Menurut NIST (National Institute of Standards and Technology, cloud computing adalah bentuk layanan yang bisa menyediakan akses melalui jaringan yang tersedia di mana mana, mudah dan bisa sesuai permintaan terhadap sekelompok resource komputasi seperti network, server, storage, aplikasi, dan lainnya yang bisa disediakan secara cepat dengan effort management yang minim.


Evolusi Data Center

Sebelum kita masuk lebih dalam ke cloud computing, kita perlu tilik lagi sejarah dari data center. Data center terdiri dari 3 komponen utama, yaitu Compute, Network dan Storage. Compute mewakili server aplikasi, network mewakili perangkat jaringan, dan storage mewakili server storage yang menyediakan storage yang dibutuhkan oleh server aplikasi.

Bentuk data center paling awal adalah Silo-Based Data Center. Di tahapan ini, 3 komponen data center tersebut dideploy sebagai perangkat fisik yang masing-masing memiliki management terpisah. Contoh, apabila kita butuh 5 server aplikasi, maka kita akan deploy 5 server aplikasi tersebut di 5 server fisik yang terpisah. Pendekatan seperti ini mengakibatkan pemborosan cost, karena kita perlu sewa space lebih banyak di data center kita. Effort yang kita keluarkan pun lebih besar, karena ada banyak perangkat fisik yang perlu kita deploy.

Hal tersebut diatasi dengan bentuk data center kedua, yaitu Virtualized Data Center. Di bentuk ini, server-server aplikasi diubah bentuknya menjadi Virtual Machine-Virtual Machine (VM). Karena berbentuk VM, maka kita bisa deploy beberapa server aplikasi dalam bentuk VM di dalam 1 server fisik dengan bantuan hypervisor. Dengan pendekatan ini, jumlah server fisik yang dideploy lebih sedikit, sehingga cost dan effort kita menjadi berkurang. Tapi kita tetap harus maintain physical server kita. Kita tetap harus manage underlying OS, update patch, dan lainnya. Kita tidak bisa hanya fokus di aplikasi kita.

Sedangkan di bentuk data center terakhir, yaitu cloud-based data center, kita bisa pilih tipe service di cloud yang mana kita bisa fokus di aplikasi yang kita deploy, sedangkan OS, patch, firmware, dan lainnya bisa dimanage oleh cloud provider.

Hal lain yang menyebabkan cloud lebih populer adalah mekanisme pembiayaannya yang bersifat pay as you go, yang berarti kita hanya bayar service yang kita pakai. Apabila service kita matikan, kita tidak bayar lagi. Hal ini memudahkan kita untuk melakukan sizing cost lebih spesifik terhadap workload kita yang dinamis dan fluktiatif.

Adapun menurut Google, Public Cloud harus memiliki 5 sifat di bawah ini :

1. On-demand self-service
Bila dibandingkan dengan pendekatan di on-premise environment, satu hal yang sangat membedakan cloud computing adalah para pengguna bisa deploy dan provision service yang mereka inginkan tanpa butuh bantuan IT Administrator

2. Broad network access
Salah satu sifat yang harus dimiliki oleh Public Cloud adalah ketersediaan servicenya melalui Internet. Para pengguna cloud harus bisa mengakses public cloud melalui internet

3. Resource pooling
Arsitektur fisik cloud dimaintain oleh penyedia public cloud itu sendiri (Contoh, Google) yang mana mereka bisa menyediakan service-service nya ke para pengguna melalui pool of resources yang saling terhubung.

4. Rapid elasticity
Fleksibilitas adalah salah satu hal yang sangat diminati di Public Cloud. Para pengguna bisa deploy atau decommision service-service yang mereka ingin deploy atau mereka ingin matikan dengan cepat. Di beberapa cloud provider, seperti Google Cloud Platform, bahkan menyediakan fitur untuk bisa secara otomatis menambah service-service yang dibutuhkan oleh pengguna saat terjadi peningkatan akses ke aplikasi pengguna.

5. Measured service
Mekanisme billing di cloud menitik-beratkan pada OPEX atau Operational Expense. Artinya, pengguna hanya membayar service yang mereka pakai di cloud. Konsep pembayaran ini disebut juga sebagai Pay as You Go. Apabila service dimatikan, maka para pengguna tidak membayar lagi.


Tipe-tipe Cloud

Pada umumnya, menurut ownership / kepemilikan cloud, cloud dibagi jadi 4 model :

1. Private Cloud

Private cloud adalah jenis cloud yang infrastructure fisiknya dimanage oleh 1 badan organisasi / perusahaan, dan service-servicenya hanya bisa digunakan di dalam badan organisasi / perusahaan tersebut

2. Public Cloud

Public cloud adalah jenis cloud yang infrastructure fisiknya dimanage oleh sebuah cloud provider. Service-service dari public cloud ini dapat diakses oleh semua orang. Cloud provider menyediakan service public cloud melalui internet, contohnya adalah Google Cloud Platform

3. Community Cloud

Community Cloud adalah jenis cloud yang infrastructure fisiknya dimanage oleh beberapa perusahaan / badan organisasi, dan service-servicenya bisa digunakan oleh para organisasi / perusahaan tersebut

4. Hybrid Cloud
Hybrid Cloud adalah sebuah konsep di mana kita menempatkan workload kita di on-premise (physical data center kita sendiri) dan juga di public cloud. Hybrid cloud meliputi penghubungan jaringan antara on-premise data center ke network di public cloud. Biasanya hybrid cloud digunakan untuk solusi disaster recovery atau backup yang mana apabila terjadi failure di on-premise data center kita, kita masih punya workload di public cloud.


Tipe Service di Cloud

Secara umum, cloud menyediakan 3 jenis service utama :

1. IaaS / Infrastructure as a Service
Jenis service ini adalah jenis service yang menyediakan infrastructure service terhadap user. User bisa deploy service ini dan mendapatkan infrastructure service yang mana di atasnya user bisa deploy beragam workload yang user inginkan. Contoh dari infrastructure service adalah compute service/ VM (Kalau di Gogle Cloud disebut sebagai Google Compute Engine), LAN network service (Kalau di Google Cloud disebut sebagai VPC Network) dan storage service (Kalau di Google Cloud disebut sebagai Google Cloud Storage). Dengan IaaS, user bisa lebih fleksibel dalam deploy service-service mereka, tapi user juga memiliki tanggung jawab yang lebih besar dibanding kedua tipe service yang lainnya. Contoh, apabila user deploy Virtual Machine (Google Compute Engine), maka user juga bertanggung jawab terhadap Operating System VM tersebut, patch update, library yang digunakan, driver-driver yang dipakai, dan lainnya sampai ke level aplikasi yang dideploy di dalam VM tersebut.

2. PaaS / Platform as a Service
Jenis service ini adalah jenis service yang menyediakan platform terhadap user, yang mana di platform tersebut user bisa compile source code mereka untuk deploy aplikasi. Di PaaS, user tidak bertanggung jawab terhadap Operating System, library, drivers, dan lainnya. Semua itu dimanage oleh public cloud provider. User hanya bertanggung jawab terhadap source code yang digunakan serta aplikasi yang dideploy. Contoh di Google Cloud adalah Google App Engine

3. SaaS / Software as a Service
Jenis service ini adalah jenis service yang paling mudah dipakai oleh user, karena bentuknya sudah sebagai software yang bisa langsung dipakai. User tidak perlu install / deploy software / aplikasi tersebut, karena semuanya sudah dimanage oleh Public Cloud provider. User hanya bertanggung jawab terhadap pemakaian software tersebut. Contoh di Google adalah Google Maps.

Dengan adanya 3 jenis service di atas, kita bisa simpulkan bahwa semakin ke bawah, tanggung jawab / ownership user terhadap workload semakin berkurang, tapi keleluasaan user dalam melakukan kustomisasi juga semakin berkurang. Hal ini disebut sebagai Shared Responsibility Model

Shared Responsibility Model

Apabila dibandingkan antara IaaS, PaaS dan SaaS, pada umumnya, secara cost, SaaS paling mahal, diikuti oleh PaaS, lalu yang paling cost-effective adalah IaaS. IaaS menjadi paling cost-effective karena di model ini, tanggung jawab user paling besar.


CAPEX vs OPEX

Hal lain yang jadi pembanding utama antara physical data center dan cloud-based data center adalah kecenderungan perusahaan mengguanakan sistem pembiayaan CAPEX atau OPEX.

CAPEX atau Capital Expense adalah sistem pembiayaan yang menekankan pembelian infrastructure di awal waktu, biasanya di awal tahun atau awal fiscal year. Model pembiayaan ini hanya terjadi sekali, yaitu di awal waktu. Hal ini mendorong user untuk dengan cermat mengestimasi berapa server atau perangkat jaringan atau storage yang harus dibeli untuk menanggung workload dalam 1 tahun atau beberapa tahun ke depan. Apabila user tidak cermat, kemungkinan oversize (keadaan di mana infrastruktur yang dibeli jauh lebih banyak dibanding yang dibutuhkan) atau undersize (keadaan di mana infrastruktur yang dibeli jauh lebih sedikit dibanding yang dibutuhkan) sangat bisa terjadi.

OPEX atau Operational Expense adalah sistem pembiayaan yang terjadi berulang, secara terus menerus, biasanya setiap bulan atau setiap beberapa bulan, untuk mengoperasikan workload yang kita miliki. Model pembiayaan cloud pay as you go cocok dengan model OPEX. Dengan model ini, kita bisa lebih spesifik dalam menyediakan cost kita, karena kita hanya bayar untuk service yang kita deploy. Contoh, apabila dalam bulan ini workload kita tidak besar, cukup ditopang oleh 2 VM, maka untuk bulan ini kita hanya bayar untuk 2 VM. Tapi apabila dalam bulan depan ternyata workload kita besar, butuh 3 VM tambahan, maka di bulan depan kita akan bayar untuk total 5 VM.

Di Google Cloud, pay as you go untuk VM adalah dihitung untuk setiap detik sebuah VM dinyalakan, dengan pemakaian minimal 1 menit (di bawah 1 menit, tetap dihitung 1 menit).