PeakLab
Retour au glossaire

Envoy

Proxy open-source haute performance conçu pour les architectures cloud-native et microservices, offrant load balancing, observabilité et sécurité.

Mis à jour le 27 janvier 2026

Envoy est un proxy réseau L7 (couche application) et L4 (couche transport) développé initialement par Lyft, devenu un projet CNCF gradué. Il s'impose comme le composant fondamental des architectures de service mesh modernes, offrant des capacités avancées de routage, de résilience et d'observabilité pour les applications distribuées conteneurisées.

Fondements d'Envoy

  • Proxy edge et service mesh conçu pour architectures cloud-native avec support multi-protocole (HTTP/1.1, HTTP/2, gRPC, TCP)
  • Architecture out-of-process déployée en sidecar aux côtés de chaque service applicatif
  • Configuration dynamique via API xDS (Discovery Service) permettant des mises à jour sans redémarrage
  • Écrit en C++ pour des performances optimales avec empreinte mémoire minimale et latence ultra-faible

Avantages stratégiques

  • Observabilité native avec métriques détaillées, tracing distribué et logs structurés pour chaque requête
  • Résilience avancée via circuit breakers, retries intelligents, timeouts et rate limiting granulaires
  • Load balancing sophistiqué avec multiples algorithmes (round-robin, least request, ring hash) et health checking actif
  • Sécurité renforcée grâce au TLS mutuel automatique, validation de certificats et contrôle d'accès basé sur l'identité
  • Extensibilité par filtres WebAssembly (Wasm) permettant une logique métier personnalisée sans recompilation

Exemple de configuration Envoy

envoy.yaml
static_resources:
  listeners:
  - name: listener_0
    address:
      socket_address:
        address: 0.0.0.0
        port_value: 10000
    filter_chains:
    - filters:
      - name: envoy.filters.network.http_connection_manager
        typed_config:
          "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
          stat_prefix: ingress_http
          access_log:
          - name: envoy.access_loggers.stdout
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.access_loggers.stream.v3.StdoutAccessLog
          http_filters:
          - name: envoy.filters.http.router
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
          route_config:
            name: local_route
            virtual_hosts:
            - name: backend
              domains: ["*"]
              routes:
              - match:
                  prefix: "/"
                route:
                  cluster: service_backend
                  timeout: 5s
                  retry_policy:
                    retry_on: 5xx
                    num_retries: 3
  clusters:
  - name: service_backend
    connect_timeout: 0.25s
    type: STRICT_DNS
    lb_policy: ROUND_ROBIN
    load_assignment:
      cluster_name: service_backend
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                address: backend-service
                port_value: 8080
    health_checks:
    - timeout: 1s
      interval: 5s
      unhealthy_threshold: 2
      healthy_threshold: 2
      http_health_check:
        path: "/health"

Mise en œuvre d'Envoy

  1. Définir l'architecture de déploiement : edge proxy, sidecar pour service mesh ou API gateway selon les besoins
  2. Configurer les listeners pour exposer les ports d'écoute et définir les filtres réseau appropriés
  3. Définir les clusters backend avec les politiques de load balancing, health checks et circuit breakers
  4. Implémenter les routes avec règles de matching, transformations et politiques de retry/timeout
  5. Intégrer avec un control plane (Istio, Consul Connect) pour configuration dynamique via xDS APIs
  6. Configurer l'observabilité en connectant Envoy à Prometheus, Jaeger et votre système de logging centralisé
  7. Activer le TLS mutuel pour sécuriser les communications inter-services avec rotation automatique des certificats

Conseil d'expert

Utilisez la fonctionnalité de tap filters d'Envoy pour déboguer le trafic en temps réel sans modifier vos services. Combinez-la avec envoy-admin pour inspecter dynamiquement la configuration active et les statistiques détaillées, réduisant drastiquement le temps de résolution d'incidents en production.

Écosystème et intégrations

  • Istio : utilise Envoy comme data plane pour implémenter les fonctionnalités de service mesh
  • Consul Connect : s'appuie sur Envoy pour la segmentation réseau et l'encryption automatique
  • Ambassador/Emissary-ingress : API gateway Kubernetes basé sur Envoy pour le traffic management edge
  • Gloo Edge : gateway API-first utilisant Envoy avec transformation de requêtes avancée
  • Contour : ingress controller Kubernetes haute performance propulsé par Envoy
  • AWS App Mesh : service mesh managé utilisant Envoy comme proxy de données

Envoy s'est imposé comme le standard de facto pour le proxying dans les architectures cloud-native, offrant une base solide pour construire des systèmes distribués résilients et observables. Sa performance exceptionnelle, sa flexibilité via les API xDS, et son écosystème vibrant en font un choix stratégique pour les organisations adoptant les microservices et le service mesh, réduisant la complexité opérationnelle tout en améliorant la fiabilité globale des applications.

Termes connexes

L'argentestdéjàsurlatable.

En 1 heure, découvrez exactement combien vous perdez et comment le récupérer.

Agence de développement web, automatisation & IA

contact@peaklab.fr
Newsletter

Recevez nos conseils tech et business directement dans votre boîte mail.

Suivez-nous
Crédit d'Impôt Innovation - PeakLab agréé CII