• Tidak ada hasil yang ditemukan

Cloud Computing Platform as a Service dengan Dokku

N/A
N/A
Protected

Academic year: 2021

Membagikan "Cloud Computing Platform as a Service dengan Dokku"

Copied!
8
0
0

Teks penuh

(1)

Cloud Computing Platform as a Service dengan Dokku

Dolly Ervina, Muhammad Arif Fadhly Ridha dan Rahmat Suhatman

Jurnal Aksara Komputer Terapan

Politeknik Caltex Riau

Website : https://jurnal.pcr.ac.id/index.php/jakt/about/index

Email : [email protected]

Cloud Computing Platform as a Service dengan Dokku

Dolly Ervina1, Muhammad Arif Fadhly Ridha2, dan Rahmat Suhatman3

1Program Studi Teknik Informatika, Politeknik Caltex Riau, email: [email protected] 2Program Studi Teknik Informatika, Politeknik Caltex Riau, email: [email protected]

3Program Teknik Informatika, Politeknik Caltex Riau, email: [email protected]

Abstrak

Dengan berkembangnya teknologi pada zaman yang modern ini, tentu telah membantu kepentingan banyak orang dalam membuat, mengubah, menyimpan, dan menyebarkan informasi. Munculnya teknologi cloud computing yang memudahkan pekerjaan dengan adanya koneksi internet. Aplikasi berbasis web seperti gmail, facebook dan twitter merupakan layanan dari cloud computing yang dikenal sebagai Software as a Service. Pengembang dapat mengembangkan aplikasi tersebut dengan menggunakan bahasa pemrograman dan tools yang didukung oleh layanan Platform as a Service. Salah satu platform berbasis cloud yang masih aktif dikembangkan hingga saat ini adalah Dokku. Dengan Dokku, pengembang dapat memilih untuk mengembangkan aplikasi dengan berbagai macam bahasa pemrograman, beberapa diantaranya yaitu: Ruby, Node.js, dan Java. Metode pengujian yang dilakukan pada penelitian ini meliputi performance dan portability pada platform, serta deployment time aplikasi yang berjalan di atas platform Dokku. Sebagai hasil, deployment time dan response time aplikasi Node.js adalah yang paling cepat serta menggunakan CPU dan memori paling rendah dibanding Java dan Ruby. Dokku dapat dikategorikan sebagai platform yang portable, mendukung multi-app, multi-user, tetapi tidak mendukung multi-host.

Kata kunci: Cloud Computing, Platform as a Service, Dokku

Abstract

By the development of technology in this modern age, it would have helped the interest of many people by creating, modifying, storing, and disseminating information. The arising of cloud computing technology has facilitate people’s work by using internet connection. Web-based applications such as gmail, facebook, and twitter are service of cloud computing, which is known by Software as a Service. Developers could develop the applications with programming language and tools which is supported by a service known by Platfotm as a Service. One of cloud-based platform which is still on active development in this time is Dokku. By using Dokku, developers could choose the programming language to develop application with various programming language, such as Ruby, Node.js and Java. The testing method in this research includes performance, portability of the platform, and application deployment which running on Dokku. As a result, deployment time and response time of Node.js application is the fastest, and lowest at using CPU and memory amongst Java and Ruby. Dokku can be categorized as a portable platform, support multi-app, multi-user, but does not support multi-host.

(2)

Cloud Computing Platform as a Service dengan Dokku

Dolly Ervina, Muhammad Arif Fadhly Ridha dan Rahmat Suhatman 1. Pendahuluan

Dengan berkembangnya teknologi pada zaman yang modern ini, tentu telah membantu kepentingan banyak orang dalam membuat, menyimpan, mengubah, dan menyebarkan informasi. Pengguna dapat memanfaatkan teknologi Cloud Computing agar mempermudah dalam menyebarkan dan mengakses informasi, secara online atau dengan adanya koneksi internet.

Aplikasi seperti gmail, facebook dan twitter yang digunakan pengguna (end-user) untuk menyebarkan informasi, merupakan layanan dari Cloud Computing yang dikenal dengan Software as a Service (SaaS). Developer dapat mengembangkan aplikasi tersebut dengan menggunakan bahasa pemrograman dan tools yang didukung oleh layanan Platform as a Service (PaaS).

Dokku merupakan PaaS yang mengadopsi aplikasi gaya Heroku (Heroku-style application) dan merupakan salah satu alternatif bagi bisnis kecil yang tidak berkeinginan untuk menggunakan layanan public cloud. Platform Dokku dibangun menggunakan Docker dan Buildpacks. Buildpacks yang diinstal pada server memungkinkan pengembang untuk mengembangkan aplikasi dengan bahasa pemrograman Ruby, Node.js, Java, PHP, Clojure, Scala, dan Python. [7]

Dengan menggunakan platform

Dokku, pengembang dapat membuat,

menyebarkan,

menjalankan,

dan

mengelola aplikasi sesuai keinginannya

dengan

cepat

seperti

sedang

menggunakan platform Heroku. Selain

itu, developer dapat menyelesaikan

pekerjaannya dengan lebih baik tanpa

memikirkan infrastrukur cloud. Penulis

juga

menyediakan

layanan

yang

bertanggung jawab dalam mengelola

infrastruktur,

sistem

operasi,

middleware, dan lingkungan runtime

dengan platform Dokku serta mengukur

kinerja dan portabilitas platform Dokku.

2. Landasan Teori

Gonidis [5] membahas tentang portabilitas (portability) aplikasi pada platform cloud. Pada PaaS, kebutuhan portabilitas adalah dapat melakukan deploy aplikasi pada platform cloud yang berbeda.

Julham dan Adam [6] menganalisis kinerja private cloud untuk pembelajaran prodi Manajemen Informatika Politeknik Negeri Medan. Kinerja private cloud diukur dengan parameter berikut, yaitu CPU usage, RAM usage, SWAP usage, dan Load average.

Banarjee dkk [1] melakukan penelitian tentang implementasi dan mengelola framework untuk PaaS. PaaS menyediakan platform komputasi, termasuk sistem operasi, lingkungan untuk mengeksekusi bahasa pemrograman, database, web server, dan lain-lain.

Rizani [14] melakukan penelitian adalah implementasi private PaaS menggunakan Stackato untuk pemrograman Java. Metode yang digunakan dalam pengerjaan proyek akhir ini menggunakan metode Waterfall Model dengan tahap analisis, design, coding, testing, dan maintenance.

Xiong [18] melakukan penelitian tentang analisa performance dan cost pada scalable architectures untuk PaaS. Terdapat dua pendekatan utama pada scaling, yaitu vertical scaling dan horizontal scaling. Pada penelitian ini digunakan horizontal scaling, dengan mengevaluasi workload, resource utilization, dan response time.

2.1 Cloud Computing

Cloud Computing adalah sebuah model komputasi (computing model), dimana sumber daya seperti processor/computing power, storage, network, dan software menjadi abstrak dan diberikan sebagai layanan di

(3)

Cloud Computing Platform as a Service dengan Dokku

Dolly Ervina, Muhammad Arif Fadhly Ridha dan Rahmat Suhatman jaringan/internet menggunakan pola akses

remote. Model billing dari layanan ini umumnya mirip dengan modem layanan publik. Ketersediaan on-demand sesuai kebutuhan, mudah untuk dikontrol, dinamik dan skalabilitas yang hampir tanpa limit adalah beberapa atribut penting dari cloud computing. [13]

Model layanan cloud computing ada 3, yaitu Software as a Service (SaaS), Platform as a Service (PaaS),dan Infrastructure as a Service (IaaS). Model deployment cloud computing antara lain Private cloud, Community cloud, Public cloud, dan Private cloud.[15]

2.2 Virtualisasi

Virtualisasi adalah sebuah konsep dimana memperbolehkan sumber daya yang ada dalam mesin komputer untuk dibagi menjadi banyak bagian secara bersamaan. Setiap bagian tersebut dioperasikan secara mandiri atau tanpa mengganggu antara satu dengan yang lain. Bagian ini yang kemudian disebut sebagai Mesin Virtual. [2]

Proxmox VE adalah solusi manajemen virtualisasi open source lengkap untuk server. Proxmox VE berbasiskan virtualisasi KVM dan virtualisasi berbasis container (OpenVZ) dan dapat mengelola virtual machine, storage, virtualized network, dan HA Clustering. [12]

3. Metodologi Penelitian

3.1 Perancangan Platform as a service dokku

Penelitian ini membangun dan menyediakan layanan Platform as a Service berbasis cloud dengan Dokku. Perangkat yang digunakan adalah sebuah server dan PC untuk client/developer. Pada server akan dibuat Virtual Private Server (VPS) atau node yang dipasangkan sistem operasi Ubuntu Server 14.04 dengan Proxmox VE sebagai server virtualisasi. Di dalam VPS akan dipasang Dokku sebagai penyedia platform berbasis cloud.

3.2 Topologi Jaringan

Berikut adalah rancangan topologi yang digunakan:

Gambar 1 Topologi pada jaringan Public

Gambar 2 Topologi pada jaringan Private

Berikut ini adalah rancangan

Tabel 1 Pengalamatan Jaringan

4. Hasil dan Pembasan 4.1 Pengujian Performance

Pengujian performance ini dievaluasi menggunakan aplikasi New Relic. Pada bagian ini dilakukan pengujian kinerja platform (performance) dengan mengevaluasi beberapa metrik, yaitu workload, response time, dan resource utilization.

4.1.1 Workload

Pengujian workload dilakukan bertahap, mulai dari 1, 3 hingga 5 pengguna, dimana masing-masing tahap

(4)

Cloud Computing Platform as a Service dengan Dokku

Dolly Ervina, Muhammad Arif Fadhly Ridha dan Rahmat Suhatman dilakukan selama 5 menit untuk melihat

rata-rata Response Time 4.1.2 Response Time

Pengujian Response Time diukur dari waktu yang dibutuhkan antara dimulainya permintaan (request) dari pengguna dan penerimaan respon (response) dari sudut pandang pengalaman pengguna. Pengujian ini diukur menggunakan aplikasi New Relic Browser. Berikut adalah hasil

Gambar 3 Grafik perbandingan response

time aplikasi dari sisi 1, 3 dan 5 pengguna

Secara keseluruhan, aplikasi dengan bahasa Java memiliki response time tertinggi (paling lambat), sedangkan aplikasi dengan bahasa Node.js memiliki nilai response time terendah (paling cepat) diantara bahasa pemrograman Java dan Ruby. Berikut adalah faktor-faktor yang mempengaruhi response time aplikasi web pada pengujian ini, yaitu Procfile, plugin dan jumlah request.

4.1.3 Resource Utilization

Pengujian metrik Resource Utilization dievaluasi untuk mengetahui berapa banyak bagian dari CPU yang digunakan saat deployment aplikasi dan memori fisik yang terpakai saat deployment aplikasi.

Gambar 4 Grafik rata-rata CPU

Utilization

Gambar 5 Grafik Rata-rata Memory

Utilization

Berdasarkan gambar 4 dan gambar 5, hasil rata-rata penggunaan CPU dan memori, aplikasi dengan bahasa Ruby memakai CPU dan memori yang paling tinggi, sedangkan aplikasi dengan bahasa Node.js memakai CPU dan memori yang paling rendah.

4.2 Pengujian Deployment Time pada jaringan private dan public Pengujian ini dilakukan untuk melihat waktu yang dibutuhkan untuk deployment aplikasi dengan bahasa pemrograman Node.js, Java dan Ruby dengan menggunakan jaringan private dan public

Gambar 6 Grafik perbandingan deployment

time dengan jaringan private dan public

Berdasarkan gambar 6, deployment dengan jaringan private lebih bagus daripada deployment dengan jaringan public, karena proses deployment pada jaringan private lebih cepat secara keseluruhan. Secara keseluruhan waktu yang dibutuhkan deployment pada jaringan private lebih cepat daripada hasil deployment time dengan jaringan public. Salah satu faktor hal ini terjadi dikarenakan bandwidth pada jaringan private lebih besar dibanding bandwidth jaringan public.

(5)

Cloud Computing Platform as a Service dengan Dokku

Dolly Ervina, Muhammad Arif Fadhly Ridha dan Rahmat Suhatman 4.3 Pengujian Multi-user

Pengujian ini dilakukan untuk mengetahui apakah platform Dokku dapat mendukung kolaborasi atau kerja sama antara para pengembang aplikasi web dalam mengembangkan aplikasi yang akan dibuat. Hasil yang diperoleh adalah pengembang satu dan pengembang lainnya dapat saling bekerja sama dalam membangun sebuah aplikasi web, yaitu dalam hal memperbaharui atau memperbaiki aplikasi.

Berikut adalah hasil screenshot kolaborasi antar developer dalam mengembangkan aplikasi Node.js.

Gambar 7 Developer melakukan clone proyek yang terdapat pada server

Pada gambar 7, developer menyalin (cloning) proyek yang sudah tersimpan pada server. Kemudian developer menambah beberapa kata pada file index.ejs.

Gambar 8 Developer menambahkan sebuah kalimat pada file index.ejs

Setelah menyimpan file index.ejs, developer II harus menambahkan file yang telah diubah dengan “git add views/pages/index.ejs”. Kemudian developer harus melakukan commit dengan “git commit –m “tambah note index””. Berikutnya

developer push proyek tersebut ke server. Pada server dapat dicek pesan perubahan

pada proyek tersebut dengan “git show”. Proyek atau aplikasi tersebut dapat di-clone oleh developer lain yang ingin mengubah aplikasi yang telah dimodifikasi.

4.4 Pengujian Multi-App

Pengujian multi-app dilakukan untuk mengetahui apakah Dokku dapat memproses tiga deployment aplikasi dengan bahasa berbeda pada waktu yang bersamaan atau tidak. Berikut adalah screenshot deployment aplikasi Node.js, Java dan Ruby yang dijalankan pada waktu yang bersamaan.

Gambar 9 Proses deployment aplikasi Node.js, Java dan Ruby pada waktu bersamaan

Pada gambar 9, diperoleh hasil positif terhadap multi-app. Pengujian ini dilakukan pada PC developer dengan menggunakan aplikasi Git Bash. Hasil pengujian menunjukkan bahwa tiga aplikasi dengan tiga bahasa berbeda dapat di-deploy di atas platform Dokku secara bersamaan.

4.5 Pengujian Multi-APP

Pada pengujian ini menguji skalabilitas

platform Dokku dengan menggunakan

horizontal scaling atau scaling out,

yaitu meningkatkan kapasitas aplikasi

keseluruhan

dengan

menambahkan

node baru pada server fisik. Pada

Proxmox, ditambahkan 1 node lagi

yang telah diinstalkan Dokku

(6)

Cloud Computing Platform as a Service dengan Dokku

Dolly Ervina, Muhammad Arif Fadhly Ridha dan Rahmat Suhatman

Gambar 10 Penambahan node pada Proxmox

Jika ditambah sebuah node baru pada Proxmox dengan VM ID 102 (seperti gambar 4.19), node dengan VM ID 100 dan VM ID 102 tidak dapat saling berhubungan karena Dokku tidak menyediakan perintah untuk menghubungkan node satu dengan node lainnya, seperti load balancer. Pengujian penambahan node ini menunjukkan bahwa Dokku tidak

mendukung multi-host karena Dokku bukan diciptakan untuk jangkauan yang luas.

4.6 Pengujian Multi-APP

Pengujian Portability dilakukan untuk menguji apakah aplikasi yang dengan bahasa pemrograman Node.js, Java dan Ruby dapat berjalan di atas platform lain, yaitu platform OpenShift Origin. Untuk menguji potabilitas platform Dokku, aplikasi dengan bahasa pemrograman Node.js, Java dan Ruby akan di-push ke platform OpenShift Origin. Berikut a

dalah

tampilan

pembuatan

aplikasi

di

OpenShift Origin.

Gambar 4.12 Membuat Aplikasi Java dengan JBoss

Setelah membuat aplikasi, pengguna dapat melakukan “git clone” aplikasi yang telah dibuat pada komputernya via Git Bash. Pengguna kemudian menyalin script yang ada pada aplikasi sesuai template OpenShift Origin.

Pada PaaS, portabilitas diukur dengan kemampuan untuk melakukan deploy antar platform yang berbeda. Pada pengujian ini, aplikasi Node.js dari Dokku dapat bermigrasi ke OpenShift Origin karena OpenShift Origin mendukung bahasa pemrograman Node.js. Agar aplikasi dengan bahasa Node.js yang telah di-deploy pada Dokku dapat berjalan di platform OpenShift Origin, dibutuhkan perubahan-perubahan yang tidak terlalu banyak, seperti tata letak file dan konfigurasi file penghubung yang berbeda dengan Dokku.

Dalam hal ini, Dokku dapat dikategorikan sebagai platform yang portable karena Dokku tidak membutuhkan API (Application Programming Language) atau bahasa khusus dalam membuat aplikasinya. Aplikasi yang di-deploy di atas platform Dokku dapat berpindah ke platform lain yang mendukung bahasa Node.js, Java, Ruby, dan bahasa pemrograman

lainnya.

5. Kesimpulan dan Saran 5.1 Kesimpulan

Kesimpulan yang dapat diperoleh dari Proyek Akhir ini adalah sebagai berikut.

1. Response time aplikasi dengan bahasa pemrograman Node.js lebih cepat daripada response time aplikasi dengan bahasa Java dan Ruby. Hal ini dipengaruhi oleh beberapa faktor, yaitu Procfile, plugin, dan jumlah request.

2. Aplikasi dengan bahasa Ruby memakai CPU dan memori paling tinggi, karena pada saat

(7)

Cloud Computing Platform as a Service dengan Dokku

Dolly Ervina, Muhammad Arif Fadhly Ridha dan Rahmat Suhatman deployment, Ruby banyak

mengunduh aplikasi atau plugin pendukung.

3. Deployment time aplikasi menggunakan bahasa Node.js adalah yang paling cepat secara keseluruhan dibandingkan deployment time aplikasi menggunakan bahasa Ruby dan Java, karena proses pengenalan aplikasi (detecting app) dan proses compiling Node.js lebih cepat daripada Java dan Ruby.

4. Deployment dengan jaringan private lebih cepat secara keseluruhan daripada jaringan public karena bandwidth jaringan private lebih besar daripada jaringan public.

5. Dokku dapat dikategorikan sebagai platform yang portable karena Dokku tidak membutuhkan API (Application Programming Language) atau bahasa khusus dalam membuat aplikasinya. Aplikasi yang di-deploy di atas platform Dokku dapat berpindah ke platform lain yang mendukung bahasa Node.js, Java, Ruby, dan bahasa pemrograman lainnya dengan sedikit perubahan tata letak file dan konfigurasi.

6. Aplikasi dengan bahasa Node.js, Java dan Ruby dapat di-deploy dalam waktu bersamaan. Hal ini menunjukkan bahwa Dokku mendukung multi-app.

7. Dokku cocok digunakan sebagai media untuk kolaborasi antar pengembang aplikasi web. Pengembang satu dan pengembang lainnya dapat bekerja sama dalam mengembangkan suatu aplikasi dengan bahasa pemrograman yang tersedia dengan menggunakan clone dan commit pada proyeknya. Hal ini menunjukkan bahwa Dokku mendukung multi-user.

8. Proxmox memungkinkan untuk penambahan node baru, tetapi Dokku tidak menyediakan perintah untuk menghubungkan node satu ke

node lainnya. Hal ini menunjukkan bahwa Dokku tidak mendukung multi-host.

9. Aplikasi yang telah berhasil di-deploy dapat diakses melalui port sesuai dengan hasil yang diperoleh.

5.2 Saran

Berikut adalah saran untuk pengembangan selanjutnya.

1. Penambahan variasi bahasa pemrograman seperti PHP, Python, Clojure, Go, dan Scala.

2. Penambahan metode pengujian pada sisi keamanan (security) dan skalabilitas (scalability).

3. Mengembangkan web interface untuk pengembang aplikasi web pada platform Dokku.

Daftar Pustaka

[1] Banarjee, S., Gupta, N., & Gupta, V. (2014). Implementation and Management of Framework for PaaS in Cloud Computing. Uttar Pradesh: Academic Science.

[2] Bayu, T. I. (2010). Penerapan Teknologi Virtualisasi Tingkat Sistem Operasi pada Server Linux Ubuntu 8.04 menggunakan OpenVZ. Salatiga: Universitas Kristen Satya Wacana.

[3] Carlson, L. (2013). Programming for PaaS. Sebastopol: O’Reilly Media Inc.

[4] Git. (t.t). About. Diakses 18 Februari 2015, diambil dari http://git-scm.com/about.

[5] Gonidis, F., Paraskakis, I., & Kourtesis, D. (2012). Addressing the Challenge of Application Portability in Cloud Platforms. Thessaloniki: University of Sheffield.

[6] Lindsay, J. (t.t). Dokku Documentation. Diakses 17 Desember 2014, diambil dari http://progrium.viewdocs.io/dokku.

(8)

Cloud Computing Platform as a Service dengan Dokku

Dolly Ervina, Muhammad Arif Fadhly Ridha dan Rahmat Suhatman [7] Mahmood, Z. (2013). Cloud

Computing Methods and Practical Approaches. London: Springer. [8] Marinescu, D. C. (2013). Cloud

Computing Theory and Practice. Waltham: Elsevier Inc.

[9] Mell, P., & Grace, T. (2011). The NIST Definition of Cloud Computing Recommendations of the National Institute of Standards and Technology. Gaithersburg: National Institute of Standards and Technology.

[10] Proxmox. (t.t). Proxmox Technology. Diakses 14 Januari 2015, diambil dari

https://www.proxmox.com/about/pro xmox-technology.

[11] Proxmox. (t.t). Proxmox Virtual Environment. Diakses 14 Januari

2015, diambil dari

https://www.proxmox.com/proxmox-ve.

[12] Purbo, O. W. (2012). Petunjuk Praktis Cloud Computing Mengunakan Open Source. Yogyakarta: Penerbit ANDI.

[13] Rizani, M. N. (2014). Implementasi Private Platform as a Service Menggunakan Stackato untuk Pemrograman Java (pp. 2–4). Bandung: Telkom University.

[14] Sabharwal, N., & Wali, P. (2013). Cloud Capacity Management. Apress.

[15] Sosinsky, B. (2011). Cloud Computing Bible. Indianapolis: Wiley Publishing Inc.

[16] Ubuntu. (t.t). The Ubuntu Story. Diakses 14 Januari 2015, diambil dari

http://www.ubuntu.com/about/about-ubuntu.

[17] Xiong, H. (2014). Scalable Architectures for Platform-as-a-Service Clouds: Performance and Cost Analysis. Dublin: Dublin City University.

Gambar

Gambar 3 Grafik perbandingan response  time aplikasi dari sisi 1, 3 dan 5 pengguna
Gambar 7 Developer melakukan clone proyek  yang terdapat pada server
Gambar 4.12 Membuat Aplikasi Java  dengan JBoss

Referensi

Dokumen terkait

memory serta hardisk yang nantinya akan digunakan oleh instance yang berjalan.. Jika kedua server tersebut dikonfigurasi dengan benar maka akan terbentuk. sebuah jaringan

Kemudian dilakukan upload file ke mesin ftp dan dalam waktu yang bersamaan server cloud melakukan aktifitas perekaman CPU sehingga akan dihasilkan data yang

Kebutuhan perangkat keras dalam perencanaan jaringan cloud computing menggunakan ubuntu server dan aplikasi Owncloud layanan Infrastruktur As a Service pada PT. Global

Melalui Cloud Computing Anda dapat menyimpan data penting di data center dan Anda pun dapat mengakses aplikasi untuk perusahaan Anda.. Ketika perusahaan Anda bertumbuh, Anda

Gambar 4: Grafik trafik jaringan saat pengujian waktu startup Hasil pengujian waktu startup, didapati Ovirt dapat menjalankan 10 komputer virtual dengan baik, jika

Berdasarkan penjabaran analisis hasil pengujian diatas, untuk indikator waktu startup lab komputer virtual, server Ovirt dengan spesifikasi dan kondisi jaringan yang

In order to fulfill the heterogeneous demands of users, cloud providers are offering variety of services SaaS, PaaS, IaaS and deployment models Public, Private, Hybrid to the

As an example of a public cloud we consider Amazon Web Services AWS, and for a private cloud VM Ware cloud technology.. These providers hold most of the market share in their specific