Presentasi Sidang Tugas Akhir Putu Wiramaswara Widya

Post on 29-Nov-2021

10 views 0 download

Transcript of 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

..........

.....

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

.....

......

.....

.....

.

Daftar Isi

1 Pendahuluan

2 Landasan Teori

3 Rancangan Sistem

4 Implementasi

5 Pengujian dan Evaluasi

6 Penutup

7 Demo

8 PSD/FAQ

..........

.....

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

.....

......

.....

.....

.

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

..........

.....

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

.....

......

.....

.....

.

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.

..........

.....

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

.....

......

.....

.....

.

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.

..........

.....

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

.....

......

.....

.....

.

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).

..........

.....

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

.....

......

.....

.....

.

Hosting ModernOpenShift dan Heroku

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

..........

.....

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

.....

......

.....

.....

.

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.

..........

.....

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

.....

......

.....

.....

.

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.

..........

.....

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

.....

......

.....

.....

.

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.

..........

.....

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

.....

......

.....

.....

.

Daftar Isi

1 Pendahuluan

2 Landasan Teori

3 Rancangan Sistem

4 Implementasi

5 Pengujian dan Evaluasi

6 Penutup

7 Demo

8 PSD/FAQ

..........

.....

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

.....

......

.....

.....

.

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)

..........

.....

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

.....

......

.....

.....

.

Komputasi AwanModel Layanan

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

Penempatan: Publik, Private, Gabungan.

..........

.....

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

.....

......

.....

.....

.

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.

..........

.....

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

.....

......

.....

.....

.

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.

..........

.....

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

.....

......

.....

.....

.

Daftar Isi

1 Pendahuluan

2 Landasan Teori

3 Rancangan Sistem

4 Implementasi

5 Pengujian dan Evaluasi

6 Penutup

7 Demo

8 PSD/FAQ

..........

.....

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

.....

......

.....

.....

.

Kasus Penggunaan

..........

.....

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

.....

......

.....

.....

.

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.

..........

.....

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

.....

......

.....

.....

.

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.

..........

.....

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

.....

......

.....

.....

.

Arsitektur SistemSecara Umum

..........

.....

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

.....

......

.....

.....

.

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)

..........

.....

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

.....

......

.....

.....

.

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.

..........

.....

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

.....

......

.....

.....

.

Arsitektur SistemSitemap Frontend Penyewa

..........

.....

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

.....

......

.....

.....

.

Arsitektur SistemSitemap Frontend Admin

..........

.....

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

.....

......

.....

.....

.

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.

..........

.....

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

.....

......

.....

.....

.

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.

..........

.....

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

.....

......

.....

.....

.

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.

..........

.....

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

.....

......

.....

.....

.

Arsitektur SistemBagaimana Aplikasi Diakses dari Luar

..........

.....

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

.....

......

.....

.....

.

Daftar Isi

1 Pendahuluan

2 Landasan Teori

3 Rancangan Sistem

4 Implementasi

5 Pengujian dan Evaluasi

6 Penutup

7 Demo

8 PSD/FAQ

..........

.....

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

.....

......

.....

.....

.

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

..........

.....

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

.....

......

.....

.....

.

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.

..........

.....

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

.....

......

.....

.....

.

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 });

..........

.....

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

.....

......

.....

.....

.

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 });

..........

.....

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

.....

......

.....

.....

.

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.

..........

.....

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

.....

......

.....

.....

.

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

..........

.....

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

.....

......

.....

.....

.

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.

..........

.....

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

.....

......

.....

.....

.

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

..........

.....

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

.....

......

.....

.....

.

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

..........

.....

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

.....

......

.....

.....

.

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.

..........

.....

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

.....

......

.....

.....

.

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.

..........

.....

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

.....

......

.....

.....

.

Daftar Isi

1 Pendahuluan

2 Landasan Teori

3 Rancangan Sistem

4 Implementasi

5 Pengujian dan Evaluasi

6 Penutup

7 Demo

8 PSD/FAQ

..........

.....

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

.....

......

.....

.....

.

Lingkungan Pengujian

..........

.....

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

.....

......

.....

.....

.

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.

..........

.....

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

.....

......

.....

.....

.

Uji UnitUji Unit pengendali appController

..........

.....

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

.....

......

.....

.....

.

Uji UnitUji Unit pengendali dbController

..........

.....

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

.....

......

.....

.....

.

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.

..........

.....

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

.....

......

.....

.....

.

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.

..........

.....

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

.....

......

.....

.....

.

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.

..........

.....

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

.....

......

.....

.....

.

Uji Kapasitas dan PerformaHasil (1)

..........

.....

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

.....

......

.....

.....

.

Uji Kapasitas dan PerformaHasil (2)

..........

.....

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

.....

......

.....

.....

.

Uji Kapasitas dan PerformaHasil (3)

..........

.....

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

.....

......

.....

.....

.

Uji Kapasitas dan PerformaHasil (4)

..........

.....

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

.....

......

.....

.....

.

Uji Kapasitas dan PerformaHasil (5)

..........

.....

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

.....

......

.....

.....

.

Uji Kapasitas dan PerformaHasil (6)

..........

.....

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

.....

......

.....

.....

.

Uji Kapasitas dan PerformaHasil (7)

..........

.....

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

.....

......

.....

.....

.

Uji Kapasitas dan PerformaHasil (8)

..........

.....

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

.....

......

.....

.....

.

Uji Kapasitas dan PerformaHasil (9)

..........

.....

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

.....

......

.....

.....

.

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.

..........

.....

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

.....

......

.....

.....

.

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

..........

.....

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

.....

......

.....

.....

.

Uji Kapasitas dan PerformaPembahasan Hasil – Tambahan (1)

..........

.....

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

.....

......

.....

.....

.

Uji Kapasitas dan PerformaPembahasan Hasil – Tambahan (2)

..........

.....

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

.....

......

.....

.....

.

Uji Kapasitas dan PerformaPembahasan Hasil – Tambahan (3)

..........

.....

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

.....

......

.....

.....

.

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).

..........

.....

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

.....

......

.....

.....

.

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).

..........

.....

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

.....

......

.....

.....

.

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.

..........

.....

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

.....

......

.....

.....

.

Daftar Isi

1 Pendahuluan

2 Landasan Teori

3 Rancangan Sistem

4 Implementasi

5 Pengujian dan Evaluasi

6 Penutup

7 Demo

8 PSD/FAQ

..........

.....

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

.....

......

.....

.....

.

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.

..........

.....

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

.....

......

.....

.....

.

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.

..........

.....

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

.....

......

.....

.....

.

Daftar Isi

1 Pendahuluan

2 Landasan Teori

3 Rancangan Sistem

4 Implementasi

5 Pengujian dan Evaluasi

6 Penutup

7 Demo

8 PSD/FAQ