Réseau : quelle différence entre Load Balancer et passerelle API ?
Ces deux dispositifs routent le trafic vers la destination qu’ils considèrent comme la plus adéquate. Cependant, leur fonctionnement et leur objectif n’ont rien à voir.
Les équilibreurs de charge – ou load balancers – et les passerelles API gèrent tous deux le trafic réseau, mais ces services fonctionnent et gèrent les réseaux différemment. Le premier réoriente le flot des paquets, tandis que le second est plutôt un interprète qui organise des conversations entre des bouts de logiciels.
Les équilibreurs de charge dirigent le trafic
Un équilibreur de charge répartit le trafic réseau entrant vers deux ou plusieurs serveurs. Un réseau d’entreprise transporte de gros volumes de trafic et une application qui s’exécute sur un seul serveur ne dispose parfois pas de la bande passante réseau ou de la puissance de calcul suffisante pour traiter toutes les demandes qu’elle reçoit.
Par conséquent, une entreprise doit exécuter simultanément deux ou plusieurs instances d’une application, souvent sur deux ou plusieurs serveurs physiques. Toutes ces instances ont ainsi la capacité de traiter l’ensemble du trafic. Leur redondance permet d’assurer une haute disponibilité : si un serveur tombe en panne, l’équilibreur de charge redirige le trafic vers les instances restantes sur les autres serveurs.
Les équilibreurs de charge redirigent le trafic réseau entrant vers chaque serveur par le biais d’algorithmes. Il s’agit souvent d’un algorithme Round Robin qui distribue le trafic de manière pratiquement égale : dans une configuration à deux serveurs, cet algorithme attribue 50 % du trafic à chaque serveur.
On trouve aussi l’algorithme dit des moindres connexions (Least Connections) qui dirige le trafic vers le serveur ayant le moins de connexions actives ; celui-ci est plus adapté pour maintenir une qualité de service lorsque les serveurs d’un même environnement ont des capacités différentes.
Troisième possibilité, l’algorithme IP Hash (« par empreinte IP ») dirige le trafic réseau vers les serveurs en fonction de l’origine de ce trafic. Cet algorithme est idéal pour les environnements informatiques dans lesquels les serveurs résident dans des régions géographiques différentes. Le trafic est acheminé vers le serveur physique le plus proche pour que la latence applicative soit la plus faible.
Une entreprise peut déployer un équilibreur de charge sous la forme d’un équipement physique dédié ou d’un logiciel qui s’exécute sur des serveurs virtuels.
Les passerelles API en complément
Une passerelle API gère également le trafic réseau, mais d’une manière différente. Les logiciels d’aujourd’hui s’appuient de plus en plus sur les API pour intégrer les composants épars d’une application et permettre à ces composants de communiquer. Une passerelle API prend les requêtes API d’un client – c’est-à-dire du logiciel qui effectue un appel API – et sélectionne la destination – une application ou un service – la plus à même de traiter ces requêtes. Par ailleurs, les passerelles API ont également une fonction de traduction entre les différents protocoles utilisés par les logiciels.
Les passerelles API sont souvent mises en œuvre avec des applications conçues comme des microservices, lesquelles prennent généralement la forme de containers. De plus en plus, les entreprises envisagent et créent des applications modernes comme une série de services indépendants, plutôt que comme une seule application monolithique. Ces services communiquent via des API et la passerelle API garantit que ces services interagissent correctement.
Les entreprises mettent en œuvre ces passerelles API sous la forme de services et les déploient le plus souvent dans une machine virtuelle.
Elles peuvent utiliser les équilibreurs de charge et les passerelles API ensemble, mais l’un n’a pas besoin de l’autre. Ainsi, une passerelle API connecte des microservices, tandis que les équilibreurs de charge distribuent le trafic entre plusieurs instances d’un même microservice.