Jumat, 18 November 2016

KONSEP CLOUD COMPUTING PERTEMUAN KE-5

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