Jurnal Aksara Komputer Terapan Politeknik Caltex Riau Vol. 4, No. 1, Tahun 2015
87
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] Studi Teknik Informatika, Politeknik Caltex Riau, email:
[email protected] 3Program Teknik Informatika, Politeknik Caltex Riau, email:
[email protected]
2Program
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. Keywords: Cloud Computing, Platform as a Service, Dokku
Cloud Computing Platform as a Service dengan Dokku Dolly Ervina, Muhammad Arif Fadhly Ridha dan Rahmat Suhatman
Jurnal Aksara Komputer Terapan Politeknik Caltex Riau Vol. 4, No. 1, Tahun 2015
88
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 (enduser) 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 (Herokustyle 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
Cloud Computing Platform as a Service dengan Dokku Dolly Ervina, Muhammad Arif Fadhly Ridha dan Rahmat Suhatman
Jurnal Aksara Komputer Terapan Politeknik Caltex Riau Vol. 4, No. 1, Tahun 2015 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
Topologi Jaringan
Berikut adalah rancangan topologi yang digunakan:
Gambar 1 Topologi pada jaringan Public
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
3.2
89
Perancangan Platform service dokku
Gambar 2 Topologi pada jaringan Private
Berikut ini adalah rancangan Tabel 1 Pengalamatan Jaringan
4. Hasil dan Pembasan as
a
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.
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
Cloud Computing Platform as a Service dengan Dokku Dolly Ervina, Muhammad Arif Fadhly Ridha dan Rahmat Suhatman
Jurnal Aksara Komputer Terapan Politeknik Caltex Riau Vol. 4, No. 1, Tahun 2015
90
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 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 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
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.
Cloud Computing Platform as a Service dengan Dokku Dolly Ervina, Muhammad Arif Fadhly Ridha dan Rahmat Suhatman
Jurnal Aksara Komputer Terapan Politeknik Caltex Riau Vol. 4, No. 1, Tahun 2015 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.
91
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 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 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 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
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
Cloud Computing Platform as a Service dengan Dokku Dolly Ervina, Muhammad Arif Fadhly Ridha dan Rahmat Suhatman
Jurnal Aksara Komputer Terapan Politeknik Caltex Riau Vol. 4, No. 1, Tahun 2015
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 adalah
tampilan pembuatan OpenShift Origin.
aplikasi
di
92
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.
Gambar 4.12 Membuat Aplikasi Java dengan JBoss
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
Cloud Computing Platform as a Service dengan Dokku Dolly Ervina, Muhammad Arif Fadhly Ridha dan Rahmat Suhatman
Jurnal Aksara Komputer Terapan Politeknik Caltex Riau Vol. 4, No. 1, Tahun 2015
3.
4.
5.
6.
7.
8.
deployment, Ruby banyak mengunduh aplikasi atau plugin pendukung. 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. Deployment dengan jaringan private lebih cepat secara keseluruhan daripada jaringan public karena bandwidth jaringan private lebih besar daripada jaringan public. 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. Aplikasi dengan bahasa Node.js, Java dan Ruby dapat di-deploy dalam waktu bersamaan. Hal ini menunjukkan bahwa Dokku mendukung multi-app. 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. Proxmox memungkinkan untuk penambahan node baru, tetapi Dokku tidak menyediakan perintah untuk menghubungkan node satu ke
93
node lainnya. Hal ini menunjukkan bahwa Dokku tidak mendukung multi-host. 9. Aplikasi yang telah berhasil dideploy dapat diakses melalui port sesuai dengan hasil yang diperoleh.
5.2
Saran Berikut adalah saran pengembangan selanjutnya.
untuk
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]
[2]
[3]
[4]
[5]
[6]
Banarjee, S., Gupta, N., & Gupta, V. (2014). Implementation and Management of Framework for PaaS in Cloud Computing. Uttar Pradesh: Academic Science. Bayu, T. I. (2010). Penerapan Teknologi Virtualisasi Tingkat Sistem Operasi pada Server Linux Ubuntu 8.04 menggunakan OpenVZ. Salatiga: Universitas Kristen Satya Wacana. Carlson, L. (2013). Programming for PaaS. Sebastopol: O’Reilly Media Inc. Git. (t.t). About. Diakses 18 Februari 2015, diambil dari http://gitscm.com/about. Gonidis, F., Paraskakis, I., & Kourtesis, D. (2012). Addressing the Challenge of Application Portability in Cloud Platforms. Thessaloniki: University of Sheffield. Lindsay, J. (t.t). Dokku Documentation. Diakses 17 Desember 2014, diambil dari http://progrium.viewdocs.io/dokku.
Cloud Computing Platform as a Service dengan Dokku Dolly Ervina, Muhammad Arif Fadhly Ridha dan Rahmat Suhatman
Jurnal Aksara Komputer Terapan Politeknik Caltex Riau Vol. 4, No. 1, Tahun 2015 [7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
[15]
[16]
[17]
Mahmood, Z. (2013). Cloud Computing Methods and Practical Approaches. London: Springer. Marinescu, D. C. (2013). Cloud Computing Theory and Practice. Waltham: Elsevier Inc. 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. Proxmox. (t.t). Proxmox Technology. Diakses 14 Januari 2015, diambil dari https://www.proxmox.com/about/pro xmox-technology. Proxmox. (t.t). Proxmox Virtual Environment. Diakses 14 Januari 2015, diambil dari https://www.proxmox.com/proxmoxve. Purbo, O. W. (2012). Petunjuk Praktis Cloud Computing Mengunakan Open Source. Yogyakarta: Penerbit ANDI. Rizani, M. N. (2014). Implementasi Private Platform as a Service Menggunakan Stackato untuk Pemrograman Java (pp. 2–4). Bandung: Telkom University. Sabharwal, N., & Wali, P. (2013). Cloud Capacity Management. Apress. Sosinsky, B. (2011). Cloud Computing Bible. Indianapolis: Wiley Publishing Inc. Ubuntu. (t.t). The Ubuntu Story. Diakses 14 Januari 2015, diambil dari http://www.ubuntu.com/about/aboutubuntu. Xiong, H. (2014). Scalable Architectures for Platform-as-aService Clouds: Performance and Cost Analysis. Dublin: Dublin City University.
Cloud Computing Platform as a Service dengan Dokku Dolly Ervina, Muhammad Arif Fadhly Ridha dan Rahmat Suhatman
94