Вы находитесь на странице: 1из 31

Tugas Enterprise Architecture

Dosen : Muhammad Kartiko Putro, S.Kom, M.M

Disusun oleh :

Achmad Gunawan
1844370006
Load Balancing
• Load balancing means the ability to spread the load of
processing for an application over a number of
separate systems for an overall performance increase
in processing incoming requests.

• Simple?

• Hanya membagi tugas kah?

• Pemisahan Web Server & Database Server apakah


termasuk load balancing?
Load Balancing
• Load Balacing: Mendistribusikan Resource.
• Resource: Processor, Memory, Network, Storage
• On top of creating actions and responses, your
processor also powers your operating system
• RAM overutilization is not as big a problem as CPU
overconsumption but it can still cause significant
performance impact
• Network for monitoring bandwidth with tools bwm-ng,
ping, and traceroute
• Disk (storage) for monitoring disk usage with tools du
and df
top
Prinsip Load balancing
Primary principles:
• Split applications over a number of servers, balancing the
load over a number of servers (such as separate web and
database servers).
• Add specialist components to applications in order to
balance the amount of processing needed for each
application function,
– Caching of common web site data, saving time on the collection
of this data from disk, or the creation of this data from database
entries, etc.
• Create additional servers that can collectively share the
load, which can greatly increase the amount of processing
power available to complete the tasks required by a server.
Perancangan Load Balancing
Guiding Principles
• Understand your system
• Planning
• Monitoring and Testing
Topics
• Load Balancing Your Website
• Load Balancing Your Database
• Network Load Balancing
Load Balancing your Webiste
• Contoh kasus: Apache
• Apakah Apache yang terinstall sudah maksimal?
• Memaksimalkan Apache:
- Disable Modul yang tidak dibutuhkan

- Disabling DNS lookups


- Compression
Load Balancing your Website
Load Balancing your Website
• Distribute all incoming connections to your web
site to a number of different web servers by using
one or more load balancing servers.

• Reduce the overall load on the web servers, you


also have good means of failover in case one of
the web servers temporarily breaks down.

• The simplest setup requires at least two web


servers and one load-balancing server.
Load Balancing your Website
Load Balancing your Website
• Preparing the server
• Preparing the workers
• Testing the Load Balancer
Load Balancing your Website
Load Balancing your Database
• MySQL Cluster will depend on several nodes
working together.
• One or more cluster management nodes to
manage, configure, and oversee your cluster,
one (though commonly several) data nodes on
which to store your data, and one or more
MySQL nodes (traditional MySQL servers) that
execute SQL queries.
Load Balancing your Database
Network Load Balancing
• Sharing the workload
• Basic Routing
• Basic network connectivity testing
Network Load Balancing
Load Balancing Scheduling Algorithm
• Round Robin
• Least Connection
• Source
• URI
• URL parameter
Topologi
Konfigurasi HAProxy (1)
• Instalasi HAProxy
− sudo apt-get install haproxy

• Enable haproxy
– Buka file /etc/default/haproxy
– Ubah bagian opsi ENABLED menjadi ENABLED=1
– Simpan perubahan

• Konfigurasi file /etc/haproxy/haproxy.cfg


– Detail file konfigurasi ada di 3 slide selanjutnya
File Konfigurasi haproxy.cfg
global
log /dev/log local0
log /dev/log local1
notice
user haproxy
group haproxy
daemon

……
File Konfigurasi haproxy.cfg (cont.)
…….

defaults
log global
mode http
option httplog
option dontlognull
contimeout 5000
clitimeout 50000
srvtimeout 50000
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
File Konfigurasi haproxy.cfg (cont.)
…….
nama load balancer
IP/Port load balancer
listen webfarm 0.0.0.0:80
mode http
stats enable
stats uri /haproxy?stats algoritma load
balancing
balance roundrobin
option httpclose
IP/Port webserver 1
option forwardfor
server webserver1 10.34.8.22:80 check
server webserver2 10.34.8.23:80 check

IP/Port webserver 2
Konfigurasi HAProxy (2)
• Restart service haproxy
– sudo service haproxy restart

• Catatan khusus : jika haproxy tidak dapat di-


start/restart karena error socket binding, stop
service apache2
– sudo service apache2 stop
Pengujian HAProxy
• Ubah isi file /var/www/html/index.html pada
webserver1
– <h1> Webserver 1</>

• Ubah isi file /var/www/html/index.html pada


webserver2
– <h1> Webserver 2</>

• Lakukan akses ke alamat load balancer lewat


browser
Mengapa Menggunakan Load Balancer?

• Ada banyak alasan mengapa menggunakan load balancing untuk


website atau aplikasi berbasis web lainnya. Dua alasan yang utama
adalah:
• Waktu Respon. Salah satu manfaat terbesar adalah untuk
meningkatkan kecepatan akses website saat dibuka. Dengan dua
atau lebih server yang saling berbagi beban lalu lintas web, masing-
masing akan berjalan lebih cepat karena beban tidak berada pada 1
server saja. Ini berarti ada lebih banyak sumber daya untuk
memenuhi permintaan halaman website.
• Redundansi. Dengan load balancing, akan mewarisi sedikit
redundansi. Sebagai contoh, jika website kita berjalan seimbang di 3
server dan salah satu server bermasalah, maka dua server lainnya
dapat terus berjalan dan pengunjung website kita tidak akan
menyadarinya downtime apapun.
Cara Kerja Load Balancing
• Load Balancer (perangkat load balancing) menggunakan beberapa
peralatan yang sama untuk menjalankan tugas yang sama. Hal ini
memungkinkan pekerjaan dilakukan dengan lebih cepat dibandingkan
apabila dikerjakan oleh hanya 1 peralatan saja dan dapat meringankan
beban kerja peralatan, serta mempercepat waktu respons. Load Balancer
bertindak sebagai penengah diatara layanan utama dan pengguna, dimana
layanan utama merupakan sekumpulan server/mesin yang siap melayani
banyak pengguna.
• Disaat Load Balancer menerima permintaan layanan dari user, maka
permintaan tersebut akan diteruskan ke server utama. Biasanya Load
Balancer dengan pintar dapat menentukan server mana yang memiliki
load yang lebih rendah dan respons yang lebih cepat. Bahkan bisa
menghentikan akses ke server yang sedang mengalami masalah dan hanya
meneruskannya ke server yang dapat memberikan layanan. Hal ini salah
satu kelebihan yang umumnya dimiliki load balancer, sehingga layanan
seolah olah tidak ada gangguan di mata pengguna.
Algoritma Load Balancing
• Round Robin. Algoritma Round Robin merupakan algoritma yang paling sederhana
dan banyak digunakan oleh perangkat load balancing. Algoritma ini membagi
beban secara bergiliran dan berurutan dari satu server ke server lain sehingga
membentuk putaran.
• Ratio. Ratio (rasio) sebenarnya merupakan sebuah parameter yang diberikan
untuk masing-masing server yang akan dimasukkan kedalam sistem load balancing.
Dari parameter Ratio ini, akan dilakukan pembagian beban terhadap server-server
yang diberi rasio. Server dengan rasio terbesar diberi beban besar, begitu juga
dengan server dengan rasio kecil akan lebih sedikit diberi beban.
• Fastest. Algoritma yang satu ini melakukan pembagian beban dengan
mengutamakan server-server yang memiliki respon yang paling cepat. Server di
dalam jaringan yang memiliki respon paling cepat merupakan server yang akan
mengambil beban pada saat permintaan masuk.
• Least Connection. Algoritma Least connection akan melakukan pembagian beban
berdasarkan banyaknya koneksi yang sedang dilayani oleh sebuah server. Server
dengan pelayanan koneksi yang paling sedikit akan diberikan beban yang
berikutnya akan masuk.
Penggunaan Load Balancer
• Pada umumnya Load Balancer digunakan oleh perusahaan/pemilik layanan yang
menginginkan layanannya selalu tersedia setiap saat (high availability) walaupun
secara kenyataan terdapat kendala yang membuat layanan tidak dapat diakses.
Misalnya untuk layanan web server/email server. Dengan load balancer, apabila
ada 2 mail server dengan konfigurasi dan tugas yang sama, maka load balancer
akan membagi beban ke 2 mail server tersebut. Dan apabila salah satu Mail server
tersebut down/tidak dapat diakses/mengalami gangguan, maka Mail server yang
lain dapat terus melayani layanan yang diakses oleh user.
• Untuk jaringan komputer, Load Balancer digunakan di ISP/Internet provider
dimana memungkinkan tersedianya akses internet selama 24x7x365 tanpa ada
down time. Tentu hal ini yang diinginkan oleh pelanggan yang menggunakan
layanan akses internet ISP tersebut. ISP/Provider hanya perlu memiliki 2 Link
internet yang memiliki jalur berbeda, agar disaat salah satu link down, masih ada 1
link yang dapat melayani akses internet ke pelanggannya. Dan ISP menggunakan
Load Balancer untuk membagi beban akses internet tersebut sehingga kedua Link
Internet tersebut maximal penggunaannya dan beban terbagi dengan baik.
Perbandingan Software vs Hardware Load
Balancer
• Kelebihan Load Balancer Software:
• Lebih murah.
• Beberapa software aplikasi memiliki banyak pilihan konfigurasi yang dapat disesuaikan dengan
kebutuhan kita.
• Kekurangan Load Balancer Software:
• Sebagian besar aplikasi tidak dapat menangani situs besar atau jaringan kompleks.
• Paket aplikasi yang akan mendukung sistem yang lebih besar memerlukan jumlah hardware lebih
banyak.
• Kelebihan Load Balancer Hardware:
• Pendekatan biasanya lebih kuat dari pilihan perangkat lunak.
• Proses lalu lintas pada tingkat jaringan, yang secara nominal lebih efisien daripada dekripsi
perangkat lunak.
• Bekerja dengan banyak OS atau platform.
• Kekurangan Load Balancer Hardware:
• Biaya lebih tinggi dibandingkan menggunakan software load balancer.
• Teknologi load balancing dapat menjadi salah satu solusi yang efektif dan efisien untuk
menciptakan sistem yang handal dengan tingkat ketersediaan tinggi (high availability), khususnya
sebagai web server. Untuk pemanfaatan teknologi load balancing menggunakan software load
balancing saat ini memang lebih banyak digunakan pada sistem operasi open souce seperti linux.
Terima Kasih

Вам также может понравиться