Proxy side-car (sidecar proxy)
Un proxy side-car (sidecar proxy, en anglais) est un schéma de conception applicatif qui extrait certaines fonctionnalités, telles que les communications entre services, la surveillance et la sécurité, en les isolant de l'architecture principale pour faciliter le suivi et la maintenance de l'application globale.
Tout comme un side-car fixé à une moto, un proxy side-car est attaché à une application parente, afin d'étendre les fonctionnalités de cette dernière ou de lui en ajouter. Les proxys side-car sont généralement utilisés au sein du plan de contrôle (CP, Control Plane) du maillage de services (« service mesh »), de microservices ou de conteneurs.
Un service mesh se compose d'un plan de données (DP, Data Plane) et d'un plan de contrôle. Le DP du service mesh est responsable de la communication des services contenus dans le mesh et peut assurer des fonctionnalités telles que l'équilibrage de charge, le chiffrement et la reprise après défaillance, par l'intermédiaire d'une couche d'infrastructure dédiée. Un proxy side-car est attaché au CP, qui gère et configure chaque side-car en relation avec son service désigné. Tout le trafic réseau provenant d'un service est filtré par le proxy side-car, qui fonctionne en tant que couche d'infrastructure distincte.
Dans un conteneur, le proxy side-car est attaché à chaque conteneur d'application, machine virtuelle (VM) ou pod d'orchestration. Par exemple, si une entreprise développe une application qui utilise plusieurs conteneurs, il est possible d'attacher un side-car à chacun de ces conteneurs pour isoler les processus de sécurité. Il est ainsi plus facile d'accéder aux fonctionnalités de sécurité ou de les modifier, sans toucher au reste de l'application.
En outre, si une entreprise surveille des applications conteneurisées à l'aide de Kubernetes, il est possible de regrouper les conteneurs dans un pod possédant un espace de noms commun, puis d'utiliser un conteneur side-car séparé pour visualiser le fonctionnement de chaque conteneur dans le même pod.
Avec les side-cars, les développeurs peuvent surveiller et gérer leurs applications en un clin d'oeil et de façon organisée, en séparant les fonctionnalités d'un microservice ou d'un conteneur. Le schéma en side-car permet également de réduire la complexité et d'éviter les doublons dans le code, ainsi que d'associer de façon modulaire les différentes entités d'une application.