Tugas 7 : Komponen Desain Sistem
Nama : Fathin Muhashibi Putra
NRP : 5025211229
Kelas : PPL - A
Komponen Desain Sistem
Tugas yang diberikan pada mata kuliah Perancangan Perangkat Lunak (A), yaitu terkait Komponen Desain Sistem. Berikut merupakan dokumentasinya :
Pengertian Load Balancer
Load balancer adalah komponen dalam desain sistem yang berfungsi untuk mendistribusikan permintaan atau beban kerja yang masuk ke beberapa sumber daya atau server. Tujuannya adalah untuk memastikan bahwa tidak ada satu server yang kelebihan beban, serta untuk memastikan pemanfaatan yang efisien dari semua server yang tersedia. Load balancer sangat berguna dalam beberapa situasi, misalnya ketika sistem menerima banyak permintaan dan perlu menyebarkannya ke beberapa server untuk menghindari kelebihan beban, atau ketika ada beberapa server yang perlu dioptimalkan penggunaannya secara merata. Load Balancer juga dapat meningkatkan ketersediaan dan keandalan aplikasi dengan mengarahkan lalu lintas hanya ke server yang sehat dan online, serta dapat membantu dalam pemeliharaan server tanpa mengganggu layanan. Selain itu, load balancer dapat menyediakan fitur tambahan seperti pemantauan kesehatan server, SSL offloading, dan caching, yang semuanya berkontribusi pada kinerja dan keamanan keseluruhan sistem.
Jenis-jenis Load Balancer
Terdapat berbagai macam load balancer, dan jenis yang dipilih untuk suatu sistem tertentu akan bergantung pada kebutuhan spesifik dari sistem tersebut. Beberapa jenis load balancer yang umum meliputi:
1. Load Balancer Lapisan-4 (L4)
Load balancer lapisan-4 beroperasi pada lapisan transport dalam model OSI. Mereka menentukan cara penerusan berdasarkan informasi yang terdapat dalam protokol lapisan jaringan, seperti alamat IP dan nomor port. Ketika seorang klien membuat permintaan, ia membentuk koneksi TCP dengan load balancer. Load balancer kemudian menggunakan koneksi TCP yang sama yang dibuat oleh klien untuk terhubung dengan salah satu server di hulu.
Misalkan ingin mengembalikan kode status 401 jika header Authorization kosong atau ingin mengarahkan panggilan ke layanan berdasarkan path. Dengan load balncer L4, hal ini tidak mungkin dilakukan karena Anda tidak memiliki akses ke data permintaan.
A. Fitur Utama Load Balancer Lapisan-4 (L4):
- Lapisan Transport: Beroperasi pada lapisan transport (TCP/UDP).
- Load Balancer Dasar: Mendistribusikan lalu lintas berdasarkan alamat IP dan nomor port.
- Efisiensi: Memproses lebih cepat karena tidak memeriksa isi paket data.
- Terjemahan Alamat Jaringan (NAT): Dapat melakukan NAT dasar untuk menyembunyikan alamat server.
- Kinerja Cepat: Pemrosesan yang cepat karena tidak memeriksa isi paket data.
- Sederhana dan Efisien: Implementasi yang lebih sederhana dan efisien untuk beban kerja berbasis jaringan.
- NAT Dasar: Dapat melakukan Terjemahan Alamat Jaringan (NAT) untuk menyembunyikan alamat server.
- Skalabilitas: Dapat dengan mudah menangani peningkatan lalu lintas dengan menambahkan lebih banyak server di hulu.
- Tidak ada load balancer cerdas
- Tidak bekerja dengan koneksi streaming/keep-alive
- Tidak ada terminasi TLS (baik atau buruk nya tergantung pada kebutuhan)
D. Kasus Penggunaan Load Balancer Lapisan-4 (L4):
- Penggunaan: Menggunakan load balancer L4 untuk mendistribusikan permintaan koneksi dari pemain berdasarkan alamat IP dan nomor port. Ini memastikan bahwa setiap server game menerima jumlah koneksi yang seimbang.
- Topologi: Klien > L4 Load Balancer > Server Game 1 > Server Game 2 > Server Game 3
- Penjelasan: Load balancer mendistribusikan koneksi berdasarkan informasi jaringan tanpa memeriksa isi data.
- Penggunaan: Load balancer L4 digunakan untuk mendistribusikan lalu lintas email berdasarkan alamat IP sumber dan tujuan, serta nomor port. Ini membantu dalam memastikan bahwa beban kerja email tersebar merata di antara beberapa server.
- Topologi: Klien > L4 Load Balancer > Server Email 1 > Server Email 2 > Server Email 3
- Penjelasan: Load balancer mendistribusikan lalu lintas berdasarkan informasi jaringan, menjaga kinerja optimal untuk pengiriman dan penerimaan email.
2. Load Balancer Lapisan-7 (L7)
Karena bekerja pada Lapisan 7, Load Balancer L7 dapat memahami data dalam permintaan. Hal ini memungkinkan kita untuk melakukan berbagai operasi seperti:
- Otentikasi: Mengembalikan kode status 401 jika beberapa header tidak ada.
- Perutean Cerdas: Mengarahkan panggilan /payments ke server hulu tertentu.
- Terminasi TLS: Mengakhiri koneksi TLS.
- Lapisan Aplikasi: Beroperasi pada lapisan aplikasi (HTTP, HTTPS).
- Perutean Berbasis Konten: Mendistribusikan lalu lintas berdasarkan informasi konten yang spesifik.
- Perutean Tingkat Lanjut: Mampu membuat keputusan perutean yang cerdas berdasarkan data spesifik aplikasi.
- Pemutusan SSL: Dapat mengakhiri koneksi SSL.
- Inteligensi Tinggi: Dapat membuat keputusan Load Balancer berdasarkan informasi konten seperti URL, header HTTP, atau cookie, sehingga dapat melakukan Load Balancer yang lebih cerdas.
- Perutean Berbasis Konten: Memungkinkan untuk mendistribusikan lalu lintas berdasarkan karakteristik konten permintaan, yang memungkinkan pengalihan permintaan ke server yang paling sesuai dengan kebutuhan.
- Pemutusan SSL: Mampu mengakhiri koneksi SSL, memungkinkan untuk melakukan manipulasi atau inspeksi pada lalu lintas yang dienkripsi.
- Kemampuan Otentikasi: Dapat melakukan otentikasi dengan memeriksa header permintaan, sehingga dapat mengimplementasikan skema otentikasi seperti memberikan respons 401 jika header tertentu tidak ada.
- Overhead Koneksi Ganda: Dibandingkan dengan Load Balancer Lapisan-4 (L4) yang hanya membuat satu koneksi TCP untuk setiap klien, Load Balancer L7 menciptakan koneksi ganda dengan setiap server hulu, sehingga dapat meningkatkan beban pada infrastruktur jaringan.
- Kompleksitas Lebih Tinggi: Implementasi dan konfigurasi Load Balancer L7 cenderung lebih kompleks dibandingkan dengan L4 karena melibatkan pemahaman dan manipulasi data permintaan.
- Kinerja yang Dapat Berkurang: Operasi yang kompleks pada lapisan aplikasi dapat mengurangi kinerja Load Balancer L7, terutama dalam skenario dengan lalu lintas yang sangat tinggi.
- Penggunaan: Load balancer L7 untuk mengarahkan lalu lintas berdasarkan tipe konten seperti foto, video, atau posting teks. Permintaan untuk unggahan video dapat diarahkan ke server yang dioptimalkan untuk media, sementara permintaan untuk berita dapat diarahkan ke server lain.
- Topologi: Klien > L7 Load Balancer > Server Media > Server Berita > Server Pesan
- Penjelasan: Load balancer memeriksa tipe konten dalam permintaan dan mengarahkan ke server yang sesuai untuk penanganan yang efisien.
- Penggunaan: Load balancer L7 untuk mengarahkan lalu lintas berdasarkan tipe konten (misalnya: film, serial TV, dokumenter). Setiap permintaan video diarahkan ke server yang dioptimalkan untuk jenis konten tersebut.
- Topologi: Klien > L7 Load Balancer > Server Film > Server Serial TV > Server Dokumenter
- Penjelasan: Load balancer memeriksa URL permintaan dan mengarahkan ke server yang dioptimalkan untuk streaming konten yang diminta.
3. Load Balancer Global
GSLB adalah singkatan dari Global Server Load Balancer. Jenis Load Balancer ini melampaui Load Balancer lokal tradisional dan dirancang untuk mendistribusikan lalu lintas ke beberapa pusat data atau server yang terdistribusi secara geografis.
- Skala Global: Mengelola distribusi lalu lintas di beberapa pusat data atau lokasi geografis.
- Pemantauan Kesehatan: Memantau kesehatan dan kinerja server di berbagai wilayah.
- Load Balancer Berbasis DNS: Menggunakan DNS untuk mengarahkan klien ke server yang paling sesuai berdasarkan faktor-faktor seperti kedekatan dan beban.
- Distribusi Lalu Lintas Global: Memungkinkan untuk mengelola distribusi lalu lintas di beberapa pusat data atau lokasi geografis di seluruh dunia, menjaga kinerja aplikasi yang optimal bagi pengguna di berbagai wilayah.
- Pemantauan Kesehatan Global: Dapat memantau kesehatan dan kinerja server di berbagai wilayah secara real-time, sehingga memungkinkan untuk mengarahkan lalu lintas ke server yang paling sesuai dan memastikan ketersediaan yang tinggi.
- Load Balancer Berbasis DNS: Menggunakan DNS untuk mengarahkan klien ke server yang paling sesuai berdasarkan faktor-faktor seperti kedekatan geografis dan kondisi server, memberikan fleksibilitas dan skala yang luas dalam manajemen lalu lintas.
- Kompleksitas Konfigurasi: Konfigurasi dan pengelolaan load balancer GSLB bisa menjadi rumit karena melibatkan pengaturan dan sinkronisasi di berbagai pusat data atau lokasi geografis yang berbeda.
- Ketergantungan pada Infrastruktur DNS: Penggunaan DNS sebagai mekanisme Load Balancer dapat menyebabkan ketergantungan pada infrastruktur DNS, yang bisa menjadi titik kegagalan tunggal jika tidak dikelola dengan baik.
- Overhead Penggunaan DNS: Proses resolusi DNS tambahan untuk mengarahkan klien ke server yang sesuai dapat menambah overhead dan mempengaruhi kinerja aplikasi, terutama dalam lingkungan dengan banyak perubahan konfigurasi atau tingkat lalu lintas yang tinggi.
- Penggunaan: Load balancer global digunakan untuk mengarahkan permintaan pengguna ke pusat data terdekat atau yang memiliki beban paling ringan, memastikan kinerja aplikasi yang optimal di seluruh dunia.
- Topologi: Klien di berbagai lokasi > Load Balancer Global > Pusat Data di berbagai wilayah
- Penjelasan: Load balancer global mendistribusikan lalu lintas berdasarkan lokasi pengguna dan kapasitas pusat data, memastikan respons cepat dan ketersediaan tinggi.
- Penggunaan: Menggunakan load balancer global untuk mendistribusikan permintaan ke node CDN yang paling dekat dengan lokasi geografis pengguna, memastikan pengiriman konten yang cepat dan efisien.
- Topologi: Klien di berbagai lokasi > Load Balancer Global > Node CDN di berbagai wilayah
- Penjelasan: Load balancer global mengarahkan permintaan ke node CDN terdekat berdasarkan lokasi geografis pengguna, mengurangi latensi dan mempercepat pengiriman konten.
4. Load Balancer Aplikasi
- Load Balancer Berbasis Konten: Mampu mendistribusikan lalu lintas berdasarkan karakteristik konten, seperti URL, header HTTP, atau data sesi, untuk memastikan setiap permintaan ditangani oleh server yang paling sesuai.
- Penanganan Protokol Khusus: Mendukung protokol atau aplikasi khusus seperti HTTP, HTTPS, TCP, atau UDP, serta mampu melakukan manipulasi lalu lintas sesuai kebutuhan aplikasi.
- Pemantauan Kesehatan Aplikasi: Memantau kesehatan server dan aplikasi secara langsung, termasuk respons server, waktu respon, dan ketersediaan layanan, untuk mengarahkan lalu lintas ke server yang paling sesuai.
- Load Balancer yang Lebih Cerdas: Dapat melakukan Load Balancer berdasarkan karakteristik konten aplikasi, yang memungkinkan distribusi lalu lintas yang lebih cerdas dan efisien.
- Ketersediaan yang Tinggi: Dengan kemampuan pemantauan kesehatan aplikasi, load balancer aplikasi dapat mengarahkan lalu lintas ke server yang sehat dan tersedia, meningkatkan ketersediaan layanan.
- Skalabilitas yang Fleksibel: Dapat dengan mudah diatur dan dikonfigurasi untuk menangani lonjakan lalu lintas atau peningkatan kapasitas, serta mendukung integrasi dengan teknologi cloud untuk skalabilitas yang lebih besar.
- Kompleksitas Konfigurasi: Konfigurasi dan pengelolaan load balancer aplikasi bisa menjadi rumit, terutama dalam lingkungan dengan aplikasi yang kompleks atau beragam.
- Overhead Pengolahan Konten: Proses analisis konten untuk melakukan Load Balancer berbasis konten dapat menambah overhead pemrosesan, yang dapat mempengaruhi kinerja aplikasi secara keseluruhan.
- Ketergantungan pada Protokol Aplikasi: Load balancer aplikasi tergantung pada pemahaman yang mendalam tentang protokol aplikasi yang digunakan, sehingga perubahan pada aplikasi atau protokol tersebut dapat memerlukan penyesuaian konfigurasi yang rumit.
a. Platform E-commerce (Contoh: Tokopedia):
- Penggunaan: Menggunakan load balancer aplikasi untuk mendistribusikan permintaan berdasarkan URL, header HTTP, atau cookie. Ini memastikan bahwa permintaan ke halaman produk, pembayaran, dan layanan lainnya diarahkan ke server yang sesuai.
- Topologi: Klien > Load Balancer Aplikasi > Server Produk > Server Pembayaran > Server Layanan Pelanggan
- Penjelasan: Load balancer aplikasi mendistribusikan permintaan berdasarkan karakteristik konten, memastikan setiap permintaan ditangani oleh server yang sesuai.
b. Aplikasi Streaming Musik (Contoh: Spotify):
- Penggunaan: Load balancer aplikasi digunakan untuk mengarahkan permintaan pengguna ke server yang menyajikan musik, playlist, atau podcast, berdasarkan tipe permintaan.
- Topologi: Klien > Load Balancer Aplikasi > Server Musik > Server Playlist > Server Podcast
- Penjelasan: Load balancer aplikasi mengarahkan permintaan ke server yang sesuai berdasarkan tipe permintaan, memastikan pengalaman pengguna yang lancar.
Load Balancer aplikasi adalah jenis Load Balancer yang dirancang khusus untuk mengelola dan mendistribusikan lalu lintas aplikasi atau protokol tertentu, seperti HTTP atau HTTPS. Load Balancer aplikasi beroperasi pada tingkat aplikasi dalam arsitektur jaringan dan dapat melakukan Load Balancer berdasarkan karakteristik konten, seperti URL, header HTTP, atau data sesi.
Referensi :
https://kuliahppl.blogspot.com/2024/05/komponen-desain-sistem.html
https://levelup.gitconnected.com/l4-vs-l7-load-balancing-d2012e271f56
https://www.geeksforgeeks.org/what-are-the-components-of-system-design/?ref=lbp
https://www.geeksforgeeks.org/layer-4l4-layer-7l7-and-gslb-load-balancers/
https://avinetworks.com/glossary/global-server-load-balancing-2/
https://medium.com/dazn-tech/aws-application-load-balancer-algorithms-765be2eca158
Comments
Post a Comment