Perancangan Perangkat Lunak - Tugas Pertemuan 10
Komponen Desain Sistem

Cara Kerja Load Balancer Layer 4
- Penerimaan Permintaan: Load balancer Layer 4 menerima permintaan dari klien.
- Pemeriksaan Paket: Load balancer memeriksa header paket transport (TCP/UDP) untuk menentukan tujuan permintaan. Ini melibatkan informasi seperti alamat IP sumber, alamat IP tujuan, port sumber, dan port tujuan.
- Pemilihan Server: Berdasarkan informasi header tersebut dan algoritma load balancing (misalnya, round-robin, least connections, atau IP hash), load balancer menentukan server backend yang akan menerima permintaan.
- Penerusan Paket: Load balancer meneruskan paket ke server yang dipilih. Ini dilakukan dengan merutekan ulang atau meneruskan paket tanpa memodifikasi isinya.
- Pengiriman Respon: Server backend memproses permintaan dan mengirimkan respon kembali ke load balancer, yang kemudian meneruskan respon tersebut ke klien.
Kelebihan Load Balancer Layer 4
- Kinerja Tinggi: Karena load balancer Layer 4 beroperasi pada level paket dan tidak melakukan inspeksi mendalam terhadap data aplikasi, ia dapat memproses lalu lintas dengan sangat cepat dan efisien.
- Skalabilitas: Memungkinkan distribusi beban kerja yang efisien di antara beberapa server backend, meningkatkan kapasitas dan skalabilitas sistem.
- Sederhana: Implementasi dan konfigurasi load balancer Layer 4 relatif lebih sederhana dibandingkan load balancer Layer 7 (yang bekerja pada level aplikasi).
- Transparansi: Load balancer Layer 4 bekerja secara transparan terhadap aplikasi dan protokol yang digunakan, sehingga mendukung berbagai jenis aplikasi dan protokol.
- Efisiensi Biaya: Karena bekerja pada level yang lebih rendah dan melakukan lebih sedikit pemeriksaan terhadap paket data, perangkat keras yang diperlukan untuk load balancer Layer 4 cenderung lebih murah dibandingkan dengan load balancer Layer 7.
Kekurangan Load Balancer Layer 4
- Kurangnya Kesadaran Aplikasi: Load balancer Layer 4 tidak memiliki pemahaman tentang isi data aplikasi, sehingga tidak dapat melakukan pengambilan keputusan berdasarkan konten aplikasi atau header HTTP.
- Fitur Terbatas: Tidak mendukung fitur-fitur canggih seperti pemantauan kesehatan aplikasi, pengalihan berdasarkan konten aplikasi, dan pemrosesan SSL/TLS (kecuali di tingkat transport).
- Tidak Optimal untuk HTTPS: Load balancer Layer 4 tidak dapat mendekripsi dan memproses lalu lintas HTTPS, sehingga tidak dapat mendistribusikan beban berdasarkan informasi dalam header HTTP(S).
- Kurang Fleksibel: Karena bekerja di level transport, load balancer Layer 4 mungkin kurang fleksibel dalam mengatasi beberapa scenario distribusi beban kerja yang memerlukan pemahaman lebih dalam tentang aplikasi.
Load balancer Layer 7 beroperasi pada lapisan aplikasi dalam model OSI, menggunakan informasi dari protokol aplikasi seperti HTTP, HTTPS, FTP, dan SMTP untuk mendistribusikan lalu lintas. Berikut adalah penjelasan mengenai cara kerja, kelebihan, dan kekurangan load balancer Layer 7.
Cara Kerja Load Balancer Layer 7
- Penerimaan Permintaan: Load balancer Layer 7 menerima permintaan dari klien.
- Pemeriksaan Permintaan: Load balancer menganalisis header, payload, dan konten lainnya dari permintaan aplikasi. Ini melibatkan pemeriksaan informasi seperti URL, cookies, headers, dan data form.
- Pemilihan Server: Berdasarkan analisis ini dan algoritma load balancing (misalnya, round-robin, least connections, atau content-based routing), load balancer memilih server backend yang paling sesuai untuk menangani permintaan.
- Penerusan Permintaan: Load balancer meneruskan permintaan ke server backend yang dipilih, mungkin dengan memodifikasi header atau konten untuk optimasi tertentu.
- Pengiriman Respon: Server backend memproses permintaan dan mengirimkan respon kembali ke load balancer, yang kemudian meneruskan respon tersebut ke klien.
Kelebihan Load Balancer Layer 7
- Kesadaran Aplikasi: Load balancer Layer 7 memiliki pemahaman mendalam tentang konten aplikasi, memungkinkan pengambilan keputusan berdasarkan informasi aplikasi seperti URL, cookie, dan header HTTP.
- Routing Berbasis Konten: Memungkinkan distribusi permintaan berdasarkan konten spesifik dalam permintaan, seperti mengarahkan permintaan ke server tertentu berdasarkan path URL atau tipe konten.
- Fitur Canggih: Mendukung fitur-fitur canggih seperti pemantauan kesehatan aplikasi, pengelolaan sesi (session persistence), dan pengalihan lalu lintas berdasarkan aturan yang rumit.
- Pemrosesan SSL/TLS: Load balancer Layer 7 dapat mendekripsi dan memproses lalu lintas HTTPS, memungkinkan optimasi dan inspeksi lalu lintas yang aman.
- Peningkatan Kinerja Aplikasi: Dengan fitur caching, kompresi, dan optimasi lainnya, load balancer Layer 7 dapat meningkatkan kinerja aplikasi dan pengalaman pengguna.
Kekurangan Load Balancer Layer 7
- Kompleksitas: Implementasi dan konfigurasi load balancer Layer 7 lebih kompleks dibandingkan Layer 4, memerlukan pemahaman mendalam tentang aplikasi dan protokol yang digunakan.
- Kinerja: Karena melakukan inspeksi mendalam terhadap data aplikasi, load balancer Layer 7 cenderung memiliki latensi lebih tinggi dibandingkan Layer 4. Hal ini juga membutuhkan lebih banyak sumber daya komputasi.
- Biaya: Perangkat keras dan perangkat lunak untuk load balancer Layer 7 biasanya lebih mahal karena fitur-fitur canggih yang disediakan dan kebutuhan sumber daya yang lebih tinggi.
- Pengelolaan: Memerlukan pengelolaan dan pemeliharaan yang lebih intensif, termasuk pemantauan kinerja, pembaruan aturan routing, dan penanganan masalah keamanan.

Application Load Balancer (ALB) adalah jenis load balancer yang beroperasi pada layer 7 dari model OSI, yang berarti ia bekerja di tingkat aplikasi, seperti HTTP dan HTTPS. ALB adalah komponen penting dalam arsitektur cloud modern, seperti yang disediakan oleh Amazon Web Services (AWS). Berikut adalah penjelasan mengenai cara kerja, kelebihan, dan kekurangan Application Load Balancer.
Cara Kerja Application Load Balancer
- Penerimaan Permintaan: ALB menerima permintaan dari klien yang datang melalui internet atau jaringan internal.
- Pemeriksaan Permintaan: ALB menganalisis header, path URL, metode HTTP, dan atribut lain dari permintaan.
- Pemilihan Target: Berdasarkan aturan routing yang telah dikonfigurasi, ALB menentukan target (server backend atau layanan) yang paling sesuai untuk menangani permintaan. Ini bisa melibatkan pengambilan keputusan berdasarkan konten aplikasi.
- Penerusan Permintaan: ALB meneruskan permintaan ke target yang dipilih, mungkin setelah memodifikasi header atau URL untuk optimasi tertentu.
- Pengiriman Respon: Target memproses permintaan dan mengirimkan respon kembali ke ALB, yang kemudian meneruskan respon tersebut ke klien.
Kelebihan Application Load Balancer
- Routing Berbasis Konten: ALB dapat mendistribusikan permintaan berdasarkan konten spesifik dalam permintaan, seperti path URL, header, dan query string. Ini memungkinkan routing yang lebih canggih dan fleksibel.
- Skalabilitas dan Fleksibilitas: ALB secara otomatis menyesuaikan kapasitas berdasarkan lalu lintas masuk, memastikan bahwa permintaan selalu ditangani secara efisien.
- Dukungan untuk Aplikasi Modern: ALB mendukung container-based applications dan microservices, dengan fitur seperti host-based dan path-based routing.
- SSL/TLS Termination: ALB dapat menangani terminasi SSL/TLS, mengurangi beban enkripsi/dekripsi pada server backend.
- Pemeriksaan Kesehatan (Health Checks): ALB secara teratur memeriksa kesehatan target, memastikan permintaan hanya diteruskan ke target yang sehat.
- Integrasi dengan Layanan Cloud: ALB terintegrasi erat dengan berbagai layanan cloud seperti AWS Auto Scaling, AWS ECS, dan AWS Lambda, mendukung arsitektur aplikasi yang dinamis dan scalable.
Kekurangan Application Load Balancer
- Kompleksitas Konfigurasi: ALB memiliki banyak fitur canggih yang memerlukan konfigurasi dan pemeliharaan yang lebih kompleks dibandingkan load balancer sederhana.
- Biaya: ALB biasanya lebih mahal dibandingkan dengan load balancer layer 4, terutama jika digunakan pada skala besar, karena fitur-fitur canggih dan dukungan layer 7.
- Latensi Tambahan: Karena melakukan inspeksi mendalam terhadap data aplikasi, ALB dapat menambah sedikit latensi pada waktu respon, meskipun ini biasanya minimal dan diimbangi oleh peningkatan kinerja lainnya.
- Keterbatasan Protokol: ALB terutama dirancang untuk protokol HTTP dan HTTPS, sehingga kurang ideal untuk aplikasi yang menggunakan protokol lain, seperti TCP atau UDP, yang lebih baik didukung oleh Network Load Balancer (NLB).
4. Global Load Balancer
Global Load Balancer (GLB) adalah jenis load balancer yang mendistribusikan lalu lintas aplikasi di berbagai wilayah geografis dan pusat data. GLB beroperasi pada tingkat yang lebih tinggi dibandingkan dengan load balancer tradisional, dengan tujuan menyediakan ketersediaan tinggi, kinerja optimal, dan pengelolaan beban lintas wilayah. Berikut adalah penjelasan mengenai cara kerja, kelebihan, dan kekurangan Global Load Balancer.
Cara Kerja Global Load Balancer
- Penerimaan Permintaan: GLB menerima permintaan dari klien yang tersebar di berbagai lokasi geografis.
- DNS Routing: GLB menggunakan Domain Name System (DNS) untuk mengarahkan permintaan ke pusat data atau wilayah terdekat atau paling sesuai berdasarkan beberapa faktor seperti geolokasi, latensi, ketersediaan server, dan kebijakan routing.
- Evaluasi Kondisi: GLB mengevaluasi kondisi berbagai pusat data atau wilayah, termasuk status kesehatan server, beban saat ini, dan latensi jaringan.
- Distribusi Permintaan: Berdasarkan evaluasi ini, GLB mendistribusikan permintaan ke server atau pusat data yang paling optimal untuk menangani permintaan tersebut.
- Failover: Jika terjadi kegagalan pada satu pusat data atau wilayah, GLB secara otomatis mengalihkan lalu lintas ke pusat data lain yang masih berfungsi, memastikan ketersediaan layanan tetap tinggi.
Kelebihan Global Load Balancer
- Ketersediaan Tinggi: GLB memastikan aplikasi tetap tersedia meskipun ada kegagalan di satu atau beberapa pusat data, dengan mengalihkan lalu lintas ke lokasi lain yang masih berfungsi.
- Kinerja Optimal: Dengan mengarahkan permintaan ke pusat data terdekat atau yang memiliki latensi terendah, GLB membantu mengurangi waktu respon dan meningkatkan kinerja aplikasi.
- Skalabilitas Global: GLB memungkinkan aplikasi untuk melayani pengguna di seluruh dunia dengan mendistribusikan beban kerja secara global, sehingga mendukung pertumbuhan pengguna dan beban lalu lintas yang tinggi.
- Pengelolaan Lintas Wilayah: GLB menyediakan kemampuan untuk mengelola beban lintas berbagai wilayah geografis, memungkinkan penggunaan sumber daya yang lebih efisien dan responsif terhadap kondisi perubahan beban kerja.
- Failover dan Pemulihan Bencana: GLB menyediakan mekanisme failover otomatis, yang sangat penting untuk pemulihan bencana dan memastikan kontinuitas bisnis.
Kekurangan Global Load Balancer
- Kompleksitas: Konfigurasi dan pengelolaan GLB lebih kompleks dibandingkan dengan load balancer lokal, karena melibatkan pengaturan di berbagai wilayah dan pusat data.
- Biaya: Menggunakan GLB dapat lebih mahal, terutama jika melibatkan banyak wilayah dan pusat data. Biaya juga mencakup penggunaan bandwidth internasional dan layanan DNS tingkat lanjut.
- Ketergantungan pada DNS: GLB sering menggunakan DNS untuk routing, yang berarti perubahan routing dapat memerlukan waktu untuk propagasi DNS, meskipun beberapa GLB modern menggunakan teknik yang lebih cepat.
- Latensi DNS: Waktu propagasi DNS dapat menambah sedikit latensi pada permintaan pertama kali, meskipun biasanya ini minimal dibandingkan dengan manfaat yang diperoleh.
- Keterbatasan Protokol: GLB biasanya lebih efektif untuk aplikasi web dan protokol HTTP/HTTPS, dan mungkin kurang optimal untuk aplikasi yang menggunakan protokol lain.
Comments
Post a Comment