Ceci est une ancienne révision du document !
Historiquement Apache et Nginx on offert le service de reverse proxy pour des applications monolithiques (applications lourdes, déployées une bonne fois pour toute et difficiles à migrer).
Avec l'arrivée de docker, les applications ont été réorganisées en services interdépendants/communicants. Pour chaque nouvelle application, on passe généralement par les étapes suivantes:
Puis, lorsque le service atteint sa fin de vie:
Trafik est un reverse-proxy dynamique qui permet d'alléger cette boucle d'étapes consécutives. Il simplifie le déploiement de micro-services. Traefik s’intègre à l' infrastructure (Docker, Swarm mode, Kubernetes, Marathon, Consul, Etcd, Rancher, Amazon ECS,etc) et s'auto-configure en grande partie dynamiquement. Faire le lien entre Traefik et l’orchestrateur devrait être la seule étape de configuration à réaliser.
Les principales caractéristiques et fonctionnalités de Traefic:
prérequis docker-compose: permet de gérer plusieurs conteneurs via un fichier de configuration mieux que d'utiliser seulement des commandes.
Exemple de configuration extraite d'un fichier docker-compose déclarant le service traefik
traefik: image: traefik:v2.0 command: --api.insecure --providers.docker volumes: - /var/run/docker.sock:/var/run/docker.sock ports: - "80:80" - "443:443" - 8080:8080"
Dans la commande, l'option --api.insecure permet de démarrer la webUI exposée ensuite sur le port 8080.
traefik s'appuie sur les labels pour identifier les services et router les flux entrants vers les bons services.
labels: - traefik.http.routers.client.rule=Host(`fqdn1.com`, `fqdn2.com`) - traefik.http.services.client.loadbalancer.port=3000