• Tidak ada hasil yang ditemukan

Institutional Repository | Satya Wacana Christian University: Perancangan dan Implementasi Web Server Clustering dengan Skema Load Balancing Menggunakan NGINX T1 672007121 BAB II

N/A
N/A
Protected

Academic year: 2017

Membagikan "Institutional Repository | Satya Wacana Christian University: Perancangan dan Implementasi Web Server Clustering dengan Skema Load Balancing Menggunakan NGINX T1 672007121 BAB II"

Copied!
13
0
0

Teks penuh

(1)

Bab 2

Tinjauan Pustaka

2.1

Penelitian Terdahulu

Pembahasan mengenai clustering dengan skema load

balancing pada web server sudah banyak ditemukan. Salah satu

pembahasan yang pernah dilakukan adalah Perancangan dan

Implementasi Web Server Clustering dengan Skema Load Balance

menggunakan Linux Virtual Machine via NAT. Pembahasan

tersebut didapatkan bahwa dengan mengimplementasikan web

server cluster dengan skema load balancing dapat meningkatkan

performa sistem yang lebih baik dibandingkan dengan menggunakan

web server tunggal serta dapat juga memberikan availabilitas sistem

yang terjaga dan skalabilitas yang cukup untuk dapat tetap melayani

setiap request dari penguna (Sembiring, 2008).

Melalui penelitian ini balancer akan dibangun dengan

menggunakan nginx yang sudah mendukung untuk server load

balancing. Nginx akan diimplementasikan pada sisi front server dari

web server clustering. Kemudian pada implementasi web server

clustering untuk proses replikasi dibangun dengan menggunakan

MySQL cluster.

2.2

Jaringan Komputer

Jaringan komputer adalah sekumpulan komputer yang

terhubung satu dengan lainnya menggunakan protocol komunikasi

(2)

daya bersama seperti harddisk, printer, dan sumber informasi

lainnya.

Tujuan dibangunnya jaringan komputer adalah membawa

suatu informasi secara tepat dan tanpa adanya kesalahan dari sisi

pengirim menuju sisi penerima melalui media komunikasi.

Sedangkan manfaat yang bisa didapat adalah sharing resources,

bertujuan agar sumber daya yang ada dalam jaringan baik berupa

program, perangkat keras atau lainnya dapat dimanfaatkan oleh

orang yang sedang mengakses jaringan komputer tersebut.

Integrasi data yang memungkinkan pengaksesan sebuah data

tidak selalu harus bergantung pada satu komputer saja tetapi

dibagi-bagi dalam beberapa lokasi, tetapi antar lokasi penyimpanan data

tersebut terjadi suatu mekanisme yang baik sehingga user hanya

mengetahui data tersebut bisa diakses tanpa harus tahu dimana

lokasi penyimpanannya

Keamanan data jaringan komputer memberi perlindungan bagi

user untuk menyimpan data sehingga tidak sembarang orang bisa

mengaksesnya demikian juga untuk sumber-sumber daya lainnya

(Iwan, 2005).  

2.3

Web Server

Web server merupakan perangkat lunak server yang menjadi

tulang belakang dari world wide web (WWW). Web server

menunggu permintaan dari client yang menggunakan browser

seperti Netscape Navigator, Internet Explorer, Mozilla dan program

browser lainnya. Jika terdapat permintaan dari browser, maka web

(3)

prosesnya berupa data yang diinginkan pada browser. Data ini

mempunyai format yang standar, disebut dengan format SGML

(Standard General Markup Language). Data yang berupa format ini

kemudian akan ditampilkan oleh browser sesuai dengan kemampuan

browser (Lukitasari, 2010). Sekarang ini format HTML (HyperText

Markup Language) lebih banyak digunakan karena lebih sederhana

dan mudah dipelajari. Web server berkomunikasi dengan client-nya

(web browser), web server memakai protokol sendiri, yaitu HTTP

(HyperText Transfer Protocol).

2.4

Cluster

Salah satu definisi komputer cluster yang cukup mudah

diterima diberikan oleh Robert W. Lucke sebagai kumpulan

komputer (lebih dari satu komputer) yang berada pada suatu tempat

tertentu untuk memberikan suatu fungsi layanan tertentu atau

menjalankan algoritma paralel (Andria, 2010). Secara mendasar

fungsi dari cluster dibedakan menjadi tiga (Ade, 2006) yang pertama

digunakan untuk meningkatkan ketersediaan dari sistem yang handal

(reliable) atau dikenal dengan HA (High Availability).

Cluster yang kedua adalah load balancing, yang umumnya

digunakan pada web server yang sangat sibuk. Load balancing

menggunakan beberapa komputer node menjadi host dari website

yang sama, dan jika ada permintaan untuk mengakses halaman web

maka permintaan akan diarahkan kekomputer node yang bebannya

lebih rendah. HPC (High Performance Cluster) merupakan jenis

cluster ketiga yang berfungsi untuk kinerja komputasi tinggi dan

(4)

peneliti, industri riset dan pengembangan. Cluster ini menjalankan

program secara paralel untuk aplikasi yang sangat banyak memakan

waktu.

Struktur dari sistem cluster dapat dilihat pada Gambar 2.1 :

Gambar 2.1 Skema Logic Sistem Cluster (Rio, 2010)

2.5

Web server Clustering

Web server clustering yang dimaksud adalah sekumpulan dari

beberapa web server tunggal yang dihubungkan melalui jaringan

yang bekerja bersama-sama dalam menangani request dari user.

Clustering pada web server ini terletak pada database dari sistem

tersebut.

2.5.1 Database

Database adalah sebuah koleksi dari data yang saling

berelasi, dimana data tersebut disimpan pada komputer sehingga

sebuah program komputer dapat berinteraksi dan menggunakan data

yang disimpan tersebut untuk menyelesaikan masalah ataupun

menjawab pertanyaan (Elmasri, 1994). Data perlu disimpan dalam

suatu database untuk keperluan penyediaan informasi lebih lanjut.

Data didalam database perlu diorganisasikan sedemikian rupa

(5)

Database merupakan komponen utama sistem informasi

karena semua informasi untuk pengambilan keputusan berasal dari

data didatabase. Pengelolaan database yang buruk dapat

mengakibatkan ketidaktersediaan data penting yang digunakan

untuk menghasilkan informasi yang diperlukan dalam pengambilan

keputusan.

2.5.2 Database Terdistribusi

Database terdistribusi bisa diartikan sebagai kumpulan dari

data-data dengan berbagai bagian yang ditangani DBMS (Data Base

Management System) secara terpisah dan berjalan pada sistem

komputer. Semua komputer saling terhubung dan setiap sistem

mempunyai kemampuan memproses untuk melayani permintaan

lokal. Setiap sistem berpartisipasi baik dalam melaksanakan satu

atau lebih permintaan. Beberapa permintaan memerlukan data tidak

hanya dari satu tempat melainkan beberapa tempat atau lebih.

Database asli yang terdistribusi itu sendiri tidak terlihat oleh user

dan transparansi dari data tersebut dapat ditunjukkan dalam berbagai

cara. Distribusi data dalam DBMS ada 2 bentuk :

a. Data partitioning (data yang terpisah-pisah)

b. Data replication (replikasi data)

Kedua bentuk distribusi data di atas merupakan transparan

artinya tampak nyata oleh user dalam sistem distribusi database.

Pada database terdistribusi (distributed database), data disimpan

pada beberapa tempat (site), setiap tempat diatur dengan suatu

DBMS (Database Management System) yang dapat berjalan secara

(6)

2.5.3 Database Cluster

Database cluster adalah kumpulan dari beberapa server yang

berdiri sendiri yang kemudian bekerjasama sebagai suatu sistem

tunggal (Hodges, 2007). Database pada masa sekarang ini dituntut

agar dapat berjalan dengan cepat, mempunyai kehandalan dan

keseterdiaan yang tinggi. Dengan clustering, database yang

disimpan dapat terbagi kebeberapa mesin dan pada saat aplikasi

berjalan semua mesin yang menyimpan data tersebut dianggap

sebagai satu kesatuan. Metode clustering seperti ini sangat baik

untuk load-balancing dan penanganan system failure karena

kemampuan tiap mesin akan digunakan dan jika ada salah satu

mesin yang mengalami failure maka sistem tidak akan langsung

terganggu karena mesin lain akan tetap berfungsi. Kemampuan

clustering memungkinkan sebuah database tetap hidup dalam waktu

yang lama. Berikut adalah contoh arsitektur dari database cluster.

a. Shared Disk Cluster

Arsitektur shared disk cluster menggunakan server

independent dan berbagi sebuah sistem penyimpanan tunggal. Setiap

server mempunyai proccesor dan memori sendiri, tetapi berbagi disk

resources. Implementasi utama dari shared-disk cluster adalah

bukan untuk scalability. Shared-disk cluster diimplementasikan

untuk availability dan menambah node cadangan sebagai failover

(7)

Gambar 2.2 Shared Disk Cluster (Prabowo, 2011)

b. Shared Nothing Cluster

Dalam arsitektur shared nothing cluster, setiap server dalam

cluster menangani proccesor, memori, storage, record locks dan

transaksi yang terpisah dan melakukan koordinasi dengan server lain

melalui jaringan komputer. Proses permintaan data suatu node harus

mengirimkan pesan ke node lainnya yang memiliki data untuk

diakses. Hal ini juga dilakukan saat koordinasi data yang dilakukan

pada node yang lain seperti insert, select, update dan delete.

Berbeda dengan shared disk, shared nothing didesain untuk high

availability dan scalability. Struktur shared-nothing cluster terlihat

seperti Gambar 2.3.

(8)

2.6

MySQL

Cluster

MySQL cluster merupakan sebuah tipe basis data (database)

yang dapat beroperasi dalam ukuran data yang besar. MySQL

cluster adalah sebuah teknologi baru untuk memungkinkan

clustering didalam memory database dalam sebuah sistem

shared-nothing. Arsitektur shared-nothing mengijinkan sistem dapat bekerja

dengan hardware/ perangkat keras yang murah, dan tidak

membutuhkan hardware dan software dengan spesifikasi khusus.

Arsitektur tersebut handal karena masing-masing komponen

mempunyai memory dan disk tersendiri (MySQL, 2011).

MySQL cluster bekerja dengan melakukan mirroring atau

replikasi data antar server didalam cluster. Perbedaan dasar antara

mirroring MySQL biasa dengan MySQL cluster terletak pada

arsitekturnya. Arsitektur dari mirroring MySQL biasa menggunakan

arsitektur asynchronous. Arsitektur asynchronous artinya apabila

salah satu server down kemudian server tersebut hidup lagi, maka

server tersebut tidak bisa langsung mendapatkan mirroring dari

server yang masih hidup. Berbeda dengan MySQL cluster yang

menggunakan arsitektur synchronous yang apabila ada server down

kemudian hidup lagi, server tersebut akan langsung secara otomatis

bisa melakukan mirroring dari server yang hidup. Arsitektur standar

dari mirroring atau replikasi dari MySQL cluster dapat dilihat pada

Gambar 2.4.

(9)

2.7

Load Balancing

Load balancing atau penyeimbangan beban dalam jaringan

sangat penting bila skala dalam jaringan komputer semakin besar,

demikian juga traffic data yang ada dalam jaringan komputer

semakin lama semakin tinggi. Layanan load balancing

memungkinkan pengaksesan sumber daya dalam jaringan

didistribusikan ke beberapa host lainnya agar tidak terpusat,

sehingga untuk kinerja jaringan komputer secara keseluruhan bisa

stabil.

Ketika sebuah server sedang diakses oleh user, maka

sebenarnya server tersebut sedang terbebani karena harus melayani

proses permintaan dari user. Jika user banyak maka prosesnya bisa

semakin banyak. Session-session komunikasi dibuka oleh server

tersebut untuk memungkinkan user menerima servis dari server

tersebut. Apabila satu server saja terbebani, tentu server tersebut

tidak bisa melayani banyak user karena kemampuan melakukan

processing ada batasnya. Solusi yang paling ideal adalah dengan

membagi-bagi beban yang datang ke beberapa server, sehingga yang

melayani user tidak hanya terpusat pada satu perangkat saja. Teknik

ini disebut teknik load balancing (Iwan, 2005).

Load balancing merupakan hal yang penting pada pemrosesan

yang kinerjanya bersifat paralel. Ide dasarnya adalah memindahkan

proses dari node yang memiliki beban kerja tinggi ke node yang

memiliki beban kerja rendah. Tujuannya agar waktu pengerjaan

tugas lebih rendah dan menaikkan utilitas sumber daya sistem.

Bagian penting dari strategi load balancing adalah migration policy,

(10)

akan diimigrasikan. Proses migrasi pada load balancing terjadi pada

dua bentuk yaitu remote execution juga disebut dengan non

preemptive migration. Pada strategi ini, suatu proses baru bisa secara

otomatis dieksekusikan pada host remote. Pre-emptive migration

pada strategi ini proses akan dihentikan, dipindahkan ke node lain

dan diteruskan. Load balancing dapat dilakukan dengan eksplisit

oleh user ataupun secara implisit oleh system (Sembiring, 2008).

Manfaat dari load balancing :

Reliability

Kepercayaan terhadap sebuah sistem untuk dapat terus

melayani user dengan sebaik-baiknya. Jaminan reliability

memungkinkan user dapat melakukan pekerjaan dengan lancar

melalui layanan tersebut.

• Skalabilitas dan ketersediaan

Jika dalam sebuah jaringan komputer hanya terdapat satu buah

server mempunyai pengertian terdapat satu titik masalah.

Seandainya server mati maka layanan terhadap pengguna akan

terganggu, penambahan server dan membentuk server farm maka

skalabilitas akan meningkat selain itu faktor ketersediaan data juga

akan meningkat. Struktur sederhana dari cluster load balancing

(11)

Gambar 2.5 Struktur Sederhana Load Balancing

Gambar 2.5 menjelaskan apabila ada request dari user maka

request tersebut akan diterima oleh balancer. Setelah diterima oleh

balancer, request tersebut akan dialihkan ke node yang ada dalam

cluster. Sehingga seolah-olah seluruh pelayanan kepada user

dilakukan oleh satu server saja.

2.8

Nginx

Nginx (baca: engine x) adalah server HTTP dan reverse proxy

berbasis open-source berkemampuan tinggi, yang dapat juga

digunakan sebagai proxy IMAP/POP3. Nginx terkenal karena

performanya yang tinggi, stabil, memiliki banyak fitur, mudah

dikonfigurasi, dan bisa menggunakan spesifikasi hardware yang

tidak terlalu tinggi. Tidak seperti software server yang lainnya,

nginx tidak bergantung kepada thread untuk melayani client.

Sebaliknya, nginx menggunakan arsitektur asynchronus yang lebih

stabil. Arsitektur ini membutuhkan lebih sedikit memori serta dapat

mengatasi ribuan koneksi pada saat yang bersamaan (Nginx, 2006).

Nginx juga bisa dimanfaatkan sebagai aplikasi load balancing untuk

(12)

Nginx menggunakan algoritma round robin sederhana.

Third-party module yang digunakan adalah http upstream hash. Algoritma

Round Robin (RR) didesain untuk sistem time sharing. Algoritma

ini mirip dengan penjadwalan FCFS (First Come First Served),

namun preemption ditambahkan untuk switch (peralihan proses)

antara proses. Antrian ready diperlakukan atau dianggap sebagai

antrian sirkular. CPU menglilingi antrian ready dan mengalokasikan

masing-masing proses untuk interval waktu tertentu sampai satu

time slice /quantum.

Berikut algritma untuk penjadual Round Robin(Unimal, 2009):

• Setiap proses mendapat jatah waktu CPU (time slice/ quantum)

tertentu Time slice/quantum umumnya antara 10 - 100 milidetik.

1. Setelah time slice/ quantum maka proses akan di-preempt dan

dipindahkan ke antrian ready.

2. Proses ini adil dan sangat sederhana.

• Jika terdapat n proses di "antrian ready" dan waktu quantum q

(milidetik), maka:

1. Setiap proses akan mendapatkan 1/n dari waktu CPU.

2. Proses tidak akan menunggu lebih lama dari: (n-1)q time units.

• Kinerja dari algoritma ini tergantung dari ukuran time quantum

1. Time Quantum dengan ukuran yang besar maka akan sama

dengan FCFS.

2. Time Quantum dengan ukuran yang kecil maka time quantum

harus diubah ukurannya lebih besar dengan respek pada alih

konteks sebaliknya akan memerlukan ongkos yang besar.

Selain dengan menggunakan metode RR sebagai metode

(13)

diatur sesuai dengan kebutuhan admin jaringan. Nginx bisa

dikonfigurasi sebagai failover, berdasarkan weight, serta max fails

and file timeout. Sehingga nginx tidak hanya bekerja dengan metode

Gambar

Gambar 2.1 Skema Logic Sistem Cluster (Rio, 2010)
Gambar 2.3 Shared Nothing (Prabowo, 2011)
Gambar 2.4.
Gambar 2.5 Struktur Sederhana Load Balancing

Referensi

Dokumen terkait

Tujuan pendidikan multikultural di Inggris berorientasi pada untuk mengembangkan pola pikir anak, untuk mengembangkan nilai-nilai moral berbasis toleransi, untuk memahami

Jaringan saraf tiruan mengizinkan terjadinya proses komputasi yang sangat sederhana (penjumlahan, pengurangan dan elemen logika dasar lainnya) untuk menyelesaikan masalah

[r]

 Abstrak, berisi ringkasan dari isi art ikel yang dituangkan secara padat.  Panjang abstrak adalah 50 – 75 kata, berisi: permasalahan dan tujuan, metode dan

Dengan ini diberitahukan bahwa sesuai hasil evaluasi penawaran administrasi, teknis, harga, evaluasi kualifikasi dan pembuktian kualifikasi pada kegiatan pekerjaan tersebut di

Menyatakan dengan sesungguhnya bahwa karya ilmiah yang berjudul: Analisis Penyerapan Tenaga Kerja Pada Sektor-sektor Ekonomi Di Kabupaten Bondowoso adalah

- Belanja makanan dan minuman tamu Belanja perjalanan dinas luar daerah setwan Belanja Perjalanan dinas dalam daerah Setwan. Penyediaan Jasa Administrasi Teknis Perkantoran

PENERAPAN PENDEKATAN REALISTIC MATHEMATICS EDUCATION (RME) UNTUK MENINGKATKAN HASIL BELAJAR OPERASI HITUNG CAMPURAN SISWA PADA MATA PELAJARAN.. MATEMATIKA DI