Traffic Distributor Overview
Traffic Distributor Overview #
Salah satu masalah paling umum yang bisa Kamu hadapi seiring berkembangnya proyek adalah kebutuhan untuk mengelola beberapa environment. Hal ini mungkin diperlukan untuk menyediakan kapasitas yang cukup (agar bisa melayani semua klien), atau misalnya, untuk menangani versi aplikasi yang berbeda. Dalam situasi seperti ini, Kamu kemungkinan besar akan menghadapi tantangan dalam mendistribusikan lalu lintas secara tepat ke masing-masing salinan proyek, termasuk pengaturan metode routing request, pembagian beban server, dan sebagainya. Menyelesaikan semua masalah tersebut bisa menjadi tantangan bahkan bagi developer berpengalaman.
Nah, untuk mempermudah penyelesaiannya, platform ini menyediakan solusi gratis dan mudah digunakan berupa load balancer yang dikonfigurasi secara otomatis. Solusi ini hadir dalam bentuk add-on Traffic Distributor, yang bisa Kamu instal langsung melalui menu Marketplace platform hanya dengan satu klik, dan akan memberikan routing lalu lintas yang pintar, sesuai dengan kebutuhan Kamu.
Dengan solusi ini, Kamu bisa mengatur pembagian beban kerja secara cerdas antara dua host dan mendapatkan berbagai manfaat seperti:
- High availability & advanced failover
Beban dibagi antara dua salinan aplikasi Kamu yang bisa ditempatkan di hardware berbeda. Ini membantu meningkatkan perlindungan terhadap kegagalan (jika salah satu down, yang lain tetap jalan). - Blue-Green Deployment (zero downtime)
Semua request bisa diarahkan ke satu backend sementara backend lain Kamu update atau maintenance, sehingga tidak mengganggu pengguna. - Ongoing A/B Testing
Kamu bisa membagi lalu lintas ke dua versi aplikasi yang berbeda untuk membandingkan performa dan UX-nya, lalu menentukan mana yang terbaik untuk produksi. - Intuitive UI
Form konfigurasi yang simpel memungkinkan Kamu mengatur semua parameter penting saat membuat atau mengubah Traffic Distributor. Kamu bisa pilih metode routing Round Robin, Sticky Sessions, dan Failover - Health Check otomatis
Kedua backend dicek secara berkala untuk memastikan respons normal (misalnya HTTP status code 200), dengan parameter seperti frekuensi pengecekan dan timeout yang bisa dikonfigurasi. - Fleksibel dan bisa dikembangkan
Selain pengaturan utama lewat UI, Kamu juga bisa menyesuaikan lebih lanjut lewat file konfigurasi NGINX—seperti pengaturan caching, TCP mapping, SNI, dan lain-lain. Tidak ada batasan.
Secara umum, dibandingkan dengan mengoperasikan server tunggal, Traffic Distributor mempercepat pemrosesan permintaan, mengurangi waktu tanggapan pengguna, dan dapat menangani lebih banyak thread secara bersamaan.
Routing Methods #
Dengan solusi Traffic Distributor, Kamu bisa memilih satu dari tiga metode routing sesuai kebutuhan. Setiap metode memiliki karakteristik dan tujuan penggunaannya masing-masing, jadi penting untuk memilih yang paling cocok dengan skenariomu :
1. Round Robin
Ini adalah metode routing yang paling sederhana dan paling sering digunakan. Fungsinya adalah untuk mendistribusikan trafik secara merata ke semua environment kamu. Cara kerjanya: setiap request akan diarahkan secara bergantian (satu per satu) ke backend yang tersedia, berdasarkan prioritas yang sudah ditentukan.
📝 NOTE
Untuk menggunakan opsi Round Robin, Kamu harus memastikan bahwa konten pada semua backend identik, karena data yang diminta oleh pengguna bisa diload dari backend manapun secara bergantian.
Artinya, kalau ada dua salinan aplikasi atau layanan (Backend A dan Backend B), keduanya harus berisi data dan konfigurasi yang sama agar pengguna tidak mengalami perbedaan atau error saat berpindah antar backend.
2. Sticky Sessions
Sticky Sessions adalah metode routing yang membuat setiap pengguna “melekat” pada satu backend tertentu. Artinya, sejak kunjungan pertama, semua permintaan (request) dari pengguna tersebut akan selalu diarahkan ke server (backend) yang sama, sesuai dengan bobot (weight) yang sudah ditentukan, sampai sesi pengguna tersebut berakhir (expired).
Metode ini cocok digunakan jika:
- Aplikasimu menyimpan data sesi pengguna secara lokal di server (misalnya login, keranjang belanja, atau progres pengguna)
- Kamu tidak menggunakan storage atau session management yang bersifat shared (seperti Redis atau database pusat)
- Perlu memastikan konsistensi data selama satu sesi pengguna aktif
Dengan Sticky Sessions, kamu bisa menghindari masalah seperti pengguna logout sendiri, kehilangan isi keranjang, atau data tidak tersimpan karena berpindah server.
3. Failover
Failover adalah metode routing lalu lintas yang memungkinkan Kamu menyiapkan salinan cadangan dari server utama dan menjaga agar tetap dalam kondisi siaga (standby). Artinya:
- Selama server utama berjalan normal, semua permintaan (request) pengguna akan diarahkan ke server utama tersebut.
- Tapi jika terjadi masalah pada server utama (misalnya down atau gagal merespons), sistem akan otomatis mengalihkan semua permintaan ke server cadangan yang sudah disiapkan.
Dengan cara ini, user tetap bisa mengakses aplikasi tanpa gangguan yang terlihat, karena proses alih rute dilakukan secara otomatis dan cepat.
TD Implementation #
Yang perlu kamu lakukan untuk mendapatkan Traffic Distributor hanyalah mengisi formulir dengan beberapa parameter utama, seperti memilih host (environment) yang akan menjadi tujuan pembagian traffic, menentukan jenis routing (Round Robin, Sticky Sessions, atau Failover), menetapkan rasio pembagian trafik jika diperlukan, kemudian mulai proses instalasi dengan satu tombol. Setelah dibuat, Traffic Distributor akan menjadi environment terpisah dengan jumlah node NGINX load balancer yang telah ditentukan sebelumnya dan add-on khusus yang diinstal di atasnya.
Sebelum proses instalasi, Kamu bisa memilih entry point—yaitu jalur masuk permintaan (request) ke aplikasimu. Request bisa diproses melalui Shared Load Balancer (SLB) atau alamat IP public.
💡 TIP
Traffic Distributor bekerja menggunakan protokol standar HTTP dan HTTPS, serta juga mendukung protokol lain yang berbasis sama, termasuk WebSockets.Proses load balancing hanya dilakukan saat tahap HTTP handshake. Setelah itu, koneksi WebSocket yang bersifat persisten akan langsung tersambung ke backend yang sudah dipilih, tanpa berpindah-pindah lagi. Jadi, meskipun koneksinya tetap, pembagian beban tetap efisien dan tidak mengganggu kestabilan koneksi WebSocket.
Dengan cara ini, Kamu bisa mendapatkan alat Traffic Distributor yang sangat fleksibel dan dapat membantumu mencapai berbagai tujuan, mulai dari skenario sederhana hingga kompleks. Beberapa contohnya seperti membagi beban server secara merata (even load distribution), Blue-Green Deployment untuk melakukan update aplikasi tanpa downtime, ongoing A/B Testing, dan advanced failover protection.
Powered by BetterDocs