Mengembangkan Aplikasi Platform As A Service (PaaS) pada OpenShift [Part 1]

Akhir-akhir ini sedang ramai dibincangkan mengenai cloud computing, Sebagai developer kita tidak akan banyak berbincang di IaaS tetapi kita akan fokus di PaaS. Ada dua provider besar di Open Source PaaS yaitu OpenShift dan CloudFoundry. Tetapi ada juga yang menyediakan layanan PaaS seperti Cloudcontrol, AppFog (implementasi dari CloudFoundry), HerokuEngineyard dan PHPCloud dari Zend, Tetapi disini saya akan coba bahas mengenai OpenShift.

# Intro Cloud Computing :

Sebelum saya bahas jauh mengenai OpenShift engga ada salahnya kita mengingat kembali sedikit tentang Cloud Computing. Cloud Computing itu sebuah tumpukan (Stack) antara SaaS, PaaS dan IaaS. Cloud sendiri diartikan sebuah internet itu sendiri dan Computing merupakan sebuah proses komputasi. Lalu mengapa Cloud computing? karena didalamnya terdapat kompulan komputer server yang saling terintegrasi, Jika sebuah server down, maka server lain akan menggantikannya dan begitu seterusnya. Cloud computing hanyalah sebuah layanan dan artinya kita harus percaya pada layanan yang kita gunakan, Layanan-layanan yang terbesar dan pertama adalah Amazon web service (AWS). Kita bisa mencobanya secara gratis disana. OpenShift sendiri menggukan layanan IaaS disana.

# Layanan SaaS :

Kalo SaaS itu analoginya ketika kita copy program aplikasi dari teman dan mau di install di komputer rumah anda, maka anda perlu disk (harddisk / flashdisk) lalu anda pulang ke rumah dan install. Betul? Nah kalo SaaS engga perlu bawa disk kemana-mana cukup dengan internet maka anda bisa jalankan di PC atau gadget anda seperti Facebook, Gmail dan lain-lain. Artinya SaaS ini berada di level end user, Jadi tinggal gunakan saja.

# Layanan PaaS :

Kalo bicara tentang PaaS tidak seperti IaaS dan SaaS, PaaS terlihat jauh lebih abstract karena berada diantara sebuah stack dan PaaS tepat berada ditengah diantara SaaS dan IaaS. Yang kita perlukan disini seperti bahasa pemrograman/platform PHP, Python, JBoss, MySQL, PostgreSQL, MongoDB, Apache dll. Provider PaaS menawarkan sebuah platform dan kita tinggal coding untuk aplikasi kita.

 Perlu diperhatikan bahwa jika kita menggunakan layanan untuk semua lapisan stack bisa disebut pengguna cloud computing? Itu tidak tepat. Intinya tergantung kebutuhan kita, jika butuh PaaS ya kita cari provider PaaS.

# Layanan IaaS :

Bagaimana dengan IaaS? IaaS akan banyak konfigurasi-konfigurasi yang kompleks mengenai jaringan/Networking.

Berikut ini adalah layanan yang ditawarkan dilevel IaaS :

– Host provisioning

– Load balancing

– Public and private network connectivity

– Firewalls

– Storage

– dll

# Mengenal OpenShift PaaS

Openshift merupakan cloud computing PaaS (Plaftform as a Service) dari Red Hat yang dikembangkan menggunakan bahasa pemrograman Ruby. Layanan PaaS ini dimana kita tidak perlu lagi memikirkan namanya insfrastruktur seperti apa, karena sudah sediakan oleh provider Red Hat. Sebagai developer kita tinggal coding aplikasi di cloud. Saya kira untuk PHP cocok selain Java, Python, Perl, Node.js dan Ruby. Kita akan mendeploy aplikasi di OpenShift dengan menggunakan Git, Jadi kita akan berliku-liku dengan Git.

Selain itu jika kita ingin bekerja dengan framework maka OpenShift support dengan berbagai jenis web application framework (Tetapi saat ini masih dalam status percobaan) seperti cakePHP, django, codeigniter dan lain-lain bisa dilihat disini. OpenShift juga menawarkan open source platform untuk mengembangkan dikomputer lokal maupun untuk data center kita nantinya, Maka kita gunakan OpenShift Origin. bisa didownload disini. Nah implementasi dari OpenShift Origin ini diimplementasikan di RedHat dengan space host yang terbatas, dengan nama FreeShift (Baca Gratis) sedangkan jika kita butuh storage besar kita bisa gunakan yang MegaShift (versi Berbayar).

OpenShift menyediakan 2 cara untuk membantu mengembangkan aplikasi yang ingin kita buat.

1. Melalui website

2. Client Tool

Akan tetapi kita tetap membutuhkan client tool untuk diinstall di komputer lokal, karena kita butuh koneksi keserver.

# Memulai OpenShift

1. Untuk memulai kita harus mendaftar terlebih dahulu ke situs resminya, di openshift.redhat.com

2. Harus upload public RSA ke sini https://openshift.redhat.com/app/account 

Dengan syarat harus sudah terinstal OpenSSH di komputernya, jika anda menggunakan Windows bisa gunakan PuTTY

Jika anda belum terinstal maka lakukan perintah berikut:

$ sudo apt-get install openssh-client

3. Lakukan generate SSH Key

$ ssh-keygen -t rsa

Copy public RSA (id_rsa.pub)

$ sudo gedit ~/.ssh/id_rsa.pub

Paste seperti berikut:

4. Buat namespace:

Formatnya seperti berikut:

$namaaplikasi-namespace.rhcloud.com

Kita mendapatkan satu $namespace dengan tiga nama $namaaplikasi dengan akhiran .rhcloud

sebelum membuat aplikasi kita harus instal dulu client toolnya.

5. Instal Client Tool

Instalasi OpenShift Client Tools di Ubuntu / Based debian.

Install Ruby:

$ sudo apt-get install ruby-full

Test ruby untuk memastikan terinstall dengan baik.

$ ruby -e ‘ puts “Hello World ” ‘ 

Hello World

Install Git:

$ sudo apt-get install git-core

Test Git version, untuk memastikan terinstall dengan baik

$ git –version

version 1.7.9.5

Install RubyGems:

$ sudo apt-get install rubygems

Install Rhc dengan gem:

$ sudo gem install rhc

Test rhc yang sudah di instal

$ rhc

6. Test Drive

Disini saya akan membuat dengan nama applikasi myapp dengan tipe cartidge php-5.3

$ rhc app create -a myapp -t php-5.3

Upload aplikasi kita, sebagai contoh kita akan menampilkan “Hello World”, Disini kita gunakan Git dan harus familiar dengan Git karena perubahan-perubahan pada aplikasi menggunakan version control Git, untuk mempermudah proses mengembangan.

$ git clone ssh://UUID@myapp-alay.rhcloud.com/~/git/myapp.git/

Masuk ke directory php:

$ cd php

$ sudo gedit index.php

isikan dengan berikut:

<?php echo “Hello World”;

Lakukan add, commit dan push

$ git init

$ git add .

$ git commit -a -m ‘commit untuk pertama kali’

$ git push -u origin master

Selanjutnya buka http://$myapp-$namespace.rhcloud.com/

7. Akses ke SSH untuk mengontrol/memonitoring aplikasi dan debugging.

$ ssh UUID@myapp-namespace.rhcloud.com

Untuk selanjutnya bisa buka link remote access, untuk perintah-perintah penting

Insya Allah kita lanjut di part 2, part 3 dan seterusnya, Sengaja saya bagi ke part-part supaya tidak jenuh dan hingga pada akhirnya saya akan upload PDF-nya juga, mungkin dengan berbagai revisi dan menatanya supaya tidak berantakan.   :matabelo

Part dua (2) bagaimana membuat aplikas di cloud PaaS Red Hat dan custom domain.

Part tiga (3) bagaimana membuat dengan memanfaatkan DIY (Do It Yourself).

Part empat (4) bagaimana memanfatkan OpenShift Origin.

Silahkan ditunggu kritik, saran dan komentarnya 🙂

 

Update:

Openshift sekarang udah cukup banyak perubahan, mungkin yang dipost udah tidak relavan. Mudah-mudahan kalo sempet saya update lagi. Silahkan bisa buka paduannya langsung kalo mau coba-coba https://www.openshift.com/

  • dimas

    saya mau bertanya,, ada contact person PM atau email yg saya bisa utk bertanya…

    • Hai dimas.
      Mau tanya apa? tanya disini aja.
      di halaman about ada emailnya ko.