- Maison
- Série de sujets
- Passerelle API
- Passerelle API vs équilibreur de charge
Passerelle API vs équilibreur de charge : quelle est la différence ?
Qu'est-ce qu'une passerelle API ?
UnPasserelle APIest un service déployé devant une API ou un ensemble de microservices, qui transmet les requêtes des clients et les réponses ou les données renvoyées par les API.
Une passerelle API dissocie l'interface client du backend. Cela garantit que les clients peuvent communiquer avec les applications de manière cohérente, même lorsque les implémentations internes changent. Lorsqu'un client fait une demande, la passerelle API la divise en plusieurs demandes, les achemine vers le service approprié, renvoie les réponses au client et garde une trace de tout.
Les passerelles API présentent de nombreux avantages pour les applications de microservices, notamment une sécurité améliorée, de meilleures performances de requête, une surveillance et un contrôle centralisés.
En savoir plus sur les passerelles API dans un monde cloud natif
Comment fonctionne une passerelle API ?
Les API permettent aux applications individuelles de communiquer entre elles et d'échanger des données. Les passerelles API fournissent un point focal et une interface standard pour ces communications. Il reçoit les appels d'API, qui sont des demandes provenant de sources internes et externes, rassemble plusieurs demandes connexes et les regroupe, puis les achemine vers l'API appropriée. Enfin, il reçoit et transmet les réponses aux utilisateurs ou appareils demandeurs.
Les passerelles API sont un élément clé de l'architecture moderne des microservices. Dans une application de microservices, de nombreux services au sein de l'application communiquent entre eux via des API et peuvent également servir des clients et des utilisateurs externes. Dans ce contexte, le rôle de la passerelle API est de fournir un point de communication unique pour un groupe de microservices, avec la possibilité d'appliquer des politiques et de déterminer la disponibilité et le comportement de tous les microservices.
Contenu connexe :Lisez notre guide sur la passerelle API et les microservices.
Comment fonctionne l'équilibrage de charge ?
Les équilibreurs de charge doivent gérer les demandes entrantes des utilisateurs pour des services et des informations. Un équilibreur de charge se situe entre les serveurs traitant les demandes des utilisateurs et l'Internet public.
Une fois qu'un équilibreur de charge reçoit une demande, il trouve un serveur en ligne disponible et achemine la demande vers ce serveur. Il peut ajouter dynamiquement des serveurs en réponse aux pics de trafic et supprimer des serveurs lorsque la demande est faible.
Vous pouvez trouver divers équilibreurs de charge, y compris des appliances physiques, des instances logicielles ou une combinaison des deux.
Équilibrage de charge basé sur le matériel
Dans le passé, les fournisseurs chargeaient des logiciels propriétaires sur du matériel dédié et les proposaient en tant qu'appliances autonomes. Ces appareils étaient généralement vendus par paires pour assurer le basculement en cas de panne. Par conséquent, un réseau en croissance nécessite l'achat d'appareils supplémentaires ou plus gros.
Ces solutions d'équilibrage de charge héritées ne peuvent pas suivre les changements de capacité dynamique et ne répondent pas aux besoins d'automatisation des réseaux modernes. Étant donné que cette technologie ne peut pas suivre l'évolution des exigences, elle peut retarder les déploiements d'applications et entraîner des dépenses excessives et un surprovisionnement.
Équilibrage de charge basé sur logiciel
L'équilibrage de charge logicielle s'exécute sur des serveurs boîte blanche ou des machines virtuelles (VM), généralement dans le cadre d'un contrôleur de livraison d'applications (ADC). Un ADC fournit des fonctionnalités supplémentaires, telles que la mise en cache, la mise en forme du trafic et la compression.
L'équilibrage de charge virtuel est très populaire dans les environnements cloud, offrant un haut niveau de flexibilité. Par exemple, il vous permet de réduire ou d'augmenter automatiquement l'activité pour correspondre à une activité réseau réduite ou à des pics de trafic.
Passerelle API vs équilibreur de charge
Les passerelles API et les équilibreurs de charge gèrent le trafic réseau, mais ils utilisent des méthodes différentes pour prendre en charge les réseaux.
Mise en œuvre
- Équilibreurs de chargesont généralement déployés en tant que périphériques physiques dédiés ou logiciels s'exécutant sur un ensemble de serveurs virtuels.
- Passerelles APIsont généralement mis en œuvre en tant que service : les organisations déploient souvent une passerelle API en tant que conteneur ou instance de machine virtuelle.
Approche de gestion du trafic
- Équilibreurs de charge d'applicationcommander comment le trafic circule. Un équilibreur de charge redirige le trafic sur plusieurs serveurs. Cette capacité aide les grands réseaux à gérer des volumes de trafic élevés et minimise les problèmes de performances associés à l'exécution d'une application sur un serveur.
- Passerelles APIgérer le trafic réseau en traitant les demandes d'API des clients afin de déterminer les services et les applications de destination nécessaires pour gérer les appels d'API. Les clients sont le logiciel effectuant des appels d'API. Les API sont importantes pour intégrer des composants d'application disparates et leur permettre de communiquer. Une passerelle API gère également les protocoles et les traductions entre les composants logiciels.
Capacités
- Équilibreurs de chargeutilisez des algorithmes pour diriger le trafic réseau entrant vers les serveurs appropriés :
- Les algorithmes Round-Robin répartissent le trafic uniformément sur les serveurs.
- Les algorithmes de moindre connexion dirigent le trafic vers le serveur le moins chargé (c'est-à-dire, avec le moins de connexions) - ils garantissent une haute disponibilité lorsque les serveurs d'un environnement donné ont des capacités variables.
- Les algorithmes de hachage IP dirigent le trafic vers les serveurs en fonction de l'origine des requêtes. Ils sont mieux adaptés aux environnements avec des serveurs répartis sur plusieurs régions géographiques. Ceux-ci acheminent le trafic réseau vers le serveur le plus proche afin de minimiser la latence des applications.
- Passerelles APIagir en tant que traducteurs et organisateurs reliant des composants logiciels distincts. Parmi leurs principales capacités figurent :
- Sécurité de l'API, y compris l'authentification et l'autorisation.
- Limitation du débit des API pour éviter les abus ou la surutilisation.
- Surveillance et journalisation de l'API pour faciliter l'observabilité.
- Transformation d'API pour permettre aux services de communiquer entre eux même s'ils utilisent des protocoles ou des piles technologiques différents.
Contenu connexe :Lisez notre guide sur la sécurité de la passerelle API
Cas d'utilisation
- Équilibreurs de chargesont mieux adaptés aux déploiements géographiquement distribués qui privilégient la résilience et la redondance. Un équilibreur de charge peut rediriger le trafic vers d'autres instances sur un autre serveur lorsqu'un serveur tombe en panne. Les entreprises exécutent généralement plusieurs instances d'application en parallèle, parfois sur plusieurs serveurs physiques. Cette approche fournit une redondance pour maintenir une haute disponibilité et garantir que les applications peuvent gérer tout le trafic.
- Passerelles APIsont les mieux adaptés à la conception et au déploiement d'applications basées sur des microservices. Les entreprises créent souvent des applications modernes en tant que services distincts, et non une architecture monolithique. Ces services indépendants utilisent des API pour communiquer, avec une passerelle API garantissant que tous les services fonctionnent et collaborent correctement dans un déploiement unifié.
L'approche d'une organisation pour gérer le trafic réseau n'a pas besoin d'utiliser uniquement des passerelles d'API ou des équilibreurs de charge. Les deux services peuvent fonctionner ensemble, bien qu'ils n'aient pas besoin l'un de l'autre pour fonctionner. Par exemple, la passerelle API se connecte entre les microservices. L'équilibreur de charge redirige plusieurs instances d'un composant de microservice (pour faire évoluer le déploiement).
L'importance d'une passerelle API dans une architecture de microservices
Dans les architectures de microservices, les applications clientes ont généralement besoin des fonctionnalités de plusieurs microservices. Si les clients consomment directement des services, ils doivent traiter de nombreux appels. Les applications deviennent ingérables lorsqu'elles évoluent car elles ont des clients couplés à des terminaux de microservices. Chaque changement impacte les clients.
Une passerelle API fournit un intermédiaire qui simplifie la communication entre les microservices. Sans passerelle API, les applications peuvent rencontrer plusieurs problèmes :
- Couplage client— avec une application cliente couplée à des microservices internes, elle doit connaître la structure de l'application. Chaque mise à jour d'un microservice interne rend plus difficile la maintenance de l'application, introduisant une modification radicale à moins que les applications clientes ne soient également mises à jour.
- Trop de trafic— avec chaque application cliente faisant des appels directs à chaque service, le résultat peut être trop de trafic client-serveur, augmentant la latence.
- Sécurité— sans passerelle API, les organisations doivent exposer tous les microservices au monde extérieur, augmentant ainsi la surface d'attaque. Les passerelles cachent les microservices internes, car les applications clientes n'ont pas à y accéder directement.
- Transversal— les microservices exposés publiquement doivent gérer SSL et l'autorisation. Le niveau intermédiaire (passerelle API) simplifie les microservices en gérant ces problèmes.
L'évolution des passerelles API
Plusieurs facteurs modifient la manière dont les utilisateurs évaluent les passerelles API :
- Dans quelle mesure s'adapte-t-il pour gérer un plus grand volume de trafic d'API ?
- Comment fonctionne-t-il à plus grande échelle?
- Dans quelle mesure fournit-il systématiquement des temps de réponse à faible latence ?
- Fonctionne-t-il nativement dans le cloud public ou tout autreKubernetesenvironnements?
- Tire-t-il parti des dernières innovations en matière de technologies proxy (par ex.Mandataire émissaire) ?
- Tire-t-il parti des dernières innovations open source autour des technologies proxy (par ex.WebAssemblyouGraphQL) ?
À mesure que chacun de ces problèmes a un impact plus important sur la manière dont une passerelle API peut activer vos applications de microservices, plus les entreprises commencent à choisir Solo.ioPasserelle Gloo. Basé sur Envoy Proxy, Gloo Gateway offre une plus grande évolutivité et une plus grande latence que les passerelles API héritées basées sur NGINX, HAProxy ou Java-wrappers sur la technologie proxy.
De plus, Gloo Gateway est à la fois natif du cloud public et natif de Kubernetes, de sorte que l'intégration aux environnements DevOps est transparente. Et Gloo Gateway permet aux utilisateurs d'ajouter facilement de nouvelles innovations telles que Web Assembly ou GraphQL à leur environnement API Gateway pour gérer les besoins des applications de nouvelle génération.
RETOUR AU SOMMET