Episode ini menelusuri evolusi reverse proxy dari web server tradisional sampai era cloud-native, kisah kelahiran Traefik oleh Containous pada 2015, alasan mengapa Traefik berbeda, serta perbandingan dengan NGINX, HAProxy, Envoy, dan Caddy beserta use case paling umum.

Sebelum menulis konfigurasi pertama, kalian perlu tahu dari mana Traefik berasal dan mengapa dia lahir. Episode 1 membuka dengan pertanyaan besar: kenapa di era microservices dan container, kita butuh proxy baru yang berbeda dari NGINX yang sudah bertahun-tahun terbukti handal?
Jawabannya terletak pada perubahan cara kita men-deploy aplikasi. Dulu kita menambah server secara manual dan menulis konfigurasi proxy dengan tangan. Sekarang container naik-turun setiap detik, nama domain bertambah terus, dan layanan berpindah-pindah alamat IP. Pendekatan statis tidak lagi cukup. Traefik lahir untuk menjawab masalah ini.
Perjalanan ini dimulai dari web server tradisional seperti Apache dan NGINX yang bisa berfungsi sebagai reverse proxy dengan konfigurasi file statis. Kemudian muncul hardware load balancer seperti F5 dan Citrix NetScaler yang kuat tapi mahal dan kaku. Di era virtualisasi muncul software reverse proxy yang lebih fleksibel, dan puncaknya adalah cloud-native proxy yang berinteraksi langsung dengan orchestrator.
web server -> hardware LB -> software proxy -> cloud-native proxyMasalah utama pendekatan lama: konfigurasi ditulis manual dan butuh reload untuk setiap perubahan. Di dunia container yang dinamis, flow-nya menjadi tidak praktis — setiap container baru membutuhkan update konfigurasi manual. Di sinilah Traefik hadir dengan pendekatan yang berbeda total: dia belajar sendiri lewat service discovery.
Traefik diciptakan oleh Emile Vauge dan dirilis pertama kali pada 2015 oleh perusahaan bernama Containous, yang sekarang dikenal sebagai Traefik Labs. Traefik lahir tepat di tengah ledakan Docker dan container orchestration — dia memang dirancang "cloud-native from the start", bukan di-porting dari desain web server lama.
Kata kunci yang membedakan Traefik sejak hari pertama adalah dynamic: dia menonton Docker socket dan Kubernetes API, lalu memperbarui konfigurasi routing secara otomatis tanpa reload dan tanpa downtime. Inilah revolusi yang dia bawa.
Perbedaan mendasar dengan pendekatan lama terlihat dari dua file konfigurasi di bawah. Di sisi kiri pola klasik NGINX yang statis, di sisi kanan pendekatan deklaratif Traefik yang berubah otomatis:
upstream app_backend {
server 10.0.0.11:3000;
server 10.0.0.12:3000;
}
server {
listen 80;
server_name app.example.com;
location / {
proxy_pass http://app_backend;
}
}services:
app:
image: myapp:latest
labels:
- traefik.enable=true
- traefik.http.routers.app.rule=Host(`app.example.com`)
- traefik.http.services.app.loadbalancer.server.port=3000Kalau backend 10.0.0.11 diganti container baru, NGINX membutuhkan edit manual dan reload. Traefik mengetahuinya sendiri dari Docker — itulah inti mengapa Traefik dibutuhkan di era container. Label deklaratif traefik.http.routers.app.rule di atas adalah bahasa baru yang menggantikan blok server NGINX yang panjang.
Traefik adalah pilihan terbaik ketika workload kalian hidup di Docker atau Kubernetes, kalian menginginkan TLS otomatis tanpa pusing mengelola sertifikat, dan routing yang berubah-ubah secara dinamis. Untuk proxy statis sederhana atau tuning TCP skala besar, alternatif lain mungkin lebih pas — pilih sesuai kebutuhan, bukan hype.
Traefik cocok untuk beragam skenario:
docker compose up.Bahkan untuk development saja, kemampuan melihat container baru muncul dan langsung membuat rute membuat Traefik terasa ajaib dibandingkan edit-reload manual.
Inti yang harus dibawa pulang:
Di episode 2 selanjutnya kita akan membedah arsitektur Traefik dan core concepts — entrypoints, routers, middlewares, services, dan providers, bagaimana konfigurasi statis dan dinamis saling bekerja, serta alur lengkap sebuah request dari masuk sampai kembali ke klien. Ini adalah fondasi yang akan dipakai di setiap episode berikutnya.