Slides de mon intervention éclair sur les Load Balancers HTTP modernes durant l'événement organisé par pastis.tech en cloture de la journée #trouveuntech n°3
10. 1990’s
● Début des Load Balancers
● Basé sur des règles statiques
● Certificats statiques
● Routage sur adresses MACs
● Healtchchecks possibles
● Config avec un câble série !
11. 2000’s
● Linux Virtual Server
○ basé sur IPVS (donc LB / IP)
○ Puis intégré à Linux
● HAproxy
○ TCP & HTTP
○ Configuration statique
● Apache et Nginx
○ configuration statique
○ Software LB
○ Peut faire du cache
○ L7
12. 2005 - 2010
Apache et Nginx et HAProxy
● Configuration dynamique par Ansible / Chef / Puppet
● Il faut quand même lancer l’outil de provisionning / configuration
● Mieux !
Virtualisation
● VMWare + NSX
13. 2012 … Big Bang !
Docker et les containers
● Du coup … comment faire dans un environnement dynamique pour
gérer une configuration statique ? Pas possible !
● Configuration Dynamique !
● Nginx et Apache / HAproxy :
○ consul-template + consul
○ confd + etcd
● Fabio
○ Configuration dynamique basé sur les healthchecks de consul
○ Certificats dans Consul ou générés à la volée par Vault
○ Le précurseur !
14. 2018 … où en sommes nous
Une nouvelle génération est arrivée
● Traefik
● Envoy
● SoZu
● HAproxy
● Linkerd
15. Celui qui vous plaît le plus ...
● Écoute les événements de l’API Docker ou de l’orchestrateur
● Gère les règles de routages de manière dynamique
● Utilisation des labels Docker à outrance
● Gestion du vhost : dev.example.com ou app.example.com
● Gestion des chemins : example.com/store et exemple.com/blog
● Gestion des poids : example.com/v1 à 90% et exemple.com/v2 à 10%
○ Donc Canary Releases !
● Gestion dynamiques des certificats
○ Letsencrypt / AWS / Gandi / etc ...
○ example.com / alternate: www.example.com
18. APIs Gateways
● Les microservices se basent sur les contrats d’APIs HTTP
○ Trafic Nord-Sud
○ Les LBs sont utilisés comme base pour gérer les APIs
■ Versionning
■ Circuit breaking
■ Authentification
○ ex: kong
19. Services Mesh
● Les LBs sont utilisés comme base dans les solutions de
services mesh
○ Trafic Est-Ouest
○ Règles de composition de services
○ Autorisation des flux
○ Terminaison SSL
○ Observabilité
● ex: envoy → istio / linkerd