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.

Lapisan transport menambahkan port sumber dan tujuan. Lapisan jaringan menambahkan IP sumber dan tujuan (Lapisan-lapisan ini melakukan lebih banyak fungsi selain ini).

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.

Selain itu, load balncer  untuk multiplexing (aliran HTTP2) dan protokol keep-alive bisa menjadi masalah. (Multiplexing adalah mengirim beberapa permintaan melalui satu koneksi, dan keep-alive adalah tidak menutup koneksi untuk beberapa waktu). Misalkan dua klien, A dan B, membuat permintaan ke load balancer yang terhubung ke dua server hulu, C dan D (dengan koneksi keep-alive). Misalnya, A terhubung ke server C dan B terhubung ke server D. Jika A membuat 1 permintaan per detik (RPS) dan B membuat 50 RPS, maka server D menangani 50 kali lebih banyak permintaan daripada server C, yang sebenarnya mengalahkan tujuan dari load balancer.

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.
B. Kelebihan Load Balancer Lapisan-4 (L4):
  • 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.
C. Kekurangan Load Balancer Lapisan-4 (L4):
  • 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):

        a. Server Game Online:
  • 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.

        b. Server Email (Contoh: SMTP Server):
  • 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)


    Load balancer lapisan-7 beroperasi pada lapisan aplikasi model OSI. Mereka mampu membuat keputusan Load Balancer berdasarkan konten, seperti informasi URL, header HTTP, atau cookie. Ketika seorang klien membuat permintaan, ia membentuk koneksi TCP dengan Load BalancerLoad Balancer kemudian membuat koneksi TCP baru dengan salah satu server di hulu. Oleh karena itu, terdapat 2 koneksi TCP dibandingkan dengan 1 koneksi pada Load Balancer L4 dengan TCP/UDP passthrough.

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.
    Dalam kasus protokol multiplexed/keep-alive, Load Balancer L7 bekerja dengan sangat baik. Load Balancer L7 membuat koneksi TCP dengan setiap server hulu untuk satu koneksi klien daripada memilih satu server hulu. Ini berarti ketika klien A membuat koneksi dengan Load BalancerLoad Balancer membuat dua koneksi, satu dengan server C dan satu dengan server D.

A. Fitur Utama Load Balancer Lapisan-7 (L7):
  • 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.
B. Kelebihan Load Balancer Lapisan-7 (L7):
  • 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.
C. Kekurangan Load Balancer Lapisan-7 (L7):
  • 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.
D. Kasus Penggunaan Load Balancer Lapisan-7 (L7):

        a. Platform Media Sosial (Contoh: Facebook):
  • 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.

        b. Aplikasi Streaming Video (Contoh: Netflix):
  • 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.

    Load Balancer GSLB berkaitan dengan Load Balancer global atau area luas. Ini memperhitungkan faktor-faktor seperti kedekatan server, kesehatan server, dan lokasi geografis untuk mendistribusikan lalu lintas secara cerdas ke berbagai lokasi.

A. Fitur Utama GSLB (Global Server Load Balancer):
  • 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.
B. Kelebihan Load Balancer GSLB (Global Server Load Balancer):
  • 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.
C. Kekurangan Load Balancer GSLB (Global Server Load Balancer) :
  • 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.
D. Kasus Penggunaan GSLB (Global Server Load Balancer):

        a. Aplikasi Global (Contoh: Google):
  • 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.

        b. Jaringan Pengiriman Konten (CDN):
  • 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

A. Fitur Utama 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.
B. Kelebihan Load Balancer Aplikasi :
  • 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.
C. Kekurangan Load Balancer Aplikasi :
  • 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.
D. Kasus Penggunaan Load Balancer Aplikasi :
        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

Popular posts from this blog

Tugas 2: Membuat Aplikasi Hello World menggunakan Jetpack Compose (PPB - A)

Tugas 1: Review Perkembangan Teknologi Perangkat Bergerak (PPB - A)

ETS - Evaluasi Tengah Semester: Proyek - Mobile Front End