TUGAS 10 - PERANCANGAN PERANGKAT LUNAK (A)

 

Komponen Desain Sistem

Salah satu komponen utama dalam desain sistem adalah Load Balancer. Load balancer adalah perangkat keras atau perangkat lunak yang berfungsi untuk mendistribusikan beban kerja atau lalu lintas jaringan secara merata di antara beberapa server atau sumber daya lainnya. Tujuannya adalah untuk memastikan bahwa tidak ada satu server pun yang kelebihan beban, sehingga meningkatkan ketersediaan dan kinerja sistem secara keseluruhan.

Ada beberapa jenis load balancer, di antaranya:

  1. Layer 4 Load Balancer
  2. Layer 7 Load Balancer
  3. Application Load Balancer
  4. Global Load Balancer

Berikut adalah penjelasan mengenai masing-masing jenis load balancer tersebut:

Layer 4 Load Balancer


Layer 4 load balancer beroperasi pada lapisan transport dari model OSI (Open Systems Interconnection), yang mencakup protokol seperti TCP (Transmission Control Protocol) dan UDP (User Datagram Protocol). Fungsi utama load balancer ini adalah mendistribusikan lalu lintas berdasarkan informasi dari layer transport, seperti alamat IP sumber dan tujuan serta port TCP/UDP.

Cara Kerja Layer 4 Load Balancer:

  1. Menerima Paket: Load balancer menerima paket data yang masuk dari klien.
  2. Memeriksa Informasi Paket: Load balancer menganalisis informasi header dari paket, seperti alamat IP sumber, alamat IP tujuan, dan port.
  3. Memilih Server Tujuan: Berdasarkan algoritma load balancing yang digunakan (seperti round-robin atau least connections), load balancer memilih server tujuan di backend.
  4. Meneruskan Paket: Load balancer meneruskan paket ke server tujuan yang telah dipilih tanpa perlu membuka paket untuk menganalisis data aplikasi (payload).
  5. Mengembalikan Respon: Setelah server backend memproses permintaan, respon dikirim kembali melalui load balancer ke klien.

Kelebihan Layer 4 Load Balancer:

  1. Kinerja Tinggi: Karena beroperasi pada lapisan transport dan tidak perlu melakukan inspeksi mendalam pada paket data, Layer 4 load balancer umumnya lebih cepat dan dapat menangani volume lalu lintas yang lebih tinggi dibandingkan Layer 7 load balancer.
  2. Efisiensi: Dapat mendistribusikan beban secara lebih efisien karena hanya memproses informasi header paket tanpa memeriksa isi data aplikasi.
  3. Skalabilitas: Cocok untuk skenario yang memerlukan penskalaan cepat dan penanganan lalu lintas tinggi, seperti server web dan aplikasi berbasis TCP/UDP.

Kekurangan Layer 4 Load Balancer:

  1. Kurangnya Kontrol Aplikasi: Tidak memiliki kemampuan untuk menganalisis dan mendistribusikan lalu lintas berdasarkan data aplikasi atau konten HTTP/HTTPS. Ini membatasi penggunaannya dalam skenario yang memerlukan inspeksi konten atau penanganan cerdas berdasarkan permintaan aplikasi.
  2. Fitur Terbatas: Tidak mendukung fitur-fitur canggih seperti SSL termination, URL routing, atau cookie-based session persistence yang sering ditemukan pada Layer 7 load balancer.

Layer 7 Load Balancer



Layer 7 load balancer beroperasi pada lapisan aplikasi dari model OSI, yang mencakup protokol seperti HTTP, HTTPS, FTP, dan SMTP. Fungsi utama load balancer ini adalah mendistribusikan lalu lintas berdasarkan konten permintaan aplikasi, seperti URL, header HTTP, cookies, dan data lainnya.

Cara Kerja Layer 7 Load Balancer:

  1. Menerima Permintaan: Load balancer menerima permintaan dari klien.
  2. Memeriksa Konten Aplikasi: Load balancer menganalisis informasi dari lapisan aplikasi, seperti URL, metode HTTP (GET, POST), header, dan body dari permintaan.
  3. Memilih Server Tujuan: Berdasarkan algoritma load balancing dan aturan yang ditentukan (seperti URL routing atau session persistence), load balancer memilih server tujuan di backend.
  4. Meneruskan Permintaan: Load balancer meneruskan permintaan ke server tujuan yang dipilih.
  5. Mengembalikan Respon: Setelah server backend memproses permintaan, respon dikirim kembali melalui load balancer ke klien.

Kelebihan Layer 7 Load Balancer:

  1. Kontrol Aplikasi yang Lebih Baik: Dapat mendistribusikan lalu lintas berdasarkan konten spesifik dari permintaan aplikasi, memungkinkan routing cerdas dan penanganan permintaan yang lebih baik.
  2. SSL Termination: Dapat mengakhiri koneksi SSL di load balancer, mengurangi beban kerja pada server backend.
  3. Session Persistence: Dapat memastikan permintaan dari sesi yang sama diarahkan ke server yang sama, yang berguna untuk aplikasi yang memerlukan sesi pengguna yang konsisten.
  4. Routing Berdasarkan Konten: Dapat mengarahkan permintaan berdasarkan URL, header, atau data lainnya, yang berguna untuk microservices atau aplikasi dengan berbagai modul.

Kekurangan Layer 7 Load Balancer:

  1. Kompleksitas yang Lebih Tinggi: Memerlukan konfigurasi yang lebih rumit dan pengelolaan yang lebih kompleks dibandingkan Layer 4 load balancer.
  2. Kinerja yang Lebih Rendah: Karena harus memeriksa dan memproses data aplikasi, Layer 7 load balancer biasanya memiliki kinerja yang lebih rendah dibandingkan Layer 4 load balancer.
  3. Konsumsi Sumber Daya: Lebih banyak memerlukan sumber daya komputasi karena analisis mendalam terhadap konten aplikasi.

Application Load Balancer



Application Load Balancer (ALB) adalah jenis load balancer yang beroperasi pada lapisan aplikasi (Layer 7) dari model OSI. ALB dirancang untuk menangani lalu lintas web yang kompleks dan memungkinkan distribusi permintaan berdasarkan berbagai atribut aplikasi, seperti URL, header HTTP, dan lainnya.

Fitur Utama Application Load Balancer:

  1. Routing Berdasarkan Konten: ALB dapat memeriksa konten permintaan HTTP/HTTPS dan mendistribusikannya ke server backend berdasarkan aturan yang ditentukan. Contohnya, permintaan ke example.com/api dapat diarahkan ke satu grup server, sementara permintaan ke example.com/static diarahkan ke grup server lain.
  2. SSL Termination: ALB dapat mengakhiri koneksi SSL/TLS, yang mengurangi beban enkripsi dan dekripsi dari server backend. Ini juga memudahkan manajemen sertifikat SSL di satu lokasi.
  3. WebSocket: ALB mendukung WebSocket dan WebSocket Secure (wss), yang memungkinkan koneksi persisten antara klien dan server.
  4. Host-Based and Path-Based Routing: ALB mendukung routing berdasarkan nama host (misalnya, api.example.com vs. www.example.com) dan jalur URL (misalnya, /api vs. /static).
  5. Session Stickiness: ALB dapat memastikan bahwa permintaan dari klien yang sama diarahkan ke server yang sama selama sesi yang berlangsung (dikenal juga sebagai "sticky sessions" atau "session persistence").
  6. HTTP/2 and gRPC Support: ALB mendukung HTTP/2, yang menawarkan kinerja yang lebih baik dan pengurangan latensi melalui multiplexing, serta gRPC, yang memungkinkan komunikasi RPC yang efisien.

Cara Kerja Application Load Balancer:

  1. Menerima Permintaan: ALB menerima permintaan dari klien.
  2. Memeriksa Konten Aplikasi: ALB menganalisis permintaan berdasarkan aturan yang telah dikonfigurasi, seperti header HTTP, URL, metode HTTP (GET, POST, dll.), dan konten lainnya.
  3. Memilih Target Group: Berdasarkan aturan routing, ALB menentukan target group yang akan menerima permintaan. Target group adalah kumpulan server backend yang menerima lalu lintas dari ALB.
  4. Meneruskan Permintaan: ALB meneruskan permintaan ke server backend dalam target group yang dipilih.
  5. Mengembalikan Respon: Server backend memproses permintaan dan mengirimkan respon kembali melalui ALB ke klien.

Global Load Balancer



Global Load Balancer (GLB) adalah jenis load balancer yang mendistribusikan lalu lintas jaringan ke server yang tersebar di berbagai lokasi geografis di seluruh dunia. Tujuan utamanya adalah untuk meningkatkan kinerja aplikasi dengan mengarahkan pengguna ke server terdekat secara geografis atau server yang memiliki ketersediaan dan performa terbaik pada saat itu.

Fitur Utama Global Load Balancer:

  1. Geolocation-Based Routing: Mengarahkan permintaan pengguna ke server terdekat berdasarkan lokasi geografis pengguna, yang mengurangi latensi dan mempercepat respon aplikasi.
  2. Latency-Based Routing: Mengarahkan permintaan pengguna ke server yang memiliki waktu respon tercepat, terlepas dari lokasi geografis pengguna.
  3. Health Checks and Failover: Memantau kesehatan server dan secara otomatis mengalihkan lalu lintas ke server yang aktif jika terjadi kegagalan pada server tertentu.
  4. Disaster Recovery: Memastikan aplikasi tetap tersedia bahkan jika terjadi bencana atau gangguan di satu lokasi dengan mengalihkan lalu lintas ke lokasi lain yang masih aktif.
  5. Anycast Routing: Menggunakan satu alamat IP yang sama untuk beberapa server di berbagai lokasi, dan mengarahkan lalu lintas ke server terdekat menggunakan routing BGP (Border Gateway Protocol).

Cara Kerja Global Load Balancer:

  1. DNS-Based Load Balancing: Banyak GLB menggunakan DNS untuk mendistribusikan permintaan. Ketika pengguna mengakses aplikasi, permintaan DNS mereka diarahkan ke GLB yang kemudian menentukan server terbaik berdasarkan aturan yang ditentukan dan mengembalikan alamat IP server tersebut.
  2. Anycast Network: GLB dapat menggunakan Anycast, di mana satu alamat IP dapat diumumkan dari beberapa lokasi. Permintaan pengguna diarahkan ke lokasi terdekat berdasarkan rute jaringan yang paling pendek.
  3. Real-Time Monitoring: GLB memantau kesehatan dan kinerja server di berbagai lokasi secara real-time, menggunakan data ini untuk membuat keputusan routing yang optimal.
  4. Policy-Based Routing: Administrator dapat menetapkan kebijakan routing berdasarkan berbagai faktor seperti geolokasi, latensi, waktu, dan beban server untuk mengoptimalkan distribusi lalu lintas.

Komentar

Postingan populer dari blog ini

TUGAS 2 PPB - KEYSA ANADEA 5025211028

ETS PPL A_KEYSA ANADEA

TUGAS 2 - PERANCANGAN PERANGKAT LUNAK (A)