Mengembangkan Solusi Cloud dengan PaaS

75
E-Book Cloud Computing Mengembangkan Solusi Cloud dengan PaaS ver. : 1. 3 Dikembangkan oleh : Email : [email protected] Phone : 021-985 644 17 Kode : MRVCC01

description

Mengembangkan Solusi Cloud dengan PaaS "dengan menggunakan Meruvian MIP -Yama- sebagai studi kasus"

Transcript of Mengembangkan Solusi Cloud dengan PaaS

Page 1: Mengembangkan Solusi Cloud dengan PaaS

E-Book Cloud Computing

Mengembangkan Solusi Cloud

dengan PaaS

ver. : 1. 3

Dikembangkan oleh :

Email : [email protected]

Phone : 021-985 644 17

Kode : MRVCC01

Page 2: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

Daftar IsiDaftar Isi .......................................................................................................................................... 2

Bagian 1.Cloud Computing 1.1 Pengertian Cloud Computing ..................................................................................................... 31.2 Tradisional Hosting vs Cloud .................................................................................................... 31.3 Manfaat Cloud Computing ......................................................................................................... 61.4 Resiko Cloud Computing ............................................................................................................ 7

Bagian 2. Jenis-jenis Layanan Cloud 2.1 IaaS (Infrastructure as a Service) ................................................................................................ 92.2 PaaS (Platform as a Service) ....................................................................................................... 10 2.2.1 OpenShift..................................................................................................................... ...... 10 2.2.2 Windows Azure ......................................................................................................... ....... 15 2.2.3 CloudFoundry .................................................................................................................... 19 2.2.4 Jelastic ........................................................................................................................ ....... 21 2.2.5 CloudBees .................................................................................................................. ....... 24 2.2.6 DotCloud .................................................................................................................... ....... 272.3 SaaS (Software as a Service) ...................................................................................................... 29

Bagian 3. Cloud Database 3.1 Pengertian Cloud Database ......................................................................................................... 313.2 SQL ............................................................................................................................................ 313.3 NoSQL ........................................................................................................................................ 34

Bagian 4. Implementasi PaaS 4.1 Yama Overview ........................................................................................................................... 384.2 Deploy Yama di OpenShift ......................................................................................................... 394.3 Deploy Yama di CloudFoundry .................................................................................................. 454.4 Deploy Yama di Jelastic .............................................................................................................. 484.5 Deploy Yama di DotCloud .......................................................................................................... 524.6 Deploy Yama di Azure ................................................................................................................ 584.7 Deploy Yama di CloudBees ........................................................................................................ 71

Lampiran A : Pengantar Meruvian Integrated Platform(MIP) versi.1.0 .................................. 75

Created by Meruvian Cloud Team 2

Page 3: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

Bab 1

Cloud Computing

1.1 Pengertian Cloud Computing

Cloud Computing merupakan sebuah paradigma baru dalam dunia komputasi.Secara sederhana

cloud computing dapat diartikan sebagai teknologi yang menggunakan layanan ataupun produk yang

disediakan oleh provider dengan basis internet.

Cloud Computing ini merupakan kumpulan dari beberapa computing resource yang terintegrasi

sehingga menjadikannya sebagai layanan yang mempunyai skalabilitas tinggi.

1.2 Traditional Hosting vs Cloud

Terkadang user perlu memikirkan beberapa pertimbangan dalam memutuskan apakah user

akan menggunakan sistem Cloud atau Hosting untuk penyimpanan data user.

Pada sub bab ini user akan terlebih dahulu membahas jenis-jenis hosting dan cloud sehingga user

dapat menentukan sistem mana yang paling efisien untuk user gunakan.

a. Web Hosting / Tradisional Hosting

Ada beberapa tipe dari Web hosting / Tradisional Hosting, diantaranya :

1. Shared Hosting

Share Hosting adalah sebuah hosting yang digunakan user untuk menyewa disk space dari sebuah

server yang server tersebut dibagi dan dishare dengan user-user atau website-website yang lain.Tipe

hosting ini merupakan tipe hosting paling banyak tersedia di internet karena mudah di dapatkan dari

Created by Meruvian Cloud Team 3

Page 4: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

provider dengan harga yang sangat terjangkau.

Namun pada shared hosting user akan sering menemukan kasus seperti di bawah ini:

• Ketika website / aplikasi lain dalam satu shared hosting bekerja dengan proses yang sangat

besar, maka akan berdampak pada turunnya performa dari web atau aplikasi yang user simpan

di dalam shared hosting yang sama dengan website / aplikasi tersebut.

• Ketika suatu waktu ada sebuah website / aplikasi yang menyebabkan sistem crash, maka

seluruh server akan mengalami crash pula.

2. Virtual Private Server (Virtual Dedicated Server)

Virtual Private Server adalah sebuah metod untuk membagi sebuah resource dari server menjadi

beberapa virtual server.Sedangkan Virtual Private Server Hosting (VPS Hosting) adalah sebuah

layanan hosting yang menggunakan Virtual Private Server.Pada tipe hosting ini, meskipun user berada

pada satu server dengan akun yang lain, namun user dapat mengisolasi environment dari server yang

user punya.Semisal ada satu akun yang servernya bermasalah, maka selama server utama tidak

mengalami masalah, VPS yang user punya pun tidak akan terganggu.

Beberapa teknologi yang sering digunakan untuk virtualisasi al :Xen,UML,OpenVZ, dll

3. Dedicated Server

Tipe hosting yang ini merupakan tipe hosting yang menyediakan satu server utuh untuk sebuah

akun.Tipe ini layaknya user membeli satu hardware dari sebuah provider wajar jika tipe Dedicated

Server mempunyai harga lebih mahal dibandingkan dengan VPS ataupun Shared Hosting.

b. Cloud Hosting

Cloud Hosting merupakan layanan hosting yang terhubung pada banyak server.Dengan skalabilitas ini

user tidak perlu khawatir akan kinerja dari server seperti halnya pada layanan hosting tradisional.

Dengan cloud computing ini memungkinkan user memiliki resource server yang tak terbatas.user

dapat mengurangi atau menambah resource dengan mudah tanpa mengganggu proses yang sedang

berjalan.

Created by Meruvian Cloud Team 4

Page 5: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

Seperti halnya Web Hosting, Cloud Hosting pun mempunyai beberapa tipe yaitu :

• IaaS (Infrastructure as Service), yaitu bentuk dari layanan cloud yang menawarkan

infrastructure termasuk di dalamnya hardware komputer, networking ataupun storage.

• PaaS (Platform as Service), yaitu layanan cloud yang menawarkan platform yang user

butuhkan untuk membuat aplikasi.Layanan PaaS biasanya berupa desain aplikasi,

development, deployment dan hosting.

• SaaS (Software as Service), yaitu sebuah layanan cloud yang menawarkan software sebagai

layanan untuk klien.

c. Perbedaan Tradisional Hosting dan Cloud Hosting

Terdapat beberapa perbedaan mencolok antara WebHosting dan Cloud Hosting.

• Billing

Pada Web Hosting, provider akan menawarkan tagihan dengan metode flat.Mereka tidak

perduli berapa resource yang akan user gunakan.Berbeda dengan metode pembayaran dari

Cloud Hosting, provider cloud hosting menawarkan pembayaran sesuai resource yang

digunakan oleh klien.Semakin banyak resource yang digunakan maka semakin besar pula

biayannya. Begitupun sebaliknya.

• Skalabilitas

Web Hosting pada umumnya tidak mengenal skalabilitas, jika sebuah server utama down,

maka sistem lain juga mengalami hal serupa.Berbeda dengan Cloud Hosting yang

memberdayakan banyak server dalam beroperasi, jika satu server down, maka server lain yang

akan menggantikan posisi dari server yang bermasalah tersebut.

• Elastisitas

Misalkan user akan menambah kapasitas memory atau hardisk pada hosting yang user

gunakan, pada Web Hosting penambahan resource baru akan membutuhkan waktu yang cukup

lama karena mereka memerlukan beberapa prosedur – prosedur tertentu dan tidak menutup

kemungkinan server akan down dalam beberapa waktu selama proses penambahan.Namun hal

Created by Meruvian Cloud Team 5

Page 6: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

ini berbeda dengan Cloud Hosting.Di Cloud Hosting menambah atau mengurangi resource

merupakan hal yang sangat lumrah.Hal ini bisa dilakukan oleh user dengan waktu yang sangat

cepat berkat adanya elastisitas yang dimiliki oleh Cloud Hosting

Lalu manakah yang lebih bagus antara Cloud Hosting dan Tradisional Hosting ? Semuanya kembali

kepada kebutuhan user. Jika user ingin meminimalisasi biaya dengan berjalannya aplikasi yang

berjalan dengan skala besar, tentu Cloud Hosting jadi pilihan yang bijak.Namun jika user ingin

menyimpan data sensitif atau aplikasi yang tidak membutuhkan skalabilitas misalnya, Tradisional

Hosting bisa menjadi pilihan.

1.3 Manfaat Cloud Computing

Tidak diragukan lagi, manfaat adanya cloud computing ini begitu besar baik ditinjau dari sisi

finansial ataupun dari sisi efisiensi. Adapun beberapa keuntungan dengan adanya cloud computing

ini, meliputi :

• Efisiensi

Dengan adanya cloud computing ini end user tidak memerlukan lagi masalah infrastruktur

karena semua infrastruktur telah disediakan oleh provider. Dengan mekanisme ini pengelolaan

waktu untuk development menjadi lebih banyak.

• Mobility

Semua resource yang tersimpan di dalam komputasi awan akan dapat diakses dimanapun

selama user terhubung dengan internet.

• Pembiayaan sesuai dengan pemakaian

Dengan mekanisme cloud computing ini, pembiayaan adalah sesuai dengan apa yang user

gunakan.Apa yang user pakai itulah yang user bayar.Hal ini yang menjadi salah satu pembeda

Created by Meruvian Cloud Team 6

Page 7: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

antara traditional hosting dan mekanisme cloud computing

• Meningkatkan Availability

System Cloud telah di desain dengan kemampuan high availability. Dengan adanya fitur ini

data atau aplikasi yang anda simpan di cloud akan di replika ke beberapa server sehingga data

anda tetap aman karena jika suatu waktu server mengalami crash, maka server lain akan

menggantikan peranan dari satu server tersebut.

1.4 Resiko Cloud Computing

Pada penjelasan sebelumnya telah dibahas mengenai beberapa manfaat adanya teknologi cloud

computing ini.Namun disamping itu semua, user perlu mengetahui beberapa resiko ketika user

memilih untuk mengadopsi sistem cloud computing, seperti :

• Security

Karena pada cloud computing semua sistem berbasis internet, maka tidak menutup

kemungkinan adanya cyber attack yang menyerang sebuah sistem cloud. Jika serangan mereka

berhasil bukan tidak mungkin data-data major perusahaan user akan bocor ke publik yang

pastinya akan memberikan dampak negatif bagi perusahaan user.

• Data Ownership

Ketika user menyimpan data pada sebuah sistem cloud computing, bagaimanakah kepemilikan

dari data tersebut? Mungkin secara kasat mata data tersebut masih menjadi milik user, namun

bagaimana jika suatu ketika provider mengalihkan bisnis mereka ke bisnis yang lain? Sehingga

kepemilikan data masih bersifat ownership. Dan user hanya sebatas menyewa sebuah tempat

storage didalam sistem cloud computing.

• Availability

Dengan user menyimpan data pada sistem cloud computing, user telah memandatkan sebuah

data ke dalam sistem mereka. Namun apa yang terjadi jika suatu waktu provider mengalami

Created by Meruvian Cloud Team 7

Page 8: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

kendala mungkin masalah bencana alam, atau yang lainnya? Sehingga keberadaan data sangat

sensitif terhadap keberadaan server cloud computing.

Created by Meruvian Cloud Team 8

Page 9: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

Bab 2

Jenis-Jenis Layanan Cloud

Pada bab sebelumnya user telah menyinggung sedikit tentang jenis-jenis cloud yang ada, mulai

dari Iaas, PaaS sampai dengan SaaS. Namun pada bab ini akan dijelaskan mengenai pembagian cloud

secara lebih detail.

2.1. IaaS (Infrastructure as a Service)

IaaS adalah layanan Cloud Computing yang usernya dapat menyewa infrastruktur komputasi

mulai dari storage,memory,network,dll. Sebagaimana konsep pada cloud computing yang memberikan

elastisitas, user bisa mengatur spesifikasi masing-masing komponen yang akan user gunakan.user

dapat menambah atau mengurangi komponen dengan mudah.

Misalnya ketika data storage dari layanan yang user sewa sudah melewati batas kapasitas maksimu,

user dapat menambahkan storage, atau CPU dengan mudah tanpa mengganggu proses yang sedang

berjalan.

Contoh penyedia layanan IaaS antara lain : Rackspace, Amazone Web Service, IBM, Openstack,

Bluelock, dll

Created by Meruvian Cloud Team 9

Page 10: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

2.2. PaaS (Platform as a Service)

PaaS adalah layanan Cloud Computing yang providernya menyediakan platform untuk

memudahkan user dalam mengembangkan sebuah sistem, termasuk di dalamnya environtment, sistem

operasi, database dan keperluan-keperluan lain yang berguna dalam development system.

Dalam hal ini user akan membahas lebih fokus tentang implementasi PaaS. Pada bab selanjutnya akan

dibahas mengenai langkah-langkah deployment aplikasi di beberapa PaaS yang tersedia di internet.

Beberapa PaaS yang akan user bahas nanti meliputi :

2.2.1. OpenShift

Openshift adalah platform sistem Cloud Computing yang merupakan produk dari Redhat,

Aplikasi ini dapat dijalankan dan digunakan secara open source dan tersedia di Github bernama

OpenShift Origin. Developer dapat menggunakan Git untuk mendeploy aplikasi web dengan bahasa

pemrogaman yang berbeda di atas platform. Openshift juga menyediakan layanan untuk

Created by Meruvian Cloud Team 10

Page 11: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

perbaikan(maintaince). (http://en.wikipedia.org/wiki/OpenShift).

Openshift merupakan Platform as a Service (PaaS), dengan automatic scalability yang

mendukung aplikasi web dengan developed Java EE, Node.js, Python, PHP, Perl dan Ruby. Termasuk

beberapa database seperti MongoDB, Openshift merupakan PaaS pertama yang mendukung Java EE 6

Full di Cloud, terintegrasi dengan developer tools seperti aplikasi lifecycle, termasuk integrasi dengan

Eclipse.

Beberapa Fitur terbaru seperti mendeploy kode tanpa JBOSS Developer Studio, menggunakan

fitur Java seperti EJB3.1 dan JMS, dapat memanfaatkan web yang sederhana dan konfigurasi dengan

command-line dan Administrasi, berjalan di beberapa framework Java di web, mobile, HTML5 dan

aplikasi yang kompleks.

Openshift berjalan seperti pada bagan di atas, setiap aplikasi akan berjalan di atas aplikasi

Jboss AS7, dan dijalankan pada sistem operasi RHEL + SELinux yang berjalan di sistem Cloud

Computing yaitu Amazon EC2.

Created by Meruvian Cloud Team 11

Page 12: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

Setiap user akan diberikan domain yang berakhirkan *.rhcloud.com dengan satu namespace

dengan banyak nama aplikasi.

Beberapa pendukung OpenShift adalah aplikasi-aplikasi yang sudah familiar dengan para user,

seperti Jboss, PHP, Perl, Jenkins, MySQL dan lain-lain.

Dua unit dasar fungsi dalam Openshift adalah Broker dan Cartridge. Broker adalah fungsi yang

menyediakan antarmuka dan Cartridge adalah fungsi yang menyediakan aplikasi framework.

A. Broker

Semua aktifitas manajemen aplikasi, seperti login, DNS, kondisi aplikasi dan lain-lain diatur

dalam fungsi ini, Interaksi antar user dan Broker dilakukan baik menggunakan Konsol Web, CLI, Java

Client, Jboss tools dengan menggunakan REST based API.

B. Cartridge

Cartridge menyediakan fungsionalitas yang digunakan untuk menjalankan aplikasi. Banyak

cartridge yang tersedia untuk mendukung bahasa pemrogaman seperti Jboss, PHP, Ruby serta

Cartridge database seperti PostgreSQL, mySQL, dan MongoDB.

Created by Meruvian Cloud Team 12

Page 13: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

C. Scalability

Openshift mendukung aplikasi manual scaling. Untuk membuat aplikasi scalable, dibutuhkan 2

gear/node, satu untuk aplikasi framework dan satu untuk load balancer menggunakan haproxy.

Aplikasi ini akan diatur secara otomatis scale up tau down tergantung beban yang diterimanya.

Batasnya adalah :

1. Scale Up jika jumlah permintaan bersama dilakukan melebihi 90% dari maximal permintaan

lebih dari 1 periode.

2. Scale Down jika jumlah permintaan bersama dilakukan di bawah 49,9% dari maksimal

permintaan selama 2 peiode berturut-turut.

3. Tidak dapat terkonfigurasi pada saat ini, yang max permintaan bersama adalah 5 permintaan

dan dalam periode 20 detik.

D. Multi-Node Cluster

Fitur yang terbaru dari Openshift adalah Multi-Node Cluster, layanan hosted Openshift

berjalan di atas cluster besar dari Compute dan penyimpanan tiap node, setiap node berjalan di banyak

Gear, Instance dari setiap aplikasi user, Cluster tersebut menggunakan Qpid AMQP untuk Queue

pesan dan Mcollective untuk inter-node komunikasi dan koordinasi.

Gambar di atas merupakan hubungan aplikasi user dengan Gear, setiap gear terdapat aplikasi

yang berbeda tergantung yang dibutuhkan user untuk aplikasinya.

Kode Cluster yang ada di PaaS openshift telah ditambahkan di Openshift Origin, sehingga

Created by Meruvian Cloud Team 13

Page 14: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

memudahkan user untuk membangun clustering secara lokal dengan Openshift Origin open source,

untuk membangun sebuah cluster dibutuhkan 2 node PaaS, untuk spesifikasi tiap node adalah sebagai

berikut :

• untuk node pertama akan menjalankan broker, DNS Bind, Qpid Messages, dan Mcollective.

Node ini akan hanya menjadi hosting gear.

• Untuk node kedua akan menjadi lebih sederhana dan hanya menjalankan Mcollective dan host

gear.

Jadi useranya cluster dimaksudkan jika salah satu node mengalami gangguan, data yang telah

di input ke node pertama akan berpindah atau dapat dilanjutkan pada node kedua, sebenarnya dengan

adanya Jboss AS 7 di openshift, user dapat membangun sendiri cluster dengan menggunakan

mod_cluster tiap node.

2.2.2. Windows Azure

Windows Azure adalah platform untuk publik cloud milik Microsoft.Windows Azure

Created by Meruvian Cloud Team 14

Page 15: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

menawarkan beberapa layanan untuk dapat digunakan oleh user, mulai dari virtual mesin untuk testing

atau menjalankan aplikasi, media penyimpanan data, sampai dengan mengembangkan aplikasi yang

scalable dengan memanfaatkan resource yang disediakan oleh Azure.

Beberapa Komponen Utama Windows Azure

Platform Windows Azure ini terdiri dari beberapa platform yang saling menguatkan satu dengan yang

lainnya.Di bawah ini akan di jelaskan fungsi dari beberapa komponen tersebut.

A. Data Management

Azure menyediakan beberapa model untuk penyimpanan data oleh aplikasi.Azure

menyediakan tipe database untuk penyimpanan berupa SQL dalam hal ini adalah SQL Azure, NoSQL

(MongoDB atau Cassandra) dan BLOB.

Masing-masing tipe penyimpanan data ini mempunyai fungsi yang berbeda-beda sesuai kebutuhan

sistem yaitu : SQL untuk penyimpanan data relasional, NoSQL untuk penyimpanan file yang

berpotensi menjadi media penyimpanan skala besar , BLOB untuk penyimpanan binary file.

B. Networking

Windows Azure mempunyai data center yang sangat besar dan terpisah di beberapa area, yaitu

di Asia, US, dan Eropa.Basicly Azure secara otomatis melakukan replikasi pada tiap data atau aplikasi

ke beberapa server yang biasanya disebut sebagai Worker Role.Hal ini untuk berujuan untuk

meningkatkan performa dan juga untuk tujuan skalabilitas dari aplikasi yang berjalan di atasWindows

Azure.

Ada beberap metode yang ditawarkan oleh Windows Azure dalam mengakses resouce yang

disediakan, yaitu :

• On-Premise Network, user dapat mengakses Virtual Network pada windows Azure untuk

Created by Meruvian Cloud Team 15

Page 16: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

berkomunikasi dengan network di lokal jaringan user melalui sebuah VPN.

• On-Premise Computer, Dengan adanya fitur Connect yang disediakan oleh Azure user

diberikan layanan untuk dapat mengakses atau memanage aplikasi yang berjalan di atas azure

menggunakan komputer lokal user.

• Traffic Manager bekerja layaknya sebuah Router pada jaringan.Semisal user mempunyai

sebuah aplikasi yang berjalan di atas Azure yang user tempatkan di data center Asia.Namun

karena sesuatu hal data center yang berada di Asia mengalami overload, maka secara otomatis

Traffic Manager mengarahkan paket yang datang untuk aplikasi user yang mulanya

menggunakan data center di Asia di arahkan ke data center yang lainnya.

C. Caching

Azure menyediakan beberapa metode caching untuk meningkatkan performa server, yaitu : Memory

Caching dan CDN (Content Delivery Network).

Created by Meruvian Cloud Team 16

Page 17: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

Pada metode Memory Caching data yang pernah di akses oleh user akan di simpan di dalam memory

server.Dengan ini ketika ada user yang mengakses konten yang sama, system tidak perlu melakukan

query database atau melakukan proses berulangkali.Sistem hanya butuh untuk memanggil cache yang

telah tersimpan di memory dan menampilkannya.

Pada metode CDN (Content Delivery Network), cache akan direplikasi dan disimpan di dalam data

center terdekat dari user yang mengakses.Selanjutnya user yang akan mengakses konten tersebut tidak

perlu mengakses konten ke data center global, namun akan diarahkan ke data center terdekat dari user

sehingga pengaksesan kontent menjadi lebih cepat.

D. High Performance Computing (HPC)

High Performance Computing (HPC) adalah salah satu komponen dari Windows Azure

dalam kemampuan skalabilitasnya.Dengan adanya komponen ini Azure dapat menjalankan virtual

mesin bersama-sama secara simultan.HPC ini berguna ketika ada permintaan untuk mengeksekusi

sebuah kode pada banyak mesin dalam waktu yang bersamaan.

Created by Meruvian Cloud Team 17

Page 18: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

2.2.3. Cloud Foundry

Cloud Foundry adalah sebuah Platform as Service (PaaS) provide yang bersifat Opensource

yang dikembangkan oleh VMware dan bekerja sama dengan Apache License 2.0 yang dibuat dari

bahasa pemrogaman Ruby. Layanan-layanan Clounfoundry diantaranya adalah sebagai berikut :

A.CloudFoundry.com

Sebuah host lengkap PaaS environment yang berjalan dalam infrastruktur vSphere dari

Vmware. CloudFoundry.com mendukung Spring, Ruby on Rails, Sinatra , Scala dan Node.js juga

vFabric Postgres,vFabric RabbitMQ , MongoDB , MySQL dan Redis.

B.CloudFoundry.org

Sebuah proyek open source di mana developer dan anggota masyarakat dapat berkolaborasi

dan berkontribusi pada proyek. Menyediakan komunitas yang membicarakan seputar pengembangan

Cloud Foundry dan katalog lengkap layanan-layanan pada Cloud Foundry.

C. Micro Cloud Foundry

Versi Cloud Foundry yang dapat didownload dan dijalankan di komputer para pengembang.

Micro Foundry menyediakan versi-versi dari software Cloud Foundry dan menawarkan simetri dengan

instansi selain Cloudfoundry.Hal ini memungkinkan akses dari pihak VMware , pihak ketiga dan

komunitas opensource lainnya.

Dengan built-in mendukung DNS dinamis, pengembang dapat menjalankan Micro Cloud Foundry

mana pun mereka kebetulan bekerja - apakah di toko rumah, kantor atau kopi - tanpa konfigurasi

ulang

Micro Cloud Foundry tersedia sebagai gambaran Virtual machine yang kompatibel dengan VMware

Fusion untuk MacOSX, VMware Workstation dan VMware Player (tersedia sebagai download gratis)

Created by Meruvian Cloud Team 18

Page 19: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

untuk Linux dan Windows. Juga menyediakan penginstalan mudah, setup dan mekanisme manajemen

VM.

Cloud Foundry juga menyediakan CLI untuk mempermudah developer mengembangkan dan

mendeploy aplikasinya dalam cloud di Cloud Foudry yang disebut VMC.

2.2.3.1 Arsitektur CloudFoundry

Created by Meruvian Cloud Team 19

Page 20: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

Cloud Foundry adalah sebuah PaaS provider yang mencakup aplikasi yang mencakup self-

servce application dengan execution engine untuk deployment aplikasi dan manajemen lifecycle

aplikasi dengan interface berbasis scipt CLI yang disebut VMC yang juga diintegrasikan dengan alat

pengembangan untuk memudahkan proses deployment

2.2.3.2 Scalability (Skalabilitas)

Cloud Foundry mendukung 2 cara untuk scalability horizantal scalability , yaitu horizontal-

scalability dan auto-scale.

Horizontal-scalability : pengembang harus mengkonfigurasi sendiri scalability untuk mempertahankan

performance dari aplikasinya.

Auto-scale : pengembang dapat menambahkan sendiri auto-scale dengan sintak di CLI yang prosesnya

dijalankan oleh service-service Cloud Foundry.

2.2.4. Jelastic

Jelastic adalah solusi cloud platform Java yang juga disebut PaaS (Platfom as Service) Java

yang autoscale dan easy deploy. Autoscale memungkin user untuk menjalankan aplikasinya tanpa

mengkonfigurasi environment.Contohnya jika akan menjalankan aplikasi Java maka akan diperlukan

konfigurasi environment seperti JDK , container , JAVA_HOME,JRE_HOME , database dan lain-

lain.Tapi dengan autoscale ini tidak perlu ada konfigurasi yang begitu berarti seperti diatas , jadi cukup

deploy dan aplikasi tersebut akan jalan.

Saat ini Jelastic sudah menyediakan banyak environment pilihan seperti Nginx,Tomcat 6 dan 7,

Glassfish,Jetty,JDK 6 dan 7, Mysql,MariaDB,PostgreSQL MongoDB , CouchDB,Maven, High

Availability.Easy deploy sendiri adalah proses deploy (memasang/menyebarkan) aplikasi ke server

dalam hal ini adalah server cloud Jelastic dengan cara yang sangat mudah .Kelebihannya dalam

Jelastic konfigurasi environment dan deploy sangat mudah dan user-friendly .

Juga didukung banyak Hosted Service Provider seperti ServInt (North America), Dogado

(Jerman),Rusonyx (Rusia),Tsukaeru.net (Jepang),Layershift (Inggris). Dengan dukungan banyak

Created by Meruvian Cloud Team 20

Page 21: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

Hosted Service Provide yang terkenal ini membuktikan bahwa Jelastic sudah diakui keberadaanya

sebagai salah satu Cloud Service yang handal.

2.2.4.1 Fitur-fitur Jelastic

Beberapa fitur-fitur di Jelastic :

• Konfigurasi environment dan deploy sangat mudah dan user-friendly.

• Mendukung High Availability (HA) untuk clustering server yang tersedia dalam akun berbayar.

• Mendukung database NoSQL seperti MongoDB dan CouchDB.

• Menyediakan juga load balancing dan caching software dengan Nginx yang sudah terintegrasi

• Dapat meningkatkan / menurunkan sejumlah resources (memory dan processing power) sesuai

pemintaan

Created by Meruvian Cloud Team 21

Page 22: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

2.4.2 Arsitektur

Keterangan :

HTTPS recording : menggunakan SSL yang dapat diaktifkan atau di-nonatikan.

Balancer dan caching : Load balancer yang digunakan adalah nginx. Memungkinkan pembagian

kerja untuk web container di bawahnya sehingga server tidak bekerja berat walaupun memiliki banyak

environment.

REC – runtime version container : Sebagai platform aplikasi yang dideploy.Menyediakan Tomcat 6

dan 7 , Glassfish dan Jetty yang berjalan dengan JDK 6 atau 7.

Automation create projects : Pembuatan project secara otomatis dengan maven.

SQL-database : Penyediaan database SQL seperti MySQL , MariaDB dan PostgreSQL .

NoSQL-database : Penyediaan database NoSQL seperti MongoDB dan CouchDB

Created by Meruvian Cloud Team 22

Page 23: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

2.2.4.3 Scalability (Skalabilitas)

Untuk skalabilitas semua tergantung lalu lintas pertumbuhan aplikasi di Jelastic.Jelastic akan

otomatis menambahkan CPU ,RAM dan sumber daya lainjika aplikasi sedang mendapatkan beban

berat .Jika lalu lintas menurun , maka Jelastic juga akan menurunkan dan mengurangi sumber

daya.Dengan ini tidak perlu merubah arsitektur atau penyesuain sumber daya tambahan , hanya

membayar untuk penambahan sumber daya yang dibutuhkan.Selain itu juga dapat ditentukan batas

sumber daya yang ingin ditambahkan sehingga tidak ada tagihan yang membengkak.

2.2.5. CloudBees

Cloudbees adalah sebuah Java PaaS (Platform as a Service), bertujuan untuk menyediakan Java

Platform terkemuka sebagai layanan PaaS yang meliputi jasa pengembangan(development) dan

sebuah produksi runtime untuk Java.

Perusahaan ini memulai debutnya dengan DEV@cloud, yang menampilkan fitur pertama

Hudson untuk layanan cloud, dan akan dilajutkan ke daam pengembangan yang lengkap, membangun,

menguji, menampilkan dan memproduksi untuk setiap infrastuktur cloud.

Kelebihan dari cloudbees adalah user Java hanya membutuhkan biaya yang rendah untuk

menggunakan cloud PaaS ini. Dalam membangun dan mendeploy aplikasi java, cloudbees

menggunakan standar java framework dan API's libraries.

Created by Meruvian Cloud Team 23

Page 24: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

2.2.5.1 Aplikasi Clustering

Cloudbees juga menyediakan aplikasi clustering untuk aplikasi java web yang berjalan di

RUN@Cloud. RUN@Cloud adalah platform untuk cloud computing yang memberdayakan developer

dengan peralatan dan layanan untuk membangun, mengelola, dan skala dari aplikasi JVM.

RUN@Cloud menyediakan layanan kepada user dan telah di atur dari tools yang sederhana

untuk memproses pendeployan aplikasi java ke cloud, untuk menggunakan RUN@Cloud dibutuhkan

aplikasi CLI khusus untuk mengatur jalannya aplikasi user di Cloudbees, aplikasi tersebut adalah

CloudBees SDK, aplikasi tersebut dapat berjalan pada sistem operasi Linux,

Created by Meruvian Cloud Team 24

Page 25: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

2.2.5.2 Arsitektur

Cloudbees Cloud mencakup HTTP routing layer yang menangani clustering dan load balancing

untuk aplikasi web user. Ketika permintaan HTTP diterima, layer routing menggunakan HTTP host

header untuk menentukan target aplikasi. Setiap target aplikasi yang ditentukan, permintaan akan

dilanjutkan ke instance deploy dari aplikasi. Jika aplikasi user telah dikonfigurasi untuk menjalankan

cluster, permintaan akan di teruskan ke instance, jika layer routing tidak tersedia untuk dikoneksikan

ke instance, maka permintaan akan otomatis di arahkan ke aplikasi instance.

Keuntungan lainnya adalah aplikasi yang berjalan di cloud Cloubees tidak memerlukan sumber

daya yang besar. Karena dalam Cloudbees terdapat fungsi hibernasi, fungsi ini sangat efektif untuk

menambah efisiensi server aplikasi user, jadi user dapat menjalankan aplikasi dengan setengah dari

sumber daya yang digunakan.

Created by Meruvian Cloud Team 25

Page 26: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

2.2.5.3 Session Clustering

Biasanya Aplikasi session terdapat dalam satu paket dalam instance dan tidak menyediakan

untuk clustering . Untuk session failover , jika user ingin mengaktifkan session clustering, user dapat

membuat aplikasi session store dan kemudian disatukan ke dalam aplikasi.

2.2.5.4 Database

Menyimpan data dalam database adalah cara yang paling umum untuk menyimpan data

aplikasi, keuntungan lainnya, user dapat mengakses berbagai layanan dan Ekosistemnya Layanan dari

Cloudbees. user juga dapat meng-host database Anda sendiri atau terhubung ke database host oleh

pihak ketiga. Berikut struktur database dari cloudbees.

✔ CloudBees MySQL (relasional penyimpanan data)

✔ Cloudant CouchDB (penyimpanan dokumen)

✔ Amazon S3 (penyimpanan file)

✔ Amazon RDS (relasional penyimpanan data)

✔ MongoDB

JDBC adalah class API pertama di lingkungan Cloudbees, Cloudbees menyediakan dukungan

untuk menjalankan Database MySQL, tetapi aplikasi user hanya dapat terkoneksi ke external database

menggunakan JDBC.

2.2.6. DotCloud

DotCloud merupakan salah satu layanan PaaS (Platform As a Service) yang menyediakan

beberapa fitur yang telah mendukung beberapa bahasa pemgrograman seperti :Java,Ruby,PHP, Python,

Perl, Opa dan NodeJS. DotCloud juga telah menyediakan beberapa alternatif database untuk aplikasi

yang akan user deploy di dalamnya Mulai dari Mysql, Postgresql dan Postgis sampai MongoDB

Selain itu ada beberapa fitur-fitur alternatif lain sepert :

Created by Meruvian Cloud Team 26

Page 27: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

• Apache Solr untuk indexing

• RabbitMQ, messagging system

• SMTP yang berbasis Postfix,

• dll

Dalam hal deployment dotCloud menggunakan CLI.Untuk berkomunikasi dengan server user

memerlukan API yang telah disediakan ketika pertama kali mendaftarkan akun. Selain itu DotCloud

menyediakan sebuah fitur untuk menentukan struktur aplikasi yang akan user deploy ke dalam cloud

menggunakan Redis.File ini berextensi .yml yang memuat seluruh keterangan mengenai aplikasi user.

File .yml inilah yang akan memberikan informasi ke server cloud ketika user push source code atau

file web archive user ke dalam server cloud.

Contoh file.yml

www:

type: java

db:

type: mysql

File .yml di atas akan memberitahu ke server bahwa aplikasi yang akan user deploy adalah aplikasi

Java yang menggunakan database Mysql.

Dalam hal scalability, dotCloud menyediakan tiga jenis tipe :

• Scaling Horizontally, scalable dengan menggunakan paralel server

Created by Meruvian Cloud Team 27

Page 28: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

• Scaling for Failover, scalable dengan tujuan untuk mencegah server down ketika beroperasi

• Scaling Vertically, scaling ini lebih mengarah kepada improvisasi performance pada sebuah

server seperti dengan menambah hardware seperti memory, processor, storage, dll

2.3. SaaS (Software as a Service)

SaaS adalah layanan Cloud Computing yang memberikan layanan berupa aplikasi bisnis yang

dapat diakses melalui internet.Biasanya dalam masalah payment, user akan dikenakan biaya tambahan

jika menggunakan fitur-fitur yang lebih lengkap.Keuntungannya bagi user adalah user sebagai tidak

perlu membeli lisensi dari aplikasi yang berjalan di SaaS.Jadi dalam perkembangannya nanti, banyak

aplikasi yang mulanya hanya bisa dinikmati dengan melakukan instalasi di komputer lokal akan dapat

diakses melalui internet. Contoh implementasi SaaS adalah : office365, GoogleDrive, SalesForce, dll.

Created by Meruvian Cloud Team 28

Page 29: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

Bab 3

Cloud Database

3.1 Pengertian Cloud Database

Cloud database adalah tipe database yang berjalan di atas platform cloud.Dalam pengelolaan

cloud database ini user dapat menjalankan database melalui virtual mesin atau melakukan pembelian

layanan database pada cloud provider.Ada dua tipe database yang berjalan di atas platform Cloud,

yaitu SQL-base dan NoSQL.

3.2 SQL

SQL (Structured Query Language) atau query adalah sebuah bahasa yang digunakan untuk

mengakses data dalam basis data relasional atau database. Pengertian secara luas merupakan bahasa

standar yang digunakan dalam manajemen basis data relasional. Saat ini hampir semua server basis

data dan aplikasi java maupun web menggunakan bahasa ini.

3.2.1 Sejarah SQL

Sejarah SQL dimulai dari artikel seorang peneliti dari IBM bernama Jhonny Oracle yang

membahas tentang ide pembuatan basis data relasional pada bulan Juni 1970. Artikel ini juga

membahas kemungkinan pembuatan bahasa standar untuk mengakses data dalam basis data tersebut.

Bahasa tersebut kemudian diberi nama SEQUEL (Structured English Query Language).

Setelah terbitnya artikel tersebut, IBM mengadakan proyek pembuatan basis data relasional berbasis

Created by Meruvian Cloud Team 29

Page 30: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

bahasa SEQUEL. Akan tetapi, karena permasalahan hukum mengenai penamaan SEQUEL, IBM pun

mengubahnya menjadi SQL. Implementasi basis data relasional dikenal dengan System/R.

Di akhir tahun 1970-an, muncul perusahaan bernama Oracle yang membuat server basis data

populer yang bernama sama dengan nama perusahaannya. Dengan naiknya kepopuleran John Oracle,

maka SQL juga ikut populer sehingga saat ini menjadi standar de facto bahasa dalam manajemen basis

data.

Sejak SQL dibuat sebagai standar, banyak keuntungan jika user menggunakan bahasa SQL, antara

lain :

1. Kecepatan dalam pengambilan data. Di sebuah majalah pernah di survey pemakaian bahasa

SQL dibandingkan dengan pemakaian filter dalam bahasa pemrogaman. Hasilnya, SQLlebih

ceat seuserr 20x dibandingkan dengan pemakaian filter.

2. Standardisasi. Hampir semua bahasa pemrogaman saat ini sudah mendukung bahasa SQL,

dikarenakan bahasa SQL sangat mudah digunakan karena pemakaiannya mirip dengan bahasa

Inggris.

3. Mengurangi kerumitan dalam membangun aplikasi. Jika user ingin mengambil data dalam

kriteria tertentu, maka dengan menggunakan SQL cukup menggunakan bahasa SELECT,

dibandingkan dengan perintah if.

4. Mudah melakukan pengecekan kesalahan program aplikasi (debugging).

5. Memudahkan komunikasi antar user, progammer dan database.

6. Embedded SQL untuk berbagai host language (Cobol, Fortran, PL/I) hampir sama.

7. Dikarenakan SQL di-compile, runtime nya jauh lebih cepat dari pada yang interaktif.

8. Sudah digunakan dibanyak Hosting Provider dan Cloud Provider

Sedangkan kelemahan SQL adalah sebagai berikut :

1. Bentuk bahasa yang jauh berbeda dengan host language yang ada sehingga mempersulit

programmer dalam menulis coding/script.

Beberapa perkembangan SQL antara lain :

Created by Meruvian Cloud Team 30

Page 31: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

3.2.2 Software Database SQL

SQL seiring berkembangnya zaman juga terus berkembang hingga melahirkan banyak software

database SQL yang gratis ataupun berbayar, diantaranya :

1. MySQL

Sebuah implementasi dari sistem manajemen basisdata relasional (RDBMS) yang

didistribusikan secara gratis dibawah lisensi GPL (General Public License).

2. Oracle

Sebuah basis data relasional yang terdiri dari kumpulan data dalam suatu sistem manajemen

basis data RDBMS.Salah satu kelebihannya adala oracle dapat mendayagunakan lebih dari

satu server serta data storage dengan mudah dan transparan.

3. PostgreSQL

Sebuah sistem basis data yang disebarluaskan secara bebas menurut Perjanjian lisensi BSD.

Piranti lunak ini merupakan salah satu basis data yang paling banyak digunakan saat ini, selain

MySQL dan Oracle.

4. MariDB

MariaDB merupakan versi pengembangan terbuka dan mandiri dari MySQL. Sejak

diakuisisinya MySQL oleh Oracle pada September 2010, Monty Program sebagai penulis awal

kode sumber MySQL memisahkan diri dari pengembangan dan membuat versi yang lebih

mandiri yakni MariaDB.

Created by Meruvian Cloud Team 31

Page 32: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

5. SQL Server

Microsoft SQL Server adalah sebuah sistem manajemen basis data relasional (RDBMS)

produk Microsoft. Bahasa kueri utamanya adalah Transact-SQL yang merupakan implementasi

dari SQL standar ANSI/ISO yang digunakan oleh Microsoft dan Sybase. Umumnya SQL

Server digunakan di dunia bisnis yang memiliki basis data berskala kecil sampai dengan

menengah, tetapi kemudian berkembang dengan digunakannya SQL Server pada basis data

besar.

SQL Server adalah salah satu software database yang berbayar.

3.2.3 Pengguna SQL

Hampir semua perusahaan baik kecil ataupun besar yang mempunyai aplikasi baik di internet ataupun

di lokal menggunakan database SQL di sistemnya sebagai basis data.

SQL juga digunakan di semua Hosting Provider dan Cloud Provider.

3.3 NoSQL (Not Only Structure Query Languange)

Dari singkatannya saja NoSQL memang tidak menggunakan sintak-sintak SQL untuk

menyimpan data.NoSQL dikembangkan oleh Carlo Strozzi pada tahun 1998 dan pada 2009 kembali

diperkenalkan kembali .NoSQL sangat berbeda dengan database-relasional lainnya yang juga

menggunakan SQL.Konsep penyimpanan data non-relasional mempunyai perbedaan-perbedaan

metode daripada konsep penyimpanan data relasional lainnya..Metode-metode ini seperti :

• Key-value store : menampung data BLOB (Binary Large Objects).

• Table-Oriented : Contohnya ada pada Bigtable Google dan Cassandra.

• Document-Oriented : “Dokumen” lebih seperti XML daripada teks biasa.

• Graph-Oriented

Dalam metode key-value store data tidak langsung ditulis ke hardisk tetapi data disimpan

terlebih dahulu dalam memori dan hanya sesekali dituliskan ke hardisk sehingga proses query dapat

berlangsung lebih cepat,karena tidak perlu lagi mengambil data dari hardisk.Dari sinilah salah satu

keuntungan key-value store sebagai metode NoSQL dibandingkan dengan database relasional yang

lain.Key-value store sudah banyak digunakan oleh LiveJournal,Wikipedia,Twitter,Youtube,Wordpress

Created by Meruvian Cloud Team 32

Page 33: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

yang dipadu dengan memcached. Kemudian metode berikutnya adalah table-oriented.Metode

sedikit usernya , beberapa user metode ini adalah Google dengan BigTable-nya dan Facebook dengan

Cassandra.Walaupun sedikit tapi hasilnya dapat dilihat dari kecepatan waktu pencarian pada Google

dan Facebook walaupun diakses jutaan user.

Metode NoSQL selanjutnya adalah document-oriented . Metode ini tidak mengenal adanya

table dan field serta record melainkan digantikan oleh dokumen dan koleksi. Dokumen dapat

disamakan seperti field dalam SQL sedangkan koleksi adalah tabelnya.Dokumen dapat memiliki field

yang berbeda dengan dokumen lain walaupun dalam koleksi yang sama , sedangkan dalam database-

relasional sebuah record tidak mungkin memiliki field yang berbeda dengan record dalam 1 table.

Yang terakhir adalah graph-oriented yaitu jenis database NoSQL dengan struktur grap

node,edge dan properties untuk menyimpan data.Dibandingkan database relasional, grap database

dapat beroperasi lebih cepat dalam pemetaan datanya.

3.3.1 Software Database NoSQL

Berikut ini berbagai contoh open source software NoSQL database :

1. MongoDB

Adalah sebuah open source software database NoSQL yang berskala dan high-performance

yang dibuat dalam C++. MongoDB adalah salah satu database NoSQL dengan metode

Document-Oriented.

2. CouchDB

Sama seperti MongoDB , tetapi coucdb belum memiliki fitur Auto-Sharding.Couchdb juga

berdasarkan metode Document-Oriented.

3. Amazon DynamoDB

NoSQL database yang dibuat oleh Amazon yang scalabiliy dengan predictable perfomance.

Amazon DynamoDB adalah salah satu NoSQL database berdasarkan metode key-value store.

4. Redis

5. Neo4j

Adalah database grafik NoSQL dengan kinerja tingkat tinggi berdasarkan graph-oriented.

Created by Meruvian Cloud Team 33

Page 34: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

6. HBase

Adalah sebuah open-source database terdistribusi yang berjalan pada Hadoop, sebuah kerangka

kerja perangkat lunak yang memungkinkan Anda untuk menyimpan dan memproses sejumlah

besar data pada beberapa mesin.

Sebenarnya masih banyak juga software database NoSQL yang dikembangkan di seluruh dunia.

3.3.2 Kelebihan dan kekurangan Database NoSQL

Berikut ini adalah kelebihan database NoSQL :

• Melakukan searching data lebih cepat , karena NoSQL membuat proses query menjadi lebih

sederhana disebabkan data dimasukkan ke memory terlebih dahulu sehingga sistem dapat

membaca data yang tersimpan dalam memory lebih cepat daripada hardisk.

• Tidak perlu membuat struktur tabel,database NoSQL seperti MongoDB otomatis

membuatkannya,jadi hanya perlu melakukan insert saja.

• Mempercepat proses CRUD (CREATE,READ,UPDATE,DELETE).

• Digunakan oleh banyak website-website besar .

Selain kelebihan ada juga celah kekurangan dalam database NoSQL , berikut ini adalah kelemahan

database NoSQL :

• Tidak support untuk aplikasi bisnis / aplikasi transaksi lainnya dikarenakan sistem transaksi

sering terjadi deadlock yang membuat sistem saling menunggu resource dalam proses, jika

dalam transaksi ini databse yang digunakan dalah NoSQL maka deadlock akan mengganggu

proses kerja database.

• Jumlah programmer yang ahli dalam database NoSQL juga masih sedikit.Jadi masih

diperlukan banyak pengembangan.

• Database NoSQL belum banyak dijumpai di hosting provider.

• Masih awam bagi masyarakat

3.3.3 Pengguna database NoSQL

Dengan banyaknya metode-metode dan open source software databse NoSQL dan maka banyak pula

pengguna database NoSQL yang telah mengimplemtasikannya dalam aplikasi mereka dan kebanyakan

Created by Meruvian Cloud Team 34

Page 35: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

dari pengguna database NoSQL adalah perusahaan-perusahaan besar seperti :

• Facebook

Facebook menggunakan database Cassandra NoSQL dan Hbase yang dengan berdasarkan

metode table-oriented , dengan ini facebook dapat melayani proses query dari jutaan

pengguna dalam waktu yang relatif cepat.

• Digg.com

Digg juga menggunakan Cassandra untuk melayani query dari pelanggan dan mengumumkan

migrasinya dari MySQL yang RDBMS ke NoSQL.Database ini digunakan pada database

utama dalam sistem digg.com .

• Twitter

Twitter juga menggunakan Cassandra dan Hbase.Database tersebut digunakan dalam

TopTweets , lokasi user dan lain-lain

• Craiglist.org

Craiglist.org menggunakan database MongoDB NoSQL yang dengan metode document-

oriented sebagai advertisement storage.

• Bit.ly

Bit.ly juga menggunakan MongoDB sebagai database user history.

NoSQL database juga digunakan mulai digunakan oleh banyak Cloud Provider dikarenakan memang

fungsi-fungsi , skalabilitas dan performance yang sesuai untuk komputasi awan , seperti :

1. OpenShift

2. Jelastic

3. Cloudfoundry

4. Cloudbees

5. DotCloud

Created by Meruvian Cloud Team 35

Page 36: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

Bab 4

Implementasi PaaS

4.1 Yama Overview

Yama merupakan sebuah bagian dari project Meruvian Integrated Platform (MIP) yang

berperan sebagai MIP Server untuk dapat berkomunikasi dengan MIP Client yang dalam hal ini

menggunakan Midas (platform framework untuk android).

Yama adalah framework yang dapat membantu kita untuk pembuatan sebuah aplikasi dengan web

base dengan mudah dengan beberapa opsi yaitu:

- MVC Web yang terintegrasi dengan SpringMVC, Spring dan Hibernate

- MVC Web yang terintegrasi dengan Struts2, Spring dan HIbernate

Yama Framework ini gratis dan opensource anda dapat mengunduh source code nya dari:

http://yama.java.net. Untuk detail mengenai MIP dapat dilihat pada lampiran.

4.2 Deploy Yama di Openshift

1.Pertama-tama daftar/register di websitenya, di https://openshift.redhat.com/app/, setelah selesai

register cek email yang digunakan untuk mendaftar, kemudian login ke web tersebut.

Created by Meruvian Cloud Team 36

Page 37: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

2. Pada terminal ubuntu, install beberapa paket yang dibutuhkan untuk openshift.

#apt-get install git-core openssh openssh-client ruby-full rubygems1.8 rake

3. Setelah semua selesai, saatnya menginstall aplikasi gem

#gem install –source http://gems.rubyforge.org –source

https://openshift.redhat.com/app/repo/ rhc

Created by Meruvian Cloud Team 37

Page 38: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

sekarang tool dapat digunakan, pertama kali buatlah sebuah domain

$rhc-create-domain -n meruvian -l [email protected]

4. Buatlah sebuah aplikasi dengan menggunakan web server JBOSS AS 7

$rhc-create-app -a username -t jbossas-7 -l [email protected]

5. Setelah applikasi selesai dibuat, pengguna dapat melihat direktori aplikasi yang ada di

/home/meruvian/meruvian aplikasi dapat diakses di url di bawah ini

http://[username].rhcloud.com

Created by Meruvian Cloud Team 38

Page 39: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

6. Untuk menambahkan database MySQL dapat menggunakan perintah berikut.

$rhc-ctl-app -a username -e add-mysql-5.1

7. Setelah menjalankan perintah di atas, pengguna akan diberikan ip host, port, username dan

password

yang akan digunakan dalam menambahkan konten. Harap untuk di catat atau di simpan di gedit.

untuk mengatur jalannya MySQL dibutuhkan aplikasi phpmyadmin, untuk Instalasi di bawah ini.

$rhc-ctl-app -e add-phpmyadmin-3.4 -a meruvian

phpmyadmin dapat diakses di http://[username].rhcloud.com/phpmyadmin

untuk username dan password dapat menggunakan user dan password yang telah diberikan setelah

menginstal aplikasi ini.

8. Untuk konfigurasi key dan authenticate dapat menggunakan langkah di bawah ini.

$ssh-keygen -t <tipe>

<tipe> adalah key yang akan di generate, antara dsa atau rsa

9. Tambahkan publik key baru untuk akun pengguna

$rhc sshkey add -i meruvian -k /home/meruvian/.ssh/id_rsa.pub -l

Created by Meruvian Cloud Team 39

Page 40: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

[email protected]

10. Tambahkan publik key yang baru ke SSH

$ssh-add /home/meruvian/.ssh/id_rsa

Authenticate key dengan Openshift server:

$rhc domain status -l [email protected]

untuk melihat semua list yang ada pada domain gunakan perintah berikut.

$rhc sshkey list -l username @meruvian.org

11.Setelah semuanya selesai, saatnya untuk menambahkan konten, hapus pom.xml yang ada di

direktori aplikasi

Created by Meruvian Cloud Team 40

Page 41: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

$cd meruvian

$git rm -r src pom.xml

$git commit -m “Hapus artifak dari aplikasi yang akan dibuat”

12. Siapkan nama aplikasi berbentuk .war, contoh penulis akan menggunakan aplikasi yama.war

sebagai konten yang akan ditambahkan di jbossas-7.Salin konten tersebut di

/home/meruvian/meruvian/deployments.

$cp Aplikasi/yama.war /home/meruvian/meruvian/deployments/

Setelah itu buat file berikut.

$touch yama.war.dodeploy

13. Kemudian saatnya untuk di sinkronisasikan dengan openshift dengan perintah di bawah ini.

$ rsync -avz deployments/731c3b027fb147739209f6c8e5d04529@meruvian

meruvian. rhcloud.com :~/meruvian/jbossas-7/standalone/deployments/

14. Tunggu beberapa saat sampai konten tersebut berjalan. Konten yama dapat diakses di

http://[username].rhcloud.com/yama2

Created by Meruvian Cloud Team 41

Page 42: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

15. Untuk mengakses server openshift dapat menggunakan aplikasi ssh.

$ssh [email protected]

16. Jika ingin melihat shell openshift, dapat meremote terlebih dahulu domain user, kemudian masuk

direktori .env/ setelah itu tampilkan isi direktori dengan ls, sebagai contoh jika ingin mengetahui

password database.

$echo “password:$OPENSHIFT_DB_PASSWORD”

Created by Meruvian Cloud Team 42

Page 43: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

4.3 Deploy Yama di Cloudfoundry

Adapun dalam tutorial ini,akan dijelaskan bagaimana mendeploy Yama dalam sebuah cloud service

Cloudfoundry dengan langkah-langkah sebagai berikut :

1. Lakukan sign up ke cloudfoundry.com.

2. 2. Isi dengan email anda dan promo codenya

gunakan saja nhjug dan jangan lupa untuk mengisi form captcha di bagian bawah.

3. Setelah proses selesai , verifikasi email sebagai username dan password akan dikirim ke email

yang tadi diisikan.

4. Kemudian login dengan email/username dan password tadi.

5. Langkah berikutnya adalah installasi Ruby dan RubyGems.

Created by Meruvian Cloud Team 43

Page 44: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

Adapun OS yang digunakan dalam tutorial ini adalah linux Ubuntu 11.04.

$ sudo apt-get install ruby-full ruby-gems

6. Kemudian mulai install vmc , yakni sebuah tool terminal dari cloudfoundry yang berguna

untuk menjalankan perintah-perintah managemen aplikasi cloud pada cloudfoundry.

$ sudo gem install vmc

7. Kemudian menyetting target gem ke api.cloudfoundry.com.

$ vmc target api.cloudfoundry.com

8. Selanjutnya login ke cloudfoundry via vmc untuk memulai memanage cloud.

$ sudo vmc login

Email : ****@****.***

Password :*****

Successfully logged into [http://api.cloudfoundry.com]

9. Untuk memulai deploy masuk ke direktori aplikasi atau ke direktori file extensi .war,adapun

lokasi file aplikasi extensi yama.war dalam tutorial ini ada di

/media/Data/Data/Aplikasi/yama . Dan perintah untuk mendeplo adalah vmc push.

$ cd /media/Data/Data/Aplikasi/yama

$ sudo vmc push

Would you like to deploy from the current directory? [Yn]: n <enter>

Deployment path: yama.war <enter>

Application Name: yama 3<enter>

Detected a Java SpringSource Spring Application, is this correct? [Yn]: y

Application Deployed URL [yama3.cloudfoundry.com]: <enter>

Memory reservation (128M, 256M, 512M, 1G, 2G) [512M]: menentukan besar

memory yang dibutuhkan tekan <enter> untuk default (512MB).

How many instances? [1]: 1 <enter>

Create services to bind to 'yama3'? [yN]: n

Would you like to save this configuration? [yN]: y

Manifest written to manifest.ym

Uploading Application:

Checking for available resources: OK

Processing resources: OK

Packing application: OK

Uploading (7K): OK

Push Status: OK

Staging Application 'yama3': OK

Created by Meruvian Cloud Team 44

Page 45: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

Starting Application 'yama3': .

10. Jika saat Starting Application terdapat pesan Error:

Application 'yama3's state is undetermined, not enough information available.

Lakukan update vmc :

$ sudo vmc update

Updating application 'yama3'...

Uploading Application:

Checking for available resources: OK

Processing resources: OK

Packing application: OK

Uploading (7K): OK

Push Status: OK

Stopping Application 'yama3': OK

Staging Application 'yama3': OK

Starting Application 'yama3': OK

11. Dari sini , Yama sudah bisa dijalankan tapi belum terkoneksi ke database , maka dari itu harus

membuat service mysql terlebih dahuluu

$ sudo vmc create-service mysql mysql-yama3

Creating Service: OK

12. Kemudian lakukan binding agar database mysql-yama3 yang dibuat langsung dapat digunakan

oleh aplikasi yama3 .

$ sudo vmc bind-service mysql-yama3 yama3

Binding Service [mysql-yama3]: OK

Stopping Application 'yama3': OK

Staging Application 'yama3': OK

Starting Application 'yama3': OK

13. Kemudian akses di web browser http://yama3.cloudfoundry.com

Created by Meruvian Cloud Team 45

Page 46: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

4.4 Deploy Yama Di Jelastic

Adapun langkah-langkahnya adalah sebagai berikut :

1. Daftar terlebih dahulu ke jelastic.net dengan email Anda.

2. Setelah klik Sign up dan proses berhasil , maka akan dikirimkan email konfirmasi bahwa akun

dan password anda telah dibuat di jelastic.net.

Kemudian arahkan browser ke https://app.jelastic.servint.net/ . Login dengan username (email

tadi) dan password yang telah diberikan.

Created by Meruvian Cloud Team 46

Page 47: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

3. Setelah login , akan ditampilkan halaman pembuatan environment.

Ngingx : sebagai Load Balancer dan sebagai web server utama.

Glassfish : sebagai Java Container yang digunakan.

MysqlDB : sebagai database yang digunakan.

Maven : repository library yang terdapat di intenet mirip dengan repository dari linux. dengan

mengunakan maven sendiri user dapat lebih mudah dalam melakukan development karena user

tinggal menambahkan library yang user butuhkan agar mempercepat proses development tanpa

perlu mencari-cari library terlebih dahulu terlebih lagi user mengunakan tools ajaib netbeans

sehingga proses-prosess pembuatan pojo, encapsulate data akan lebih cepat daripada

mengunakan IDE (Integrated development environment).Maven akan digunakan sebagai

platform checkout ke server .

Environment : adalah nama domain / url utama yang akan digunakan oleh applikasi.

Jika sudah klik create.

4. Kemudian akan muncul progress bar creating environment. Yang menunjukkan bahwa

environment sedang dibuat.

Created by Meruvian Cloud Team 47

Page 48: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

5. Untuk memulai mendeploy , arahkan pointer ke Maven 3 , dan klik gambar box

untuk melakukan checkout pada server Subversion aplikasi Yama di

https://svn.java.net/svn/yama~yama-repo/tags/yama-1.0.1/webapp/struts/ .

Created by Meruvian Cloud Team 48

Page 49: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

Klik [+]Add jika sudah.

6. Setelah itu arahkan pointer ke yama yang sudah didapat dari svn dan pilih Build and Deploy.

7. Jika sudah proses selesai , maka akan ada ROOT di bawah glassfish.

Ini menandakan bahwa aplikasi sudah terinstall dan terdeploy di glassfish

dari sini aplikasi bisa diakses dari webrowser dengan mengarahkan pointer ke Open Browser.

Created by Meruvian Cloud Team 49

Page 50: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

4.5 Deploy Yama di DotCloud

Register akun dotcloud di

https://www.dotcloud.com/

4.5.1.Install CLI dotcloud

Buka terminal dan ketikkan perintah di bawah ini

$ sudo apt-get install python-setuptools

$ sudo easy_install pip && sudo pip install dotcloud

Setelah proses instalasi selesai, ketikkan peritnah dotcloud di terminal

$ dotcloud

Created by Meruvian Cloud Team 50

Page 51: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

Enter your api key

Masukkan API yang user dapatkan dari akun dotcloud di menu setting

4.5.2. Membuat Project

Membuat project yama di dotcloud

$ dotcloud create yama

Created application "yama" using the flavor "sandbox" (Use for development, free

and unlimited apps. DO NOT use for production.)

Membuat folder yama untuk menampung beberapa kebutuhan project

$ mkdir yama

$ cd yama

Buat sebuah file dengan extensi .yml .File ini berfungsi untuk mendeskripsikan tipe aplikasi, database

atau webserver yang akan digunakan untuk aplikasi

$ nano dotcloud.yml

isi dengan :

www:

type: java

data:

type: mysql

Created by Meruvian Cloud Team 51

Page 52: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

File yml di atas mendeskripsikan bahwa user akan menggunakan aplikasi java dengan database

mysql.

Selanjutnya push aplikasi user ke DotCloud

$ dotcloud push yama

# rsync

[...]

sent 8.11K bytes received 352 bytes 995.06 bytes/sec

total size is 14.78K speedup is 1.75

Deployment for "yama" triggered. Will be available in a few seconds.

2011-06-28 04:27:34 [api] Waiting for the build. (It may take a few minutes)

2011-06-28 04:27:48 [www.0] service booted

2011-06-28 04:27:48 [www.0] The build started

2011-06-28 04:27:48 [www.0] Fetched code revision rsync-1309235251.44

2011-06-28 04:27:51 [www.0] Reloading nginx configuration: nginx.

2011-06-28 04:27:51 [www.0] The build finished successfully

2011-06-28 04:27:51 [api] Deploy finished

Deployment finished successfully. Your application is available at the following

URLs

www: http://[nama project]-[username].dotcloud.com/

4.5.3. Membuat Database

Selanjutnya user akan membuat database untuk aplikasi yang akan user deploy

Jalankan service database mysql di DotCloud

$ dotcloud run yama.data – mysql

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 105

Server version: 5.1.41-3ubuntu12.7 (Ubuntu)

Created by Meruvian Cloud Team 52

Page 53: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

Type 'help;' or '\h' for help. Type '\c' to clear the current input

statement.

mysql>

mysql> create databaes yama;

mysql> grant all on yama.* to yama@localhost identified by 'password';

mysql> grant all on yama.* to yama@'%' identified by 'password';

mysql> quit

4.5.4. Konfigurasi Database di Yama

Setelah berhasil membuat database di dotcloud, selanjutnya user akan menegkonfigurasi koneksi

database di aplikasi yama.

Namun sebelumnya user perlu mengetahui informasi seperti host database, port, dsb.

Gunakan perintah di bawah ini untuk mendapatkan info tersebut.

$ dotcloud info yama.data

config:

mysql_masterslave: true

mysql_password: l39IqqSQ83Eyg7X2Ql533453535XEgxxxx

created_at: 1341916569.215796

datacenter: Amazon-us-east-1d

image_version: 1120eda9aa82 (latest)

instance: data.0

Created by Meruvian Cloud Team 53

Page 54: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

instances:

yama.data.0:

role: master

state: up

memory:

- total reserved: N/A (sandbox app)

- total used: 36MB

- cache portion: 632KB of 36MB (1%)

ports:

- name: ssh

url: ssh://[email protected]:31822

- name: mysql

url: mysql://root:l39IqqSQ83Eyg7X2Ql533453535XEgxxxx@yama-

meruvian.dotcloud.com:31821

pricing: free

state: running

type: mysql

Buka file yama.war dengan software archive manager spt:winrar,dsb

Edit file db.properties yang ada di yama/WEB-INF/classes.

Sesuaikan konfigurasi database dengan database yang telah user baut di dotcloud

Created by Meruvian Cloud Team 54

Page 55: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

db.url=jdbc:mysql://yama-meruvian.dotcloud.com:31821/yama

db.driver=com.mysql.jdbc.Driver

db.username=yama

db.password=password

4.5.5. Deploy project ke DotCloud

Letakkan file .war aplikasi user di dalam folder yama yang telah user buat pada langkah di atas.

Pada file yml terdapat sebuah properties yang dapat user gunakan untuk mengkonfigurasi approot

aplikasi yang akan user deploy.

www:

type: java

approot: yama

Jika user mengkonfigurasi file yml sedemikian rupa, maka user akan dapat mengakses project tersebut

dengan url http://[nama user]-[nama project].dotcloud.com/yama

Namun agar user dapat mengakses WAR file sebagai ROOT folder, user bisa me rename file .war user

dengan nama ROOT.war sehinnga nantinya akan bisa mengakses aplikasi tersebut dengan format url :

http://[nama user]-[nama project].dotcloud.com/

Gunakan perintah di bawah ini untuk deploy aplikasi java user ke dotcloud:

$ dotcloud push yama yama/

# rsync

[...]

sent 8.11K bytes received 352 bytes 995.06 bytes/sec

total size is 14.78K speedup is 1.75

Deployment for "ramen" triggered. Will be available in a few seconds.

2011-06-28 04:27:34 [api] Waiting for the build. (It may take a few minutes)

2011-06-28 04:27:48 [www.0] service booted

Created by Meruvian Cloud Team 55

Page 56: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

2011-06-28 04:27:48 [www.0] The build started

2011-06-28 04:27:48 [www.0] Fetched code revision rsync-1309235251.44

2011-06-28 04:27:51 [www.0] Reloading nginx configuration: nginx.

2011-06-28 04:27:51 [www.0] The build finished successfully

2011-06-28 04:27:51 [api] Deploy finished

Deployment finished successfully. Your application is available at the following

URLs

www: http://[nama project]-[nama user].dotcloud.com/

Akses url tersebut sehingga akan muncul aplikasi Yama di browser user :

4.6 Deploy Yama di Azure

Sebelum user mempublish yama user ke Windows Azure Cloud, ada beberapa hal yang perlu

dipersiapkan, yaitu :

1. Install Azure SDK

2. Membuat Database Azure

3. Web Archive (War) file dari aplikasi yang akan user deploy

4. Membuat Azure Project

5. Membuat Hosted Service

Created by Meruvian Cloud Team 56

Page 57: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

4.6.1. Install Azure SDK

1. Download Azure Tools dari http://www.microsoft.com/en-us/download/details.aspx?id=15658

2. Selanjutnya klik 2 kali file WindowsAzureToolsVS2010.exe .Jika visual studio 2010 sudah

terinstall maka akan terdapat dialog yang meninformasikan bahwa Visual Studio 2010 sudah terinstall

Klik Install

Created by Meruvian Cloud Team 57

Page 58: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

Klik I accept.

Selanjutnya proses instalasi akan berjalan

Created by Meruvian Cloud Team 58

Page 59: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

Setelah proses instalasi selesai akan terdapat informasi dialog seperti di bawah ini

\

Created by Meruvian Cloud Team 59

Page 60: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

Klik Finish untuk mengakhiri proses instalasi

4.6.2. Membuat Database Azure

Masuk ke dalam azure dashboard, klik menu Database pada bagian sebelah kiri.Lalu pada top

bar pilih tombol create database seperti pada gambar di bawah ini.

Akan muncul pop up seperti di bawah ini :

Isikan nama database, pilih Edition dan Maximum Size sesuai dengan kebutuhan. Klik OK untuk

menyutujui.

Created by Meruvian Cloud Team 60

Page 61: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

Lalu Akan muncul list database yang telah user buat pada bagian bawah.Klik Firewall Rules

Klik tombol Add

Isikan IP range Start dan Ip Range End sesuai dengan ip publik dari komputer anda.Jika anda tidak

mengetahuinya, ketikkan kate what is my ip pada google. Klik Ok

Untuk mengetahui connection string dari database yng user buat, klik pada menu database \ klik

Subcription \ pilih database yang akan user liat connection stringnya.Lalu pada bagian menu kanan

klik tombol view pada connection string

Created by Meruvian Cloud Team 61

Page 62: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

4.6.3. Menyiapkan File War

Sebelum user mengeksport aplikasi user menjadi .war terlebih dahulu user perlu memastikan bahwa

konfigurasi database yang user gunakan sudah sesuai dengan database yang berada di Azure.

Pada Yama, user dapat melihat konfigurasi database dengan mengakses file db.properties yang ada di

Created by Meruvian Cloud Team 62

Page 63: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

Buka file tersebut dan konfigurasi koneksi sesuai dengan informasi connection string yang diberikan

pada Azure dashboard

db.url=jdbc:sqlserver://[subcription].database.windows.net:1433;database=yamazure;user=[dbuser]@[subcription];password=[dbpasswrd];encrypt=true;hostNameInCertificate=*.database.windows.net;loginTimeout=30db.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver

Selanjutnya export war file dengan mengikuti langkah di bawah ini :

File war inilah yang akan user upload ke platform Azure nantinya.Untuk mendapatkan file war ini bisa

melalui eclipse dengan klik kanan pada project terpilih \ export

Klik Next

Created by Meruvian Cloud Team 63

Page 64: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

Isikan nama project yang akan user simpan.lalu klik Finish

Namun karena Yama menggunakan maven, user bisa mendapatkan file war dengan

dengan mengakses klik kanan pada project terpilih \ Run As \Maven Build

Created by Meruvian Cloud Team 64

Page 65: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

Lalu isikan perintah clean verify pada textbox goals.Klik tombol Run

4.6.4. Membuat Azure Project

Untuk membuat Azure Project dengan eclipse, klik File\New\Windows Azure Deployment Project

Isikan nama Project anda, klik Next

Created by Meruvian Cloud Team 65

Page 66: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

Keterangan :

Centang checkbox include JDK from this location dan pilih lokasi {Java_Home} pada komputer

anda.

Centang juga checkbox include server from this location.Pada combo box select pilih server yang

ada pada komputer anda, lalu klik browse dan pilih lokasi server yang tersedia.

Pada Application, remove file HelloWorld.war terlebih dahulu.Lalu Add file yama.war yang telah

user export menggunakan maven pada bahasan di atas.

Klik Finish untuk menyetujui.

4.6.5. Membuat Hosted Service

Selanjutnya user perlu membuat hosted service sebagai tempat beroprasinya aplikasi Yama

yang user install di Azure.Untuk membuat hosted service:

• login ke Azure dashboard melalu http://windows.azure.com

Created by Meruvian Cloud Team 66

Page 67: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

• Klik menu Hosted Service, Storage Accounts & CDN.klik menu New Hosted Service pada pojok kiri atas sehingga akan muncul pop up seperti gambar di bawah ini

Yang perlu di perhatikan adalah pada textbox URL Prefix for your service.Isikan textbox

Created by Meruvian Cloud Team 67

Page 68: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

tersebut sesuai dengan nama calon subdomain user dengan domain utama cloudapp.net

Jadi secara default domain akan tergenerate otomatis menjadi

[namaprefixservice].cloudapp.net

• Pada package location, klik browse locally dan pilih file .cspkg yang tergenerate ketika user

membuat Azure Project dari Eclipse

• Pada Configuration File, klik browse locally dan pilih file dengan extensi .cscfg yang

merupakan hasil generate Azure Project yang user buat.

• Add Certificate, jika user ingin menambahkan certificate yang bisa user gunakan untuk

melakukan remote dekstop

• Klik OK untuk menyetujui

Setelah proses berjalan dengan sukses, user dapat mengakses aplikasi yang telah user deploy dengan

format url :

http://[url prefix].cloudapp.net/[nama contextpath aplikasi]

4.7 Deploy Yama di CloudBees

Register terlebih dahulu di websitenya, di http://www.cloudbees.com/, setelah selesai register cek

email yang digunakan untuk mendaftar, kemudian login ke web tersebut.

Created by Meruvian Cloud Team 68

Page 69: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

Setelah login Install subscribe untuk Application atau RUN@cloud dan Database. Pilih yang Free

Install aplikasi Command Line Tools Cloudbees pada ubuntu, download aplikasi dengan perintah

berikut.

#curl -L cloudbees-downloads.s3.amazonaws.com/sdk/cloudbees-sdk-1.1-bin.zip

> /opt/bees.zip

#unzip bees.zip

#rm bees.zip

#cd cloudbees-sdk-1.1

Created by Meruvian Cloud Team 69

Page 70: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

Pada terminal .bashrc, tambahkan konfigurasi berikut.

export BEES_HOME=/opt/cloudbees-sdk-1.1

export BEES_BIN=$BEES_HOME/bin

Refresh pengaturan .bashrc dengan perintah di bawah ini.

#source .bashrc

Setelah selesai, uji aplikasi dengan perintah di bawah ini,

#bees help

buat aplikasi yama berjalan di cloudbees dengan mendeploy aplikasi yama.war ke server, sebelum

mendeploy aplikasi, pastikan semua konfigurasi database di atur sesuai dengan yang ada di app

database user.

#bees app:deploy -a meruvian <dir>/yama.war

untuk melihat seluruh informasi gunakan perintah di bawah ini.

#bees app:info -a meruvian

untuk database dapat mengikuti langkah-langkah di bawah ini.

Pertama, buat database yama, dengan perintah berikut.

#bees db:create yama

Created by Meruvian Cloud Team 70

Page 71: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

untuk melihat informasi tentang database, gunakan di bawah ini.

#bees db:info yama

Aplikasi dapat diakses di url di bawah ini

http://yama.meruvian.cloudbees. net

Created by Meruvian Cloud Team 71

Page 72: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

Lampiran A :Pengantar Meruvian Integrated Platform(MIP) versi.1.0

Pengantar

Jauh sebelum Meruvian didirikan, sampai saat buku ini dibuat, yaitu 2001 dibawah BlueOxygen,

sampai ditahun 2010 diputuskan Meruvian mengembangkan engine yang serupa tetapi lebih ringan

dan memiliki skalabilitas. Konsep pengembangan adalah membuat sebuah engine atau platform yang

memudahkan pengembangan, dan telah menjadi dasar dari solusi sejak didirikannya, kami

menyebutnya MIP (Meruvian Integrated Platform)

Meruvian Integration Platform(MIP) merupakan platform integrasi berbasis RESTful yang digunakan

untuk menciptakan solusi pengembangan aplikasi secara lebih cepat. MIP terdapat 2 core model yaitu

Yama dan Midas. Dalam platform ini Yama digunakan sebagai server dan Midas sebagai

client(Aplikasi Android), keduanya berkomunikasi satu sama lain dengan menggunakan mekanisme

REST.

MIP merupakan platform yang bersifat opensource dengan menggunakan Apache License. Sehingga

dapat dengan mudah dikembangkan. MIP juga mendukung teknologi berbasis cloud dan middleware

sehingga dapat dengan mudah dikolaborasikan.

Arsitektur yang digunakan pada MIP Server atau Yama dapat diintegrasikan dengan berbagai

komponen mengacu 3 layer yaitu Model View Controller. Hibernate dipilih sebagai solusi Model,

Spring sebagai IoC dan Struts2 sebagai Controller. Kemudian layer diatasnya akan menghasilkan

output berupa JSON/XML --merupakan sebuah plugins REST untuk Struts2, dapat diakses di

http://s2restplugins-java.net) -- yang dapat diintegrasikan dengan Android, Browser atau mobility

Created by Meruvian Cloud Team 72

Page 73: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

Arsitektur Yama

Sekilas mengenai MIP :

-) Pengembangan aplikasi secara lebih cepat

-) Total REST Platform – Consumer & Producer

-) Solusi lengkap: Cloud, Middleware untuk pengembangan solusi mobile

-) Integration Project dari IAAS ke PAAS maupun ke SAAS dan diintegrasikan dengan aplikasi

mobile

-) OpenSource menggunakan Apache License

-) Terintegrasi dengan program Link-&-Match Meruvian

Created by Meruvian Cloud Team 73

Page 74: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

Adapun fitur-fitur pada MIP, meliputi :

1. MIP Server

MIP Server yang dikembangkan berbasis REST Service yang dapat diintegrasikan dengan MIP Client

yang berupa aplikasi mobile. Mekanisme pengembangannya berupa platform integrasi (SpringMVC,

Hibernate, JPA), (Struts2, Hibernate, JPA). Sehingga, untuk pengembangan aplikasi menjadi sangat

mudah dan cepat dengan adanya Pattern Platform yang dapat mempercepat proses pembuatan aplikasi

yang sudah disediakan pada MIP Server.

Nama Proyek: Yama (http://yama.java.net)

2. MIP Client

Solusi mobile application baik menggunakan aplikasi android yang dikembangkan sebagai client dari

integrasi MIP.

Nama Proyek: Midas (http://midas.java.net)

Created by Meruvian Cloud Team 74

Page 75: Mengembangkan Solusi Cloud dengan PaaS

MRVCC01 - Mengembangkan Solusi Cloud dengan PaaS

Hubungi Kami

Anda bisa menghubungi kami di :

Created by Meruvian Cloud Team 75

Website : www.meruvian.orgEmail : [email protected] : 021-985 644 17