BAB II LANDASAN TEORIeprints.umm.ac.id/37645/3/jiptummpp-gdl-cindyclaud-50713-3-babii.pdfdari Google...

13
5 BAB II LANDASAN TEORI Pada saat ini, kebutuhan manusia akan data sudah semakin berkembang. Hal ini dibuktikan dengan semakin bertambahnya volume data setiap tahunnya [1]. Disamping itu, kebutuhan manusia akan efisiensi waktu dan ketepatan data juga memjadi salah satu faktor tumbuhnya Big Data pada saat ini. Namun dibalik itu, Big Data juga membutuhkan perpindahan data yang sangat sering. Sehingga membutuhkan bandwidth yang besar pengaturan trafik data yang tepat agar tidak terjadi congestion pada saat proses pengiriman atau perpindahan data. Dalam penelitian sebelumnya [4] dikembangkan Doopnet untuk Performasi Analisa Hadoop Cluster yang menggunakan Docker. Dalam analisa tersebut, Hadoop Cluster dijalankan dan di konfigurasikan serupa dengan dijalankan dalam cluster terpisah di physical server. Pada penelitian ini, akan dilakukan pengujian performasi trafik Big Data dengan menggunakan Hadoop Clustering didalam Docker dengan menggunakan Software Defined Network sebagai manajemen queue transfer yang memungkinkan mengatur arus data dari master dan slave disetiap nodes pada Hadoop Cluster. 2.1 Big Data Big Data merupakan suatu istilah untuk menggambarkan volume data dalam bentuk yang besar. Data yang dimaksud disini adalah data yang terstuktur ataupun tidak terstruktur. Aplikasi Big Data sudah banyak digunakan oleh industri yang bergerak dalam teknologi dan informasi. Namun juga tak jarang industri non teknologi juga menggunakan Big Data untuk menunjang proses kerja mereka. Didalam Big Data sendiri, poin utama yang ada bukanlah besaran volume dari data itu sendiri, melainkan bagaimana dilakukannya pengorganisasian data tersebut.[5] Konsep Big Data sendiri mulai pada tahun 2000-an ketika seorang analis industri Doug Laney yang menyampaikan beberapa aspek penting dalam Big Data diantaranya: a. Variety Data yang dihasilkan merupakan data yang tidak berada di dalam single category karena tidak termasuk ke dalam data tradisional tetapi jiga merupakan semi struktur data dari berbagai sumber seperti halaman web, file log web, situs media sosial, email, dan masih banyak yang lainnya. Semua data ini sangat berbeda terdiri dari data mentah, semi terstruktur dan data terstruktur bahkan yang sulit untuk ditangani oleh sistem analitik tradisional yang sudah ada. [6]

Transcript of BAB II LANDASAN TEORIeprints.umm.ac.id/37645/3/jiptummpp-gdl-cindyclaud-50713-3-babii.pdfdari Google...

5

BAB II

LANDASAN TEORI

Pada saat ini, kebutuhan manusia akan data sudah semakin berkembang. Hal ini

dibuktikan dengan semakin bertambahnya volume data setiap tahunnya [1]. Disamping itu,

kebutuhan manusia akan efisiensi waktu dan ketepatan data juga memjadi salah satu faktor

tumbuhnya Big Data pada saat ini. Namun dibalik itu, Big Data juga membutuhkan

perpindahan data yang sangat sering. Sehingga membutuhkan bandwidth yang besar

pengaturan trafik data yang tepat agar tidak terjadi congestion pada saat proses pengiriman atau

perpindahan data. Dalam penelitian sebelumnya [4] dikembangkan Doopnet untuk Performasi

Analisa Hadoop Cluster yang menggunakan Docker. Dalam analisa tersebut, Hadoop Cluster

dijalankan dan di konfigurasikan serupa dengan dijalankan dalam cluster terpisah di physical

server. Pada penelitian ini, akan dilakukan pengujian performasi trafik Big Data dengan

menggunakan Hadoop Clustering didalam Docker dengan menggunakan Software Defined

Network sebagai manajemen queue transfer yang memungkinkan mengatur arus data dari

master dan slave disetiap nodes pada Hadoop Cluster.

2.1 Big Data

Big Data merupakan suatu istilah untuk menggambarkan volume data dalam bentuk yang

besar. Data yang dimaksud disini adalah data yang terstuktur ataupun tidak terstruktur. Aplikasi

Big Data sudah banyak digunakan oleh industri yang bergerak dalam teknologi dan informasi.

Namun juga tak jarang industri non teknologi juga menggunakan Big Data untuk menunjang

proses kerja mereka. Didalam Big Data sendiri, poin utama yang ada bukanlah besaran volume

dari data itu sendiri, melainkan bagaimana dilakukannya pengorganisasian data tersebut.[5]

Konsep Big Data sendiri mulai pada tahun 2000-an ketika seorang analis industri Doug Laney

yang menyampaikan beberapa aspek penting dalam Big Data diantaranya:

a. Variety

Data yang dihasilkan merupakan data yang tidak berada di dalam single category

karena tidak termasuk ke dalam data tradisional tetapi jiga merupakan semi struktur

data dari berbagai sumber seperti halaman web, file log web, situs media sosial, email,

dan masih banyak yang lainnya. Semua data ini sangat berbeda terdiri dari data mentah,

semi terstruktur dan data terstruktur bahkan yang sulit untuk ditangani oleh sistem

analitik tradisional yang sudah ada. [6]

6

b. Velocity

Kecepatan data yang besar adalah sebuah konsep yang berkaitan dengan kecepatan data

yang berasal dari berbagai sumber. Karakteristik ini adalah tidak terbatas untuk

kecepatan data masuk tetapi juga kecepatan di mana data mengalir. Misalnya data dari

perangkat sensor akan terus bergerak ke toko database dan jumlah ini tidak akan cukup

kecil. Dengan demikian kami sistem tradisional tidak cukup mampu melakukan analisis

pada data yang terus-menerus bergerak. [6]

c. Volume

Sekumpulan tipe data yang di-generate dari banyak sumber data dan akan mengalami

perkembangan dalam kuantitas secara terus menerus. Data di-generate oleh mesin

(machines), jaringan (networks) dan manusia (human) yang saling berinteraksi satu

sama lain yang jumlahnya terus bertambah. Total data yang ada saat ini telah mencapai

ukuran zettabytes dan media jejaring sosial adalah penyumbang terbesar dengan

memproduksi dalam jumlah terabytes setiap harinya [6]. Hal yang sangat menyulitkan

tentunya jika ditangani dengan sistem tradisional. [7]

d. Complexity

Data berasal dari berbagai sumber sehingga cukup sulit untuk menghubungkan,

mencocokan, membersihkan dan mengubah data di seluruh sistem. Namun, Big Data

sangat dibutuhkan untuk memiliki korelasi antar data, hierarki dan beberapa keterkaitan

data lainnya atau data yang acak. [5]

e. Variability

Selain kecepatan dalam pengumpulan data yang meningkat dan variasi data yang

semakin beraneka ragam, terkadang aliran arus data di dalam perpindahan data juga

tidak konsisten dalam periode tertentu. Salah satu contohnya adalah hal yang sedang

tren di media sosial. Periodenya bisa harian, musiman, dipicu peristiwa dadakan dan

lain-lain. Beban puncak data dapat menantang untuk analis Big Data, bahkan dengan

data yang tidak terstruktur. [5]

Pada saat ini, masyarakat mulai menyadari bagaimana pentingnya peran Big Data.

Tidak hanya tentang jumlah data yang organisasi miliki, namun hal yang penting adalah

bagaimana mengolah data.

7

Didalam Big Data data biasanya terdistribusi. Karena data yang terdistribusi maka baik

pemrograman dan model statistik yang digunakan juga terdistribusi. Dalam model

pemrograman terdistribusi Big Data biasanya menggunakan Map Reduce yang merupakan

salah satu model pemrograman paralel untuk data yag terdistribusi. Dengan adanya

pemrograman yang terdistribusi membuat statistik arus data pada Big Data. Satu asumsi dasar

semua model statistik/data mining/machine learning/data science konvensional adalah datanya

centralized (terpusat). Centralized data tidak lagi dipandang sebagai solusi efisien ketika

datanya besar (baca disini). Pemodelan statistik untuk data yang terdistribusi berbeda dengan

ketika datanya berada di satu tempat. Jika statistik konvensional hanya fokus pada optimal

parameter untuk generalisasi ke populasi yang terbaik. Pada sistem dengan data terdistribusi,

statistiknya juga dioptimalkan untuk komunikasi antar node yang minimal dan upaya untuk

mencapai optimal global dari berbagai solusi parameter optimal local di node-node yang ada.

[8]

Apache Hadoop

Apache Hadoop adalah software bebas dan open source, yang ditulis dalam kerangka

bahasa pemrograman Java untuk dijalankan secara terdistribusi dan skalabel. Apache Hadoop

dibangun berdasarkan algoritma popular MapReduce dari Google Inc, berikut sistem berkas

yang disarankan Google (GFS = Google File System), yang memungkinkan menjalankan

tugas komputasi dalam mengolah data jumlah besar (sekitar petabyte keatas) di komputer

cluster. Hadoop awalnya diprakarsai oleh Lucene Doug Cutting, yang sejak tanggal 23

Januari 2008 telah menjadi proyek tingkat atas di lingkungan Apache Software Foundation

dan dikembangkan secara terbuka oleh komunitas kontributor secara global. Pengguna

Hadoop adalah, termasuk Facebook, a9.com, AOL, Baidu, IBM, ImageShack, dan Yahoo.

Hadoop tersedia bebas menyandang lisensi Apache License 2.0.

Kerangka kerja Hadoop terdiri dari modul-modul termasuk:

a. Hadoop Common – berisi library dan utilitas yang diperlukan oleh modul Hadoop

lainnya.

b. Hadoop Distributed File System (HDFS) – sebuah sistem berkas terdistribusi dengan

high-availability yang dapat menyimpan data pada mesin komoditas, digunakan untuk

menyediakan bandwidth sangat tinggi yang di agregasi ke semua cluster (node).

Berkas dibagi menjadi blok data dengan panjang yang baku dan didistribusikan pada

node yang saling berpartisipasi. HDFS bekerja menggunakan pendekatan master-

slave, dimana sebuah node master, yang disebut NameNode, memroses permintaan

data yang masuk, mengorganisir berkas di dalam node slave dan menyimpan metadata

8

yang dihasilkannya. HDFS mendukung sistem berkas dengan beberapa ratus juta file.

Baik panjang blok berkas maupun tingkat redundansi, keduanya dapat dikonfigurasi.

c. Hadoop YARN – sebuah platform manajemen sumber daya yang bertanggung jawab

atas pengelolaan sumber daya komputasi dalam sebuah cluster dan digunakan untuk

penjadwalan aplikasi pengguna.

d. Hadoop MapReduce – model pemrograman untuk pengolahan data skala besar.

e. HBase – adalah database sederhana, dan skalabel untuk mengelola data dengan jumlah

yang sangat besar dalam cluster Hadoop. Database HBase didasarkan pada

implementasi bebas dari BigTable besutan Google. Struktur data ini cocok untuk data

yang jarang berubah, tapi sangat sering ditambahkan. Menggunakan HBase dapat

dikelola miliaran baris data secara efisien.

f. Hive – melengkapi Hadoop Hive dengan fungsi Data-Warehouse, yaitu bahasa query

HiveQL dan indeks. HiveQL adalah bahasa query berbasis SQL dan memungkinkan

pengembang untuk menggunakan sintaks seperti SQL. Pada musim panas tahun 2008

Facebook, pengembang asli dari Hive, menyerahkan Hive nebjadi proyek komunitas

open source. Database Hadoop yang digunakan oleh Facebook berkisar diatas 100

petabyte merupakan terbesar (Agustus 2012) di dunia.

g. Pig – dapat digunakan sebagai bahasa pemrograman high-level (Pig Latin) untuk

menulis program pada Hadoop MapReduce. [9]

2.2 Virtualisasi

Virtualisasi adalah istilah yang dapat diartikan sebagai pembuatan suatu bentuk atau

versi virtual dari sesuatu yang bersifat fisik. Definisi lainnya adalah membuat versi maya

(virtual) dari suatu sumber daya (resource) sehingga pada satu sumber daya fisik dapat

dijalankan atau disimpan beberapa sumber daya maya sekaligus [10]. Sumber daya yang dapat

di virtualisasi antara lain adalah perangkat keras komputer, media penyimpanan data (storage),

sistem operasi (OS), dan layanan jaringan (Networking). Virtualisasi dimungkinkan karena

perkembangan teknologi perangkat keras yang sedemikian pesat sehingga kemampuan sebuah

sumber daya fisik berada jauh di atas kebutuhan penggunasnya sehingga sebagian besar waktu

atau kapasitasnya tidak terpakai (idle) [7].

Melihat catatan sejarah istilah virtualisasi mulai dikembangkan sejak pertengahan abad

ke - 20 di mana hanya digunakan untuk kalangan industri saja [11]. Virtualisasi menawarkan

banyak keuntungan dibanding infrastruktur tradisional dalam berbagai aplikasi. Selain dari

penghematan biaya dan mudah pemeliharaannya.

9

Banyak produk virtualisasi memungkinkan guest tertentu untuk diduplikasi dengan

mudah di mana bisa berguna untuk percobaan bagaimana perangkat lunak diperbaharui atau

memodifikasi sebuah sistem yang ditentukan tanpa mempengaruhi sistem produksi. Migrasi

membantu menurunkan atau mengurangi downtime karena mesin virtual bisa di pindahkan

secara sementara atau permanen ke host transparan yang berbeda ke sistem operasi guest.

Usaha pemulihan dari bencana (Disaster Recovery) bisa menjadi benar-benar sederhana

melalui penggunaan virtualisasi. Dalam sebuah kejadian bencana alam, backup mesin virtual

mesin bisa dengan mudah dipindahkan ke lokasi baru pada perangkat keras yang berbeda.

Walaupun dengan semua keuntungan masih terdapat beberapa sisi kekurangan pada

virtualisasi. Contohnya, mesin virtual harus membagi sumber daya dengan mesin virtual yang

lain dalam sistem fisikal yang sama. Aplikasi dengan penyimpanan atau utilitas CPU tinggi

tidak selalu bekerja dengan baik dalam sebuah sistem di mana mesin virtual itu harus membagi

sumber daya. Permasalahan ini bisa dihindari dengan hanya menjalankan satu dari semua

aplikasi dengan utilitas tinggi per host fisikal.

Tipe Virtualisasi

Ada beberapa tipe virtualisasi menurut Jones, dkk (2008), yaitu Virtualisasi

Perangkat Keras dan Virtualisasi Perangkat Lunak [12]. Masing-masing virtualisasi

memiliki keuntungan dan kerugian sendiri-sendiri, yang terkait dengan masalah

kompatibilitas sistem operasi dan kinerja mesin guest yang dijalankan di atas host OS.

1. Virtualisasi Perangkat Keras

Virtualisasi perangkat keras yaitu sebuah upaya untuk menciptakan mesin virtual

yang bekerja layaknya sebuah komputer lengkap dengan memiliki sistem operasi

sendiri. Perangkat lunak yang dieksekusi pada mesin virtual tersebut dipisahkan dari

sumber daya fisik. Dalam virtualisasi perangkat keras, mesin host adalah sebuah istilah

yang digunakan untuk sistem operasi yang terinstal di komputer secara fisik, sedangkan

mesin guest adalah sistem operasi yang terinstal di atas mesin host. Istilah host dan

guest dikenalkan untuk memudahkan dalam membedakan antara sistem operasi fisik

yang terinstal di komputer dengan sistem operasi yang diinstal di atasnya atau bisa

disebut virtualnya.

Virtualisasi perangkat keras memiliki dua pendekatan yang paling umum yaitu

virtualisasi penuh dan para-virtualisasi. Dalam virtualisasi penuh sebuah lapisan berada

di antara (virtual) dan mesin hots, lapisan ini disebut hypervisor. Lapisan ini

menggadakan sumber daya sistem bagi kepentingan masing-masing mesin guest. Para-

virtualisasi berbeda dalam hal hyhpervisor bekerja dengan cara kooperatif.

10

Setiap sistem operasi guest menyadari bahwa mereka berjalan dalam lingkungan virtual

dan bekerja sama dengan hypervisor untuk membuat virtualisasi mesin host.

2. Virtualisasi Perangkat Lunak

Virtualisasi perangkat lunak memungkinkan satu komputer host untuk membuat

dan menjalankan satu atau lebih lingkungan virtual. Virtualisasi perangkat lunak

banyak digunakan untuk membuat simulasi sebuah sistem komputer lengkap dengan

tujuan untuk memungkinkan sistem operasi guest berjalan, sebagai contoh mengizinkan

Linux untuk berjalan sebagai guest di atas komputer yang secara native menjalankan

sistem operasi Windows. Jenis virtualisasi perangkat lunak di antaranya adalah

Operating system-level virtualization [11].

Operating System-level Virtualization

Operating System-level virtualization adalah sebuah metode untuk membuat

virtualisasi server di atas sistem operasi itu sendiri. Metode ini mendukung sebuah

sistem operasi dan mengisolasi server satu sama lain seperti pada Gambar 2.1 [12].

Gambar 2.1 Operating system-level Virtualization Mengisolasi Server-server

Operating System-level virtualization membagi sumber daya mesin fisikal

pada level sistem operasi. Ini artinya semua mesin virtual OS-level membagi satu

kernel pada sebuah sistem operasi. Gambar 2.2 di bawah membandingkan lapisan

virtualisasi Operating System-level virtualization dengan virtualisasi perangkat

keras (hardware-level virtualization) [11]. Metode ini juga sering disebut sebagai

container, virtualization engines (VE), atau virtual private server (VPS) terlihat dan

terasa seperti server asli dari sudut pandang pengguna. Contoh implementasi dari

Operating System-level virtualization ini adalah LXC dan Docker.

Private

Server

Sistem Operasi

Perangkat Keras

Private

Server

Private

Server

11

Gambar 2.2 Perbandingan Operating System-level Virtualization dengan Virtualization

Hardware [1]

2.3 Docker

Docker merupakan project open source yang meyediakan platform teknologi virtualisasi

berbasis container. Project ini ditujukan untuk para developer untuk membangun, mengikat

dan menjalankan aplikasi dimanapun dalam satu container yang ringan. Docker bisa dibilang

mirip dengan Virtual Machine pada umumnya, seperti VMWare, Virtual Box namun yang

menjadi pembeda nya adalah Docker lebih ringan karena tidak membawa keseluruhan sistem

operasi, melainkan hanya berbagi sistem dengan host utamanya.

Didalam Docker, software disatukan dalam filesystem lengkap berisi semua yang

diperlukan untuk menjalankannya seperti: source code, module runtime, perangkat sistem,

sistem pustaka software apa pun yang dapat diinstal pada server. Hal ini menjamin bahwa

perangkat lunak akan selalu berjalan sama, tidak tergantung pada lingkungannya. Contoh nya

adalah apabila Docker dijalankan didalam Sistem Operasi Linux Ubuntu, sistem yang sama

juga akan berjalan sama apabila Docker dijalankan didalam Sistem Operasi Linux CentOS.

Pada perkembangannya saat ini, Docker juga bisa dijalankan di sistem operasi Windows dan

juga MacOS. [13]

Arsitektur dan Komponen Docker

Arsitektur Docker menggunakan mekanisme client dan server, Docker client

mengirimkan permintaan ke server untuk membangun, mendistribusikan dan

menjalankan container Docker. Docker Client dan Docker Server dapat berjalan pada

sistem yang sama yang berkomunikasi via socker menggunakan Restful API [13].

Dalam Docker, ada beberapa komponen yang saling membutuhkan satu sama lain

untuk dapat menjalankan virtualisasi ini, diantaranya:

Guest Processes Guest Processes Guest Processes Guest Processes

Guest OS Guest OS Virtualization Layer

Virtualization Layer OS

Hardware Operating System-Level

Virtualization

Hardware Virtualization Hardware

12

a. Docker Image

Docker Image merupakan sebuah template yang bersifat read-only. Contohnya sebuah

image yang berisi sistem operasi Ubuntu dengan Apache dan aplikasi web yang telah

kita instalkan. Image ini digunakan untuk menjalankan container. Docker

menyediakan cara yang sederhana untuk membangun image baru atau merubah image

yang sudah ada. Jika melihat Docker Index akan menemukan banyak image yang

sudah banyak dibuat oleh pengguna lain yang bisa kita gunakan sebagai base image.

Misalnya kita akan membangun sebuah aplikasi PHP dengan apache web server dan

mysql, maka hanya perlu mendownload base image berupa LAMP server lalu tinggal

menambahkan aplikasi PHP yang sudah dibuat.

b. Docker Container

Docker Container merupakan sebuah image bersifat read-write yang berjalan di atas

image. Docker menggunakan union-file sistem sebagai back-end file sistem

containernya, dimana setiap perubahan yang disimpan pada container akan

menyebabkan terbentuknya layer baru di atas base image. Jadi container merupakan

layer dimana kita bisa melakukan instalasi aplikasi di dalamnya. Masing-masing

container yang berjalan terisolasi dan platform aplikasi yang aman.

c. Docker Registry

Docker registry adalah tempat penyimpanan (public atau private) dimana dapat

dilakukan proses upload dan download image. Registry public Docker disebut dengan

Docker Hub.

d. Docker File

Dockerfile merupakan sebuah skrip otomasi (builder) yang membangun sebuah

image. Sebuah Dockerfile merupakan dokumen text atau skrip yang berisi semua

perintah yang biasanya kita lakukan manual untuk membangun sebuah image. Dengan

menggunakan perintah Docker build dari terminal, kita akan melihat Docker

membangun image step by step mengeksekusi perintah berurutan.

e. Repository

Docker menggunakan repository ini seperti dengan yang digunakan pada Github dan

source control system lainnya, namun memiliki jenis yang berbeda. Didalam

repository terdapat ID untuk setiap image yang disimpan dalam registry. Ketika

menjalankan perintah Docker commit maka image itu akan diberi nama dengan format

username/nama_image. Ketika melakukan proses upload image tersebut dengan

perintah Docker push, index akan melihat nama image dan memastikan tidak ada

13

nama repository yang sama, jika tidak maka index akan memeriksa apakah

pengupload memliki akses terhadap repository tersebut, maka selanjutnya pengupload

diijinkan untuk mengupload image versi baru ke repository tersebut.

f. Docker Index

Docker index dengan Docker hub registry merupakan hal yang terpisah. Index

mengatur user account, permission, search, tagging dan hal lain yang tersimpan pada

web interface public. Ketika menjalankan perintah Docker run, perintah ini digunakan

untuk mencari pada index bukan registry. Atau ketika dijalankan perintah Docker pull

ataupun Docker push, index akan menentukan apakah diijinkan untuk mengakses atau

memodifikasi image, dan selanjutnya registry adalah bagian yang akan menyimpan

image tersebut setelah kita mendapatkan permisi dari index. [14]

Perbedaan Docker dengan Virtual Machine

Didalam bidang virtualisasi terdapat istilah VM atau Virtual Machine dan

Container. Secara prinsip, keduanya memiliki kesamaan yaitu menggunakan skema

virtualisasi. Namun tidak sepenuhnya sama, ada beberapa hal yang membedakan

diantaranya:

1. Virtual Machine menggunakan keseluruhan resource hardware pada host. Sehingga

host langsung menjalankan double sistem operasi sekaligus. Sedangkan container

sendiri hanya bersifat seperti aplikasi dan hanya menggunakan sedikit resource dari

host. Bisa dikatakan Docker seperti menjalankan aplikasi biasa.

2. Virtual Machine menggunakan kernel tersendiri sehingga menjadi beban bagi host

dan akan sangat memberatkan. Sedangkan container membagi kernelnya ke container

yang ada saja sehingga lebih efisien.

3. Alokasi spesifikasi pada Virtual Machine jika sudah di set untuk VM A maka VM B

tidak bisa menggunakan spesifikasi yang sama. Beda halnya dengan Docker, jika ada

container A sedang sibuk melayani trafik dan container B idle, maka container A bisa

menggunakan resources milik container B. Jadi, Docker melakukan efisiensi

resources dengan sebaik-baiknya sistem.

14

Keuntungan Penggunaan Virtualisasi Docker

Ada beberapa keuntungan yang dimiliki pada penggunaan Docker dibanding

dengan Virtual Machine yang lainnya. Diantaranya adalah :

1. Optimalisasi Resource

Mendukung dari penjelasan diatas, virtualisasi Docker sangat menggungulkan

efisiensi resource hardware. Penggunaan resource hardware pada Docker sangat

efisiensi dan tidak memakan banyak resource hardware. Sehingga pada saat

menjalankan banyak container pada sebuah host Docker, host lain masih mampu

menanganinya.

2. Konfigurasi yang simple

Pada virtualisasi Docker, ketika membutuhkan sebuah VM diatas Docker, hanya

dengan menjalankan satu baris perintah untuk menciptakan sebuah container yang

dapat menjalankan images, images tersebut berisi sistem operasi yang dapat langsung

digunakan. Images tersebut pun dapat didownload dari repositori Docker.

3. File System Protection

Docker menggunakan sistem proteksi file read only mount point dan copy on write

dengan tingkatan keamanan dari yang rendah hingga keamanan yang paling tinggi.

Dengan pemasangan sistem file sebagai read only, kernel linux dapat dipertahankan

dan pengguna pun aman tanpa ada resiko kegagalan File System.

4. Multi Cloud Platform

Salah satu manfaat terbesar dari Docker yaitu portabilikitas. Dalam beberapa tahun

terakhir, semua penyedia layanan cloud seperti Amazon Web Service, Google

Compute Platform, Digital Ocean, Linode dan lain lain mulai mengadopsi Docker

sebagai platform virtualisasi. [13]

2.4 Software Defined Network

Software Defined Network atau SDN merupakan paradigma atau pandangan terbaru

dalam bidang jaringan. Software Defined Network memiliki pandangan baru tentang arsitektur

jaringan yang dinamis, manageable, hemat biaya dan mudah diadaptasi. Pada awalnya, konsep

Software Defined Network ini dikembangkan hanya berjarak berdekatan setelah Java dirilis

oleh Sun Microsystem pada tahun 1995. Namun sayangnya pada saat itu teknologi yang baru

dikembangkan ini masih memiliki pengembangan yang belum cukup.

15

Akhirnya pengembangan Software Defined Network dimulai lagi pada tahun 2008 oleh UC

Berkeley dan Stanford University. Kemudian teknologi ini mulai dipromosikan oleh Open

Networking Foundation dan mulai memperkenalkan teknologi SDN dan OpenFlow. [5]

Pada jaringan konvensional yang sebelumnya, sistem pembuat keputusan kemana arus

data dikirimkan dan menyatu dengan perangkat kerasnya. Sedangkan pada konsep baru

Software Defined Network terdapat karakteristik baru yang berbeda dengan jaringan

konvensional sebelumnya. Yaitu terjadi pemisahan antara control plane dan data plane. Hal

ini juga ideal untuk bandwidth yang besar, dinamis dari aplikasi saat ini[5]. Jaringan komputer

dalam skala besar dengan sejumlah besar perangkat jaringan seperti Switch, Router, Firewall

dan lainnya dengan protokol yang kompleks yang dilakukan dan tertanam dalam mereka.

Network Engginer hanya bertanggung jawab dalam hal konfigurasi aturan yang telah

ditentukan dalam berbagai situasi skenario aplikasi yang telah ditentukan. Mereka mengubah

aturan tingkat tinggi menjadi perintah konfigurasi low level. Hal ini dapat membuat pekerjaan

yang kompleks yang sering dilakukan dengan menggunakan akses dengan tools yang dapat

dengan mudah dilakukan [6].

Ada beberapa aspek penting yang ada di dalam Software Defined Network yang menjadi

keunggulan dari paradigma baru dalam hal jaringan ini. Pertama, sesuai dengan konsep dasar

dari Software Defined Network sendiri yaitu melakukan pemisahan antara control plane dan

data plane. Control Plane dan Data Plane sendiri adalah Kedua, dengan adanya standar

interface (vendor-agnosic) yang digunakan untuk memprogram perangkat jaringan. Dengan

menggunakan standart interface ini sendiri, memudahkan administrator jaringan dalam hal

konfigurasi terpusat di dalam satu controller. Ketiga, Control Plane yang terpusat. Dengan

adanya pusat control atau control plane yang terpusat, dapat dibentuk logical map dari jaringan

yang kemudian akan direpesentasikan dengan menggunakan API (Application Programming

Interface). Dan yang terakhir, dapat melakukan virtualisasi menggunakan beberapa sistem

operasi jaringan. Dengan ini dapat juga melakukan kontrol beberapa bagian dari perangkat

jaringan yang sudah terhubung dalam jaringan Software Defined Network [14]. Didalam

konsep Software Defined Network juga tersedia open interface. Open Interface yang dimaksud

disini adalah interface yang memungkinkan software/aplikasi mengendalikan konektivitas yg

disediakan oleh sejumlah sumber-daya jaringan, mengendalikan aliran trafik yg melewatinya

serta melakukan inspeksi terhadap atau memodifikasi trafik tersebut [14]. Adapun arsitektur

Software Defined Network adalah sebagai berikut:

16

Gambar 2.3 Arsitekur Software Defined Network [14]

Terdapat 3 komponen utama di dalam Software Defined Network, diantaranya adalah:

a. Application Plane (aplikasi) : Komponen ini merupakan komponen pertama dan paling

atas didalam arsitektur SDN. Aplikasi didalam SDN maruk kedalam komponen

pertama ini. Beberapa aplikasi dapat saling berjalan dan berkolaborasi satu sama lain

dengan controller menggunakan API. API ini juga sering disebut Northbound Interface

atau NBI.

b. Control Plane (controller) : Fungsi controller pada SDN sendiri adalah sebagai

penerjemah kebutuhan yang dibutuhkan oleh Application Plane dengan memberikan

perintah untuk SDN datapath. Control Plane sendiri akan memberikan informasi yang

sesuai dan dibutuhkan oleh Application Plane.

c. Data Plane : Terdiri dari elemen-elemen jaringan yang dapat mengatur SDN datapath

sesuai dengan instruksi yang diberikan oleh controller. Control plane mengirim

intruksi ke infrastructure layer melalui antarmuka yang disebut dengan Soutbound

interface. [15]

Controller

Didalam SDN terdapat controller yang nantinya akan digunakan untuk mengontrol

jaringan SDN yang akan di dalamnya. Didalam controller, mengenal dengan adanya

OpenFlow. Salah satu Ada beberapa controller yang digunakan didalam Software Defined

Network, diantaranya adalah Floodlight.

17

Floodlight [16] merupakan salah satu SDN controller yang sudah

menerapkan GUI dan user interface yang user friendly. Floodlight sendiri

merupakan controller SDN yang sudah berlisensi Apache dan juga OpenFlow

Controller yang berbasis Java. Hingga saat ini, Floodlight didukung oleh para

developer termasuk engginer dari Big Switch Network. Floodlight didesain untuk

bekerja untuk perkembangan switch, router, virtual switch dan access point yang

mendukung standar OpenFlow. Fitur yang dimiliki oleh Floodlight diantaranya :

- Mudah digunakan, karena kemudahan set up dengan dependansi yang minimal.

- Bisa menangani gabungan dari beberapa OpenFlow dan jaringan yang bukan

OpenFlow. Ini dapat digunakan untuk mengatur beberapa baian dari switch

OpenFlow.

- Floodlight dirancang untuk performansi yang tinggi.

- Mendukung untuk Cloud OpenStack orchestation platform.

2.4.1.1 OpenFlow

Protokol OpenFlow [16] merupakan elemen yang penting didalam arsitektur SDN. Protokol

ini digunakan untuk komunikasi antara controller dengan switch OpenFlow atau bisa disebut

juga sounthbound interface. Flow table dari switch OpenFlow dapat diubah dengan

menggunakan protokol ini. Ketika switch OpenFlow menerima paket, switch akan mencoba

mencocokan nilai header dari paket dengan aturan yang telah ada pada flow table. Apabila

paket tidak ditemukan pada flow table maka switch OpenFlow, akan mengirimkan ke

controller. Controller akan mengambil keputusan bagaimana menangani paket tersebut. Paket

dapat di-drop atau dapat juga dimasukan kedalam flow table switch, sehingga berikutnya switch

dapat

mengetahui bagaimana jika mendapatkan paket yang serupa. Selain fitur tersebut switch

OpenFlow memiliki fitur pengaturan QoS. Pengaturan QoS pada switch OpenFlow dilakukan

dengan mekanisme queuing. Tiap queue dapat digunakan untuk mengkategorikan jaringan

sesuai dengan karakteristik jaringan yang dibutuhkan. Selain itu juga tiap queue yang dibuat

dapat diatur nilai maksimum dan juga nilai minimum transfer rate. [7]