Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

69
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rancang Bangun Layanan Platform as a Service (PAAS) untuk Mendukung Sistem Multi-Tenancy Pengembangan Aplikasi berbasis Komputasi Awan Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya Jurusan Teknik Informatika Institut Teknologi Sepuluh Nopember 7 Januari 2014

Transcript of Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

Page 1: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Rancang Bangun Layanan Platform as a Service(PAAS) untuk Mendukung Sistem Multi-Tenancy

Pengembangan Aplikasi berbasis KomputasiAwan

Presentasi Sidang Tugas Akhir

Putu Wiramaswara Widya

Jurusan Teknik InformatikaInstitut Teknologi Sepuluh Nopember

7 Januari 2014

Page 2: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Daftar Isi

1 Pendahuluan

2 Landasan Teori

3 Rancangan Sistem

4 Implementasi

5 Pengujian dan Evaluasi

6 Penutup

7 Demo

8 PSD/FAQ

Page 3: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Layanan Hostingdan pengembangan aplikasi

Merupakan layanan meletakkan hosting aplikasi dan basis data diInternet. Umumnya dikenal dengan layanan web hosting atauhosting 1

Layanan ini terdiri dari berbagai macam bentuk berdasarkan :

Bagaimana aplikasi diletakkan dan diorganisasikan...

Bagaimana platform aplikasi menjalankannya ...

Bagaimana pengguna menggunakannya...

1selanjutnya akan menggunakan istilah ini sebagai rujukan

Page 4: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Hosting TradisionalPaaS: Shared Web Hosting dengan LAMP

Secara arsitektural, layanan hanya menyediakan satu platformseragam (yaitu LAMP) dan aplikasi diletakkan di server yang samapada sebuah konfigurasi: semua web berada di satu prosesApache2 dan semua basis data berada di satu proses.

Permasalahan: adanya peluangbottleneck yang besar dankemampuan platform yangterbatas.Keuntungan: Layanan inimudah disediakan oleh siapasaja, sangat murah dan mudahdigunakan.

Page 5: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Hosting TradisionalIaaS: Virtual Private Server (VPS)

Memberikan kendali penuh terhadap sistem operasi pada satuserver (dengan satu nomor IP publik) berkat teknologi virtualisasiberbasis hypervisor

Permasalahan: susahnyakonfigurasi dan perawatan.Keuntungan: konfigurasi yangluas dan dukungan berbagaiplatform asalkan didukung olehsistem operasi induk.

Page 6: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Hosting Modernberbasis komputasi awan

Paradigma layanan hosting menggunakan komputasi awan kinimulai populer di tengah kebutuhan untuk :

Dukungan multi-platform (Ruby on Rails, Node.js, PythonDjango, dll.)

Dukungan scaling horizontal.

Penggunaan metrik untuk biaya akses (jumlah pemroses,jumlah memori, jumlah penggunaan jaringan).

Page 7: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Hosting ModernOpenShift dan Heroku

Kedua layanan ini merupakan contoh layanan hosting berbasiskomputasi awan yang memberikan layanan multi-platform.

Page 8: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Hosting ModernKetersediaan Layanan dan Peluang

Namun, layanan semacam ini sangat jarang tersedia terutamadi Indonesia.

Bagaimana pihak ketiga membangunlayanan serupa dengan arsitektur sederhana seperti cPanelmengadopsi berbagai fitur komputasi awan.

Page 9: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Pada Tugas Akhir ini

Rumusan Masalah: Bagaimana membangun layanan PaaSuntuk penyedia jasa hosting aplikasi dengan prinsip komputasiawan: self-service, resource-pooling dan measured service.

Tujuan: Menghasilkan sistem PaaS untuk hosting yang siapdigunakan.

Manfaat: Memberikan peluang kepada pihak ketiga yangingin membuat layanan hosting berbasis komputasi awandengan dukungan multi-platform, multi-tenancy dandukungan scaling.

Page 10: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Rancangan Sistembeserta batasannya

Mendukung empat platform Web: PHP5, Python 2.7,Node.js, dan Ruby 1.9. (multi-platforms)

Platform Web dijalankan dalam container virtual untuksandboxing dan bisa berjalan di banyak node sekaligus(multi-nodes).

Mendukung banyak aplikasi untuk banyak pengguna.(multi-tenancy)

Basis data dibatasi pada platform MySQL 5.5 dan berjalanmaksimal pada satu node.

Sistem billing/penagihan tradisional: setiap billing harusdiverifikasi oleh admin secara manual seperti layanan cPanel diIndonesia. (Bisa dikembangkan di kemudian hari)

Metrik layanan: jumlah Node, jumlah memori, jumlah ruangcakram penyimpanan.

Page 11: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Daftar Isi

1 Pendahuluan

2 Landasan Teori

3 Rancangan Sistem

4 Implementasi

5 Pengujian dan Evaluasi

6 Penutup

7 Demo

8 PSD/FAQ

Page 12: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Komputasi AwanDasar dan Karakteristik

Memberikan akses yang ubiquitous yang nyaman dan aksesjaringan sesuai kebutuhan pada kumpulan sumber dayakomputer yang dapat dikonfigurasi sehingga bisa ditetapkansecara cepat dengan usaha manajemen seminimal mungkin.Karakteristik 2 :

On-Demand Self-Service: penetapan konfigurasi tanpa perluinteraksi secara manual.

Broad Access Network: bisa diakses melalui media apa saja.

Resource Pooling: menyatukan banyak sumber dayakomputasi secara dinamis.

Rapid Elasticity: penetapan sumber daya secara fleksibel.

Measured Service: memberikan kontrol terhadap sumber dayamelalui pengukuran metrik.

2Definisi menurut National Institute of Standard Technology (NIST)

Page 13: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Komputasi AwanModel Layanan

Bentuk layanan: Infrastructure as a Service, Platform as aService, Software as a Service, x as a Service.

Penempatan: Publik, Private, Gabungan.

Page 14: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Platform Pengembangan SistemBackend dan Frontend

Node.js: kerangka kerja berbasis Javascript untukpengembangan aplikasi Web dan jaringan. Digunakan baik diBackend dan Frontend.

MEAN Framework: kombinasi Node.js dan tiga kerangkakerja lain yaitu Angular JS (Antarmuka frontend dinamis),MongoDB (basis data NoSQL) dan Express.js (kerangka kerjabackend).

Docker: teknologi virtualisasi tingkat sistem operasi (dibawah kernel yang sama) pada Linux.

HAProxy: sistem penyeimbang muat/load balancer padatingkat HTTP dan TCP.

Page 15: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Platform Pengembangan SistemVirtualisasi berbasis Docker

Docker pada dasarnya merupakan pengembangan chrootdengan implementasi cgroup pada kernal Linux untukmengelompokkan proses dan resource lainnya pada setiapcontainer.

Satu instance Docker dijalankan dalam satu buah citracakram/disk images yang sudah disiapkan.

Page 16: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Daftar Isi

1 Pendahuluan

2 Landasan Teori

3 Rancangan Sistem

4 Implementasi

5 Pengujian dan Evaluasi

6 Penutup

7 Demo

8 PSD/FAQ

Page 17: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Kasus Penggunaan

Page 18: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

FiturUntuk Penyewa/Tenant

Mengajukan aplikasi Web baru dengan memilih jenis kerangkakerja, kapasitas ruang diska dan jumlah Node yang digunakan.

Mengajukan basis data baru dengan jenis MySQL berdasarkankapasitas cakram penyimpanan.

Scale-Out untuk menambah Node atau kapasitas ruangpenyimpanan dari aplikasi Web secara mandiri.

Mengelola berkas aplikasi Web melalui antarmuka Git.

Mengelola basis data berbasis shell MySQL.

Menjalankan dan menghentikan aplikasi yang sedang berjalan.

Memonitor jalannya aplikasi berupa log pesan debug dan logakses.

Mengubah nama domain aplikasi untuk DNS Server.

Page 19: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

FiturUntuk Administrator

Melakukan verifikasi penagihan yang diajukan oleh penggunadan aktivasi pesanan dan proses scaling.

Memonitor keadaan di setiap Node.

Mendata dan mencatat semua Node dan Load Balancer yangterpasang.

Page 20: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Arsitektur SistemSecara Umum

Page 21: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Arsitektur SistemPenjelasan

Manager: pengelola aplikasi, mengatur aksi ke setiap Nodedan Load Balancer, menerima masukan dari pengguna melaluiantarmuka.

Load Balancer: menerima masukan permintaan aplikasi dariInternet untuk dilanjutkan ke Node. (HAProxy)

Node: menyimpan aplikasi dan basis data dalam suatukontainer. (Docker)

Page 22: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Arsitektur SistemDesain Manager

Backend REST API berbasis HTTP untuk menerima masukandan melakukan aksi ke Node dan Load Balancer. (MEAN)

Frontend berbasis HTTP untuk antarmuka dengan Backend.(MEAN)

Komunikasi Backend ke Node dan Load Balancer denganOpenSSH.

Page 23: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Arsitektur SistemSitemap Frontend Penyewa

Page 24: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Arsitektur SistemSitemap Frontend Admin

Page 25: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Arsitektur SistemDesain Load Balancer

Menggunakan HAProxy pada tingkat HTTP

Manager memberikan aksi ke Load Balancer melalui KakasPanggil yang disimpan pada Load Balancer (Node.js):register-frontend, register-backend, unregister-frontend,unregister-backend, reload-proxy.

Algorima pemilihan Node: leastconn.

Page 26: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Arsitektur SistemDesain Node

Setiap instance aplikasi dan basis data pada setiap Nodedijalankan secara sand-box didalam suatu kontainer berbasisDocker sehingga tidak saling menganggu satu sama lain.Manager memberikan aksi ke Load Balancer melalui KakasPanggil yang disimpan pada Node: start-app, stop-app,start-db, stop-db, status-app, status-db, dll.Aplikasi multi-node: Disimpan dalam 1 rootNode untuk aksespenyimpanan utama dan (n-1) slaveNode untuk aksescadangan.

Page 27: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Arsitektur SistemDesain Node - Citra Cakram Docker

nodejs-nodemon: Terdiri dari kakas Node.js besertaNodemon sebagai Eksekutornya.

php5-fpm: PHP 5.5 dengan mesin FastCGI berbasis FPMdan Composer sebagai manajemen paket.

python27-gunicorn: Python 2.7 dengan Gunicorn sebagaimesin FastCGI, dijalankan dalam virtualenv denganmanajemen paket berbasis PIP.

ruby19-thin: Ruby 1.9 dengan Thin sebagai mesin FastCGI,menggunakan manajemen paket berbasis Bundle dan Gem.

mysql-single: Basis data berbasis MySQL pada satu Node.

Semua citra cakram untuk instance aplikasi memiliki perangkatlunak NGINX sebagai Web Server.

Page 28: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Arsitektur SistemBagaimana Aplikasi Diakses dari Luar

Page 29: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Daftar Isi

1 Pendahuluan

2 Landasan Teori

3 Rancangan Sistem

4 Implementasi

5 Pengujian dan Evaluasi

6 Penutup

7 Demo

8 PSD/FAQ

Page 30: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Lingkungan Implementasi

Perangkat keras untuk pengembangan: PC Intel(R) Core(TM)i3 dengan memori 8GB.

Perangkat lunak :

Ubuntu 14.04.1 LTSDesktop xfceEditor teks vimGit 1.9.1Nodejs 0.10Docker 1.2.0Mozilla FirefoxTEXlive

Page 31: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Implementasi ManagerBackend REST API

Setiap rute diberikan hak akses tertentu: Admin, Penyewaatau Non-Pengguna.

Akses dilakukan melalui token yang didapat dari rute /auth(authController)

Daftar pengendali :

authController (/auth): Meminta dan verifikasi token aksesusersController (/users): Kelola tenantappController (/apps): Kelola CRUD aplikasi dan operasi keNode/Load Balancer.dbController (/dbs): Kelola CRUD basis dan operasi ke Node.nodeController (/nodes): Kelola Node dan Load Balancer padasistembillingController (/billing): Kelola dan proses billing daripenyewa.

Page 32: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Implementasi ManagerBackend REST API - Proses Mendapatkan Token

1 userModel.authenticateUser(userName, password, function(err, result) {2 if(!err && result == true) {3 var expires = moment().add(’days’, 7).valueOf();4 var token = jwt.sign({5 iss: userName,6 role: "user",7 exp: expires8 }, tokenSecret)9

10 res.send({11 token: token,12 expires: expires,13 user: userName,14 role: "user"15 });16 });

Page 33: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Implementasi ManagerBackend REST API - Start Aplikasi

1 nodeModel.Node.find({’$or’: [{’_id’: app.rootNode},2 {’_id’: {’$in’: app.nodes}}]}, function(err, nodes) {3 async.eachSeries(nodes, function(node, callback) {4 var args = [config.nodeUserName + ’@’ + node.nodeIP,5 ’sudo’,6 ’hoster-start-app.js’,7 ’--system-user-name=’ + config.nodeUserName,8 ’--memory=’ + app.memoryLimit,9 ’--app-id=’ + app._id,

10 ’--app-type=’ + app.applicationType];1112 ps.on(’exit’, function(code) {13 if(code == 0) {14 callback();15 } else {16 callback(new Error())17 }18 })19 }, function(err) {20 callback(err)21 })22 });23 });

Page 34: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Implementasi ManagerFrontend

Menggunakan Angular JS

Dipecah ke dalam dua antarmuka: antarmuka Admin danPenyewa (Ada dua ng-app: adminApp dan userApp).

Setiap antarmuka diimplementasikan dalam beberapapengendali Angular (ng-controller) yang merepresentasikansetiap elemen pada peta situs.

Page 35: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Implementasi NodeCitra Carkam Docker

Nama Layanan Penempatan Aplikasinodejs-nodemon

Nginx,Node.js,Nodemon,NPM

Aplikasi utama harus berada pa-da berkas index.js dan berjalanpada port 3000. Paket yang di-butuhkan didefinisikan pada ber-kas package.json untuk kemu-dian dipasangkan pada saat prosesstart aplikasi.

php55-fpm Nginx, php5,php5-fpm

Aplikasi utama harus berada pa-da berkas index.php. Paketyang dibutuhkan didefinisikan pa-da berkas composer.json untukkemudian dipasangkan pada saatproses start aplikasi menggunak-an composer

Page 36: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Implementasi NodeCitra Carkam Docker (2)

Nama Layanan Penempatan Aplikasipython27-gunicorn

Nginx,Python 2.7,Gunicorn,Virtualenv,Pip

Nama pustaka utama WSGIdidefinisikan pada berkasgunicorn-args.txt. Paketyang dibutuhkan didefinisikanpada berkas requirements.txt

menggunakan format pip.Paket akan dipasang melaluivirtualenv pada saat aplikasipertama kali dijalankan.

Page 37: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Implementasi NodeCitra Carkam Docker (3)

Nama Layanan Penempatan Aplikasiruby19-thin Nginx, Ruby,

BundlePaket yang dibutuhkan didefini-sikan pada berkas Gemfile un-tuk dipasang menggunakan per-intah gem install pada saatmenjalankan aplikasi pertama ka-linya. Berkas config.ru ak-an menjadi titik awal dari apli-kasi dan harus memuat modulBundler agar dapat memuat pa-ket yang diletakkan pada direktorivendor/bundle.

mysql-single MySQL Bukan citra untuk aplikasi

Page 38: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Implementasi NodeSkrip Panggil

create-app skrip untuk membuat aplikasi baru pada rootNode. Skrip ini tidak perlu dipanggil pada slave Node.

start-app skrip untuk menjalankan suatu aplikasi pada suatuNode melalui container Docker. Skrip dipanggil untuk setiapNode yang memiliki aplikasi bersangkutan.

stop-app skrip untuk menghentikan suatu aplikasi pada suatuNode.

status-app skrip untuk melihat status berjalannya aplikasipada suatu Node

log-app skrip untuk melihat data berkas log pada suatuaplikasi melalui container Docker

Page 39: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Implementasi NodeSkrip Panggil (2)

create-db skrip untuk membuat basis data baru.

start-db skrip untuk menjalankan suatu basis data pada suatuNode melalui container Docker. Skrip dipanggil untuk setiapNode yang memiliki basis data bersangkutan.

stop-db skrip untuk menghentikan suatu basis data padasuatu Node.

status-db skrip untuk melihat status berjalannya basis datapada suatu Node

log-db skrip untuk melihat data berkas log pada suatu basisdata melalui container Docker

status-node skrip untuk melihat status suatu Node secaraumum.

log-node skrip untuk membaca berkas log pada Node.

Page 40: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Implementasi Load BalancerSkrip Panggil

register-frontend skrip untuk melakukan pendaftaranfrontend baru pada suatu aplikasi.

register-backend skrip untuk melakukan pendaftaranbackend baru pada suatu aplikasi.

unregister-frontend skrip untuk melakukan penghapusandata frontend yang sudah ada.

unregister-backend skrip untuk melakukan penghapusandata backend yang sudah ada.

reload-proxy skrip untuk melakukan restart pada HAProxyuntuk menerapkan pengaturan yang sudah ada.

Page 41: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Daftar Isi

1 Pendahuluan

2 Landasan Teori

3 Rancangan Sistem

4 Implementasi

5 Pengujian dan Evaluasi

6 Penutup

7 Demo

8 PSD/FAQ

Page 42: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Lingkungan Pengujian

Page 43: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Teknik PengujianSecara garis besar

Pengujian Unit: Menguji ketepatan implementasi padabackend Manager.

Pengujian Kapasitas: Menguji penambahan aplikasi danbasis data pada sistem sampai pada batas. (Platfform, jumlahNode dan memori dipilih secara acak)

Pengujian Performa: Uji performa aplikasi yang berjalanpada sistem secara bersamaan. (Menggunakan aplikasi yangdibangun pada uji kapasitas)

Pengujian Kapasitas dan Performa dilakukan dalam lima kali untukmelihat berbagai kombinasi acak dari aplikasi.

Page 44: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Uji UnitUji Unit pengendali appController

Page 45: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Uji UnitUji Unit pengendali dbController

Page 46: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Uji UnitPembahasan Hasil

Semua uji unit yang dilakukan menunjukkan warna hijau(berhasil) dengan variasi waktu tertentu.

Waktu terlama (5 - 10 detik) dilakukan pada operasi untukmembuat dan menjalankan aplikasi dan basis data karenaadanya waktu yang diperlukan untuk melakukan pemanggilanskrip panggil, pembuatan direktori/kontainer baru pada Nodeuntuk melakukan proses ini.

Page 47: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Uji Kapasitas dan PerformaAplikasi Contoh

Terdiri dari dua macam aplikasi untuk setiap platform: dengandan tanpa basis data.Aplikasi dengan basis data: Menampilkan JSON utuh yangdiambil (SELECT) dari basis data.Aplikasi tanpa basis data: Menampilkan JSON utuh yangdiambil dari berkas lokal.

Page 48: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Uji Kapasitas dan PerformaKakas Uji Performa

Apache BenchmarkPerintah: ab -c 100 -n 300 http://aplikasi.com

(Konkurensi 100 dengan jumlah 300 request)Dilakukan pada tiga komputer penguji yang berbeda di dalamjaringan AJK. (Sehingga total konkurensi 300 dengan jumlah1500 request per aplikasi)Dilakukan perhitungan ketersediaan : Akses 200 OK berartiSukses, Akses selain itu (404, 5xx) atau RTO (¿ 30 detik)dianggap Gagal.

Page 49: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Uji Kapasitas dan PerformaHasil (1)

Page 50: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Uji Kapasitas dan PerformaHasil (2)

Page 51: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Uji Kapasitas dan PerformaHasil (3)

Page 52: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Uji Kapasitas dan PerformaHasil (4)

Page 53: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Uji Kapasitas dan PerformaHasil (5)

Page 54: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Uji Kapasitas dan PerformaHasil (6)

Page 55: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Uji Kapasitas dan PerformaHasil (7)

Page 56: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Uji Kapasitas dan PerformaHasil (8)

Page 57: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Uji Kapasitas dan PerformaHasil (9)

Page 58: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Uji Kapasitas dan PerformaPembahasan Hasil

Aplikasi dengan jumlah Node yang lebih banyak cenderungmemiliki ketersediaan yang baik (bahkan mencapai 100%).

Aplikasi dengan basis data cenderung memiliki ketersediaanyang rendah (karena jumlah instance basis data yang dibatasi).

Platform nodejs-nodemon dan php55-fpm cenderungmemiliki ketersediaan rendah karena pengaturan bawaan daricitra cakram Docker tersebut yang belum optimal.

Perbedaan kecepatan akses kemungkinan disebabkan karenabeban jaringan di lab pada saat pengujian.

Page 59: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Uji Kapasitas dan PerformaPembahasan Hasil – Tambahan

Pengujian dilakukan dengan skrip dan bisa direproduksiulang untuk sekian kali percobaan, terdapat antarmuka diAdmin untuk keperluan ini.

Jika benchmark dilakukan berkali-kali pada setup yang sama,terdapat sedikit perubahan ketersediaan: Misal: Jumlahketersediaan satu aplikasi 2% lebih rendah daripadabenchmark sebelumnya. Namun perubahan ini cenderungseragam

Page 60: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Uji Kapasitas dan PerformaPembahasan Hasil – Tambahan (1)

Page 61: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Uji Kapasitas dan PerformaPembahasan Hasil – Tambahan (2)

Page 62: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Uji Kapasitas dan PerformaPembahasan Hasil – Tambahan (3)

Page 63: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Implementasi Prinsip Komputasi AwanOn-Demand Self-Service

Dari sisi pengelolaan Nodedan Load Balancer, APIBackend dan panel kontrolmampu mengelolapembuatan, eksekusi danpengelolaan aplikasi danbasis data melaluiimplementasi pemanggilanskrip panggil.

Namun karena billing masihbersifat tradisional, prosespembuatan dam scalingaplikasi/basis data padaimplementasi masih harus

disetujui Admin. (Bisadikembangkan di kemudianhari).

Page 64: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Implementasi Prinsip Komputasi AwanResource Pooling

Melalui penggunaan Docker, resource untuk setiapaplikasi/basis data bisa diatur sedemikian rupa dan bisadijalankan secara simultan dengan transparansi yang tinggi.

Banyak aplikasi tidak serta merta membuat ketersediaan turunmenjadi 0% (dapat dilihat dari hasil uji performa aplikasi).

Page 65: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Implementasi Prinsip Komputasi AwanMeasured Service

Layanan dibuat dengan beberapa variabel yang terukur sejakawal :

Jumlah NodeJumlah MemoriJumlah Ruang Penyimpanan

Variabel tersebut sudah di-enforce oleh sistem secaraterintegrasi, jumlah Node di-enforce oleh Manager, jumlahMemori di-enforce oleh Docker dan Ruang Penyimpanandibatasi menggunakan sistem quota di Linux.

Page 66: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Daftar Isi

1 Pendahuluan

2 Landasan Teori

3 Rancangan Sistem

4 Implementasi

5 Pengujian dan Evaluasi

6 Penutup

7 Demo

8 PSD/FAQ

Page 67: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Kesimpulan

Sistem PAAS untuk kebutuhan pengembangan aplikasi danWeb hosting berbasis multi-tenancy dapatdiimplementasikan menggunakan berbagai kombinasikerangka kerja yaitu pemrograman berbasis Node.js danvirtualisasi berbasis Docker.Rata-rata jumlah aplikasi yang dapat tertampung padakonfigurasi tiga Node dengan masing-masing memori 1 GBadalah sekitar 12 - 18 aplikasi tergantung dari konfigurasiaplikasi. Secara umum, aplikasi dengan jumlah Node lebihbanyak memiliki ketersediaan paling tinggi hingga 100%,sementara aplikasi dengan basis data memilikikecenderungan ketersediaan yang lebih rendah daripadaaplikasi yang tidak terkoneksi basis data sama sekali.Prinsip komputasi awan yaitu self-service, resource-poolingdan measured service dapat diimplementasikan seperti yangsudah dijelaskan sebelumnya.

Page 68: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Saran

Perlu adanya penelitian lebih lanjut dari sisi ekonomimengenai adanya layanan semacam ini apakah dapatdiaplikasikan dalam dunia nyata.Penggunaan Docker untuk menjalankan proses server Webdan basis data perlu diteliti lebih lanjut dalam hal konfigurasiyang cocok sehingga bisa menjalankan aplikasi Web penggunadengan efisien dan handal.Perlu adanya penelitian lebih lanjut mengenai penggunaanbasis data dengan sistem multi-node sehingga bisamemaksimalkan luaran kecepatan akses basis data padasistem ini.Perlu adanya peningkatan pada sistem penagihan secaraotomatis misalnya dengan mekanisme poin dan kreditsehingga proses yang membutuhkan otorisasi biaya sepertiscaling dan pembuatan aplikasi baru dapat dilakukan secaraotomatis tanpa memerlukan persetujuan dari administrator.

Page 69: Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

..........

.....

.....................................................................

.....

......

.....

.....

.

Daftar Isi

1 Pendahuluan

2 Landasan Teori

3 Rancangan Sistem

4 Implementasi

5 Pengujian dan Evaluasi

6 Penutup

7 Demo

8 PSD/FAQ