LAYANAN CLOUD COMPUTING
Cloud
Computing atau komputasi awan merupakan kombinasi pemanfaatan teknologi
komputer dengan pengembangan berbasis internet. Sebutan cloud sendiri merupakan
sebuah istilah yang diberikan pada teknologi jaringan internet.
Pada
teknlogi komputasi berbasis awan semua data berada dan disimpan di server
internet, begitu juga dengan aplikasi ataupun software yang pada umumnya
dibutuhkan pengguna semuanya berada di komputer server. Sehingga kita tidak
perlu melakukan instalasi pada server. Tetapi pengguna harus terhubung ke
internet untuk bisa mengakses dan menjalankan aplikasi yang berada di server
tersebut.
Dengan
kata lain pengguna bisa saja hanya menyediakan sebuah komputer dan perangkat
jaringan internet untuk bisa terhubung ke server internet dan menyimpan data di
komputer server tanpa harus menyediakan hard-disk yang berkapasitas besar pada
komputernya sendiri untuk menyimpan datanya, begitu juga dengan program
aplikasi katakanlah seperti Microsoft Office, Excel dan lain sebagainya
pengguna bisa menjalankan aplikasi tersebut di server internet sehingga tidak
perlu repot-repot untuk menginstal aplikasi tersebut di komputernya sendiri.
Dengan Kata lain kita tidak perlu investasi server berbentuk fisik, kita tidak
perlu maintain hardware server.
Berdasarkan
jenis layanan-nya, Cloud Computing dibagi menjadi berikut ini:
Dibawah
ini kita bahas, masing-masing jenis layanan Cloud Computing:
Software as a Service (SaaS)
Adalah salah satu layanan dari
Cloud Computing dimana kita tinggal memakai software (perangkat lunak) yang
telah disediakan. User hanya tahu bahwa perangkat lunak bisa berjalan dan bisa
digunakan dengan baik. Contoh: layanan email publik (Gmail, YahooMail, Hotmail,
dsb), social network (Facebook, Twitter, dsb) instant messaging (Yahoo
Messenger, Skype, GTalk, dsb) dan masih banyak lagi yang lain. Dalam perkembangan-nya, banyak perangkat
lunak yang dulu hanya kita bisa nikmati dengan menginstall aplikasi tersebut di
komputer kita (on-premise) mulai sekarang bisa kita nikmati lewat Cloud
Computing. Keuntungan-nya, kita tidak perlu membeli lisensi dan tinggal
terkoneksi ke internet untuk memakai-nya. Contoh: Microsoft Office yang
sekarang kita bisa nikmati lewat Office 365, Adobe Suite yang bisa kita nikmati
lewat Adobe Creative Cloud, dsb.
Platform as a Service (PaaS)
Adalah layanan dari Cloud Computing
kalau kita analogikan dimana kita menyewa “rumah” berikut lingkungan-nya
(sistem operasi, network, database engine, framework aplikasi, dll), untuk
menjalankan aplikasi yang kita buat. Kita tidak perlu pusing untuk menyiapkan
“rumah” dan memelihara “rumah” tersebut. Yang penting aplikasi yang kita buat
bisa berjalan dengan baik di “rumah” tersebut. Untuk pemeliharaan “rumah” ini
menjadi tanggung jawab dari penyedia layanan. Sebagai analogi, misal-nya kita
sewa kamar hotel, kita tinggal tidur di kamar yang sudah kita sewa, tanpa
peduli bagaimana “perawatan” dari kamar dan lingkungan-nya. Yang penting, kita
bisa nyaman tinggal di kamar itu, jika suatu saat kita dibuat tidak nyaman,
tinggal cabut dan pindah ke hotel lain yang lebih bagus layanan-nya. Contoh
penyedia layanan PaaS ini adalah: Amazon Web Service, Windows Azure, bahkan tradisional hosting-pun merupakan
contoh dari PaaS. Keuntungan dari PaaS adalah kita sebagai pengembang bisa
fokus pada aplikasi yang kita buat, tidak perlu memikirkan operasional dari
“rumah” untuk aplikasi yang kita buat.
Infrastructure as a Service (IaaS)
Adalah layanan dari Cloud Computing
dimana kita bisa “menyewa” infrastruktur IT (komputasi, storage, memory,
network dsb). Kita bisa definisikan berapa besar-nya unit komputasi (CPU),
penyimpanan data (storage) , memory (RAM), bandwith, dan konfigurasi lain-nya
yang akan kita sewa. Mudah-nya, IaaS ini adalah menyewa komputer virtual yang
masih kosong, dimana setelah komputer ini disewa kita bisa menggunakan-nya
terserah dari kebutuhan kita. Kita bisa install sistem operasi dan aplikasi
apapun diatas-nya. Contoh penyedia layanan IaaS ini adalah: Amazon EC2, Windows
Azure (soon), TelkomCloud, BizNetCloud, dsb. Keuntungan dari IaaS ini adalah
kita tidak perlu membeli komputer fisik, dan konfigurasi komputer virtual
tersebut bisa kita rubah (scale up/scale down) dengan mudah. Sebagai contoh,
saat komputer virtual tersebut sudah kelebihan beban, kita bisa tambahkan CPU,
RAM, Storage dsb dengan segera.
Web
Services
Seperti yang dijelaskan
sebelumnya bahwa cloud computing sebagai aplikasi-aplikasi yang dapat diakses
melalui internet sebagai servis-servis, maka konsumen bisa secara spesifik
meminta servis-servis cloud melalui web browser atau web services.
Web service bukan
merupakan aplikasi yang dapat berinteraksi secara langsung dengan user.
Melainkan web service memberikan kemampuan untuk berkomunikasi dengan aplikasi
lain yang prosesnya dibutuhkan oleh user secara tidak langsung. Proses yang
digunakan oleh web service untuk berkomunikasi dengan aplikasi lainnya
menggunakan teknologi internet. Dalam menghubungkannya web service menggunakan
sebuah message yang dapat dipahami oleh bahasa pemrograman yaitu Extensible
Markup Language (XML).
Web services dapat
dilihat sebagai sebuah cara mendesain interaksi yang fleksibel lintas
aplikasi-aplikasi dan lintas batas-batas yang tegas. Terminologi web services
menunjukkan sekelompok teknologi yang memperkenankan proses-proses bisnis atau
informasi untuk diakses melalui internet. Web services didesain untuk mendukung
interaksi antar aplikasi. Teknologi ini memperkenankan aplikasi-aplikasi
berkomunikasi tanpa bantuan manusia.
SOA
(Service Oriented Architecture)
(service oriented
architecture, arsitektur berorientasi layanan) adalah suatu gaya arsitektur
sistem yang membuat dan menggunakan proses bisnis dalam bentuk paket layanan
sepanjang siklus hidupnya. SOA juga mendefinisikan dan menentukan arsitektur
teknologi informasi (TI) yang dapat menunjang berbagai aplikasi untuk saling
bertukar data dan berpartisipasi dalam proses bisnis. Fungsi-fungsi ini tidak
terikat dengan sistem operasi dan bahasa pemrograman yang mendasari
aplikasi-aplikasi tersebut.
SOA membagi fungsi-fungsi
menjadi unit-unit yang berbeda (layanan), yang dapat didistribusikan melalui
suatu jaringan dan dikombinasikan serta digunakan ulang untuk membentuk
aplikasi bisnis. Layanan-layanan ini saling berkomunikasi dengan mempertukarkan
data antar mereka atau dengan mengkoordinasikan aktivitas antara dua atau lebih
layanan. Konsep SOA sering dianggap didasari atau berkembang dari konsep-konsep
yang lebih lama dari komputasi terdistribusi dan pemrograman modular.
Interoperabilitas
Interoperabilitas
adalah kapabilitas dari suatu produk atau sistem -- yang antar mukanya
diungkapkan sepenuhnya -- untuk berinteraksi dan berfungsi dengan produk atau
sistem lain, kini atau di masa mendatang, tanpa batasan akses atau
implementasi.
Interoperabilitas merupakan kemampuan berbagai
ragam sistem untuk bekerja sama dan kemampuan sebuah sistem untuk bekerja atau
digunakan oleh sistem lain (Merriam Webster).
Interoperabilitas adalah sebuah kooperasi antar
obyek yang berbeda untuk memungkinkan terjadinya pertukaran data/informasi
diantara mereka. Model interoperabilitas bisa dalam bentuk kaku (tightly) atau
bebas (loosely).
Jadi Interoperabilitas adalah dimana suatu
kemampuan berbagai ragam sistem atau aplikasi untuk bekerja sama dan bisa
berinteraksi dengan aplikasi lainnya yang berbeda untuk memungkinkan terjadinya
pertukaran data/informasi melalui suatu protokol yang disetujui bersama, lewat
bermacam-macam jalur komunikasi, biasanya lewat network TCP/IP dan protokol HTTP
dengan memanfaatkan file XML.
Karakteristik
Interoperabilitas berdasarkan level;
Level
hardware: bagaimana perbedaan karakteristik (fisis, elektronis)
komponen-komponen hardware dijembatani dalam rangka mewujudkan suatu
fungsi/tujuan tertentu
Contoh: interaksi antara CPU – RAM – disk à interoperabilitas diwujudkan
dengan cache dan buffer
Level network: bagaimana perbedaan hardware+OS
bisa dijembatani, sehingga dua komputer yang berbeda bisa saling berkomunikasi
Pendekatan: protokol,
standarisasi
Level software: bagaimana menjembatani
perbedaan format data dan bahasa pemrograman
Interoperabilitas data
Interoperabilitas
komunikasi aktif
Komposabilitas
Komposabilitas bila
suatu metode desain memungkinkan komponen-komponen desain (reusable) yang ada
untuk dipasang ke dalam sebuah sistem baru, maka metode desain akan
menghasilkan suatu solusi modular yang tidak berulang.
REST
REST (REpresentational
State Transfer) adalah suatu arsitektur metode komunikasi yang sering
diterapkan dalam pengembangan layanan berbasis web.
Arsitektur REST, yang umumnya dijalankan via
HTTP (Hypertext Transfer Protocol), melibatkan proses pembacaan laman web
tertentu yang memuat sebuah file XML atau JSON. File inilah yang menguraikan
dan memuat konten yang hendak disajikan. Setelah melalui sebuah proses definisi
tertentu, konsumen akan bisa mengakses antarmuka aplikasi yang dimaksudkan.
Kekhasan REST terletak pada interaksi antara
klien dan server yang difasilitasi oleh sejumlah tipe operasional (verba) dan
Universal Resource Identifiers (URIs) yang unik bagi tiap-tiap sumberdaya.
Masing-masing verba – GET, POST, PUT dan DELETE – memiliki makna operasional
khusus untuk menghindari ambiguitas.
REST kerap dipergunakan dalam mobile
application, situs web jejaring sosial, mashup tools, dan automated business
processes.
Arsitektur REST yang decoupled (terpisah) serta
beban komunikasi yang ringan antara produsen dan konsumen membuatnya populer di
dunia cloud-based API, seperti yang disajikan oleh Amazon, Microsoft, dan
Google.
Layanan berbasis web yang menggunakan
arsitektur REST semacam itu dinamakan RESTful APIs (Application Programming
Interfaces) atau REST APIs.
Cloud
Stack
CloudStack
merupakan platform software yang mengumpulkan sumberdaya-sumberdaya komputasi
menjadi sebuah Cloud IaaS (infrastructure as a service). Bayangkanlah Amazon
EC2 yang dapat diinstall di data center pribadi kita.
Service Offering - mirip Amazon EC2
Dengan
CloudStack, kita bisa memberikan layanan cloud ke user kita.. Mereka dapat
melaunch Server sesuai keinginan asalkan masih di batas kuota dan kapasitas
sistem.
Pilihan Template VM
Sebenarnya
komponen utama CloudStack adalah aplikasi web berbasis Java yang melakukan
provisioning ke software hypervisor berupa XenServer, VMWare, ataupun KVM.
Sebuah Cluster dalam terminologi CloudStack adalah sekumpulan host yang
dikendalikan oleh hypervisor yang seragam.
Apa
yang didapat dari CloudStack antara lain :
- · Manajemen sentral berbasis web berfitur Ajax untuk VM-VM berbasis Xen, VMWare vSphere, ataupun KVM
- · Repository tempat menyimpan template image VM yang dapat diintegrasikan dengan OpenStack Swift
- · Konfigurasi offering VM : user dapat melaunch VM dengan memilih paket yang di dalamnya sudah terkonfigurasi ukuran memory, banyaknya CPU.
- · Integrasi dengan Citrix Netscaler untuk Elastic load balancing dan Elastic IP
- · Load balancing biasa dengan Virtual Router atau F5 BigIP
- · Konfigurasi Firewall dan NAT untuk Virtual Router ataupun Jupiter SRX
- · High Availability untuk VM yang dijalankan di CloudStack (Jika ada masalah dengan salah satu Host, CloudStack akan memboot VM tersebut di Host yang masih sehat dengan asumsi VM menggunakan virtual hard disk yang tersimpan di shared storage)
- · Provisioning VLAN
Konsep Deployment Umum Cloudstack
CloudStack
dideploy dengan menyediakan dua jenis storage, primary dan secondary. Secondary
Storage digunakan untuk menyimpan template VM atau ISO sebagai image dasar
pembuatan virtual machine. Primary storage digunakan untuk menyimpan data hard
disk milik VM-VM. CloudStack sendiri menyimpan informasi di database MySQL.
Dianjurkan untuk menyediakan 3 jalur jaringan pada semua host : jaringan publik
internet, jaringan privat (LAN), dan jaringan khusus manajemen dan storage.
Salah satu konfigurasi deployment CloudStack
Aspek
penting dalam high availability ialah moda failure yang disupport. Di dalam
sistem di atas ada beberapa moda failure :
- · Host Failure : kegagalan atau kerusakan pada host yang menjadi bagian dari Cluster
- · Management Server Failure : kegagalan atau kerusakan pada server CloudStack
- · Primary Storage Failure : kegagalan pada penyimpanan data utama (virtual hard disk)
- · Secondary Storage Failure : kegagalan pada penyimpanan template atau ISO
- · Management Server MySQL database failure : kegagalan pada database CloudStack
Mekanisme host failure Failover pada CloudStack
Moda
Failure yang ditangani oleh CloudStack ialah Host Failure. Secondary Storage
failure ditangani oleh infrastruktur OpenStack Swift, yang menyimpan image
secara rendundan pada cluster storagenya sendiri. Management Server Failure
dapat ditangani dengan menjalankan CloudStack pada dua host yang diberi
load-balancing. Mgmt Server MySQL database failure ditangani dengan memasang
DRBD pada storage mysql atau mengkonfigurasi MySQL secara master-slave.
Digabungkan
dengan High Availability Storage System (CloudStack tidak menyediakan layanan
storage primary, hanya interface ke sistem storage berbasis iSCSI atau NFS)
maka CloudStack dapat menjadi platform yang cukup robust untuk deployment sistem.
Tidak ada komentar:
Posting Komentar