Principes de base de l'entretien de conception de système : Différence entre la passerelle API et l'équilibreur de charge (2023)

Principes de base de l'entretien de conception de système: Différence entre la passerelle API et l'équilibreur de charge (3)

Souvent, nous rencontrons des composants d'architecture logicielle qui font partie de chaqueconception du systèmeet nous avons l'impression que nous ne les comprenons pas beaucoup.Passerelle APIetÉquilibreur de chargesont quelques exemples qui me viennent à l'esprit.

La plupart des gens n'ont aucune expérience de travail avec un équilibreur de charge ou une passerelle API ; cela explique la raison pour laquelle nous nous sentons mal à l'aise d'en parler, en particulier lors d'un entretien de conception de système.

Dans cet article, laissez-moi vous expliquer les connaissances de base sur ces deux composants et leur utilisation.

Commençons par la définition des termes connexes.

Les microservices sont un modèle de conception d'architecture logicielle dans lequel une grande application est construite comme une suite de composants ou de services modulaires. Chaque microservice est une petite unité de fonctionnalité indépendante qui communique avec d'autres microservices à l'aide d'interfaces bien définies, généralement sur un réseau. Par exemple, lors de la création d'un service comme Instagram, nous pouvons avoir un microservice séparé pour stocker des photos, générer des flux d'actualités ou notifier les utilisateurs.

Une passerelle API est un serveur qui agit comme un point d'entrée unique pour un ensemble de microservices. Il reçoit les demandes des clients, les transmet au microservice approprié, puis renvoie la réponse du serveur au client.

Principes de base de l'entretien de conception de système: Différence entre la passerelle API et l'équilibreur de charge (4)

Un équilibreur de charge est un périphérique réseau qui distribue le trafic réseau entrant sur plusieurs serveurs ou services principaux pour améliorer les performances et la disponibilité du système. L'équilibreur de charge se situe généralement entre le client et le serveur et utilise divers algorithmes pour répartir les demandes entrantes entre les serveurs disponibles de manière à optimiser les performances et à garantir qu'aucun serveur n'est submergé. Cela peut améliorer la fiabilité et la réactivité globales du système, car cela permet une répartition plus uniforme de la charge de travail et permet au système de gérer un volume de demandes plus élevé.

Une passerelle API se concentre sur les requêtes 𝗿𝗼𝘂𝘁𝗶𝗻𝗴 au microservice approprié, tandis qu'un équilibreur de charge se concentre sur les requêtes 𝗱𝗶𝘀𝘁𝗿𝗶𝗯𝘂𝘁𝗶𝗻𝗴 uniformément sur un groupe de serveurs principaux.

Une passerelle API et un équilibreur de charge sont deux types d'infrastructure qui peuvent être utilisés dans un réseau informatique pour gérer les demandes entrantes et améliorer les performances d'un système. Cependant, ils fonctionnent de différentes manières et servent des objectifs différents.

Principes de base de l'entretien de conception de système: Différence entre la passerelle API et l'équilibreur de charge (5)

Passerelle API :Une passerelle API est un type de middleware qui se situe entre un client et un ensemble de microservices. Son objectif principal est d'acheminer les demandes des clients vers le microservice approprié, puis de renvoyer la réponse du microservice au client. Une passerelle API peut également effectuer d'autres tâches telles que l'autorisation, la limitation du débit et la mise en cache.

Équilibreur de charge :Un équilibreur de charge, en revanche, est un type d'infrastructure qui répartit uniformément les demandes entrantes sur un groupe de serveurs principaux afin d'améliorer les performances et la disponibilité d'un système. Les équilibreurs de charge sont généralement utilisés pour gérer les demandes qui sont envoyées à une seule adresse IP bien connue, puis les acheminer vers l'un des nombreux serveurs principaux possibles en fonction de facteurs tels que les performances et la disponibilité du serveur.

Une autre différenceentre les deux se trouve le type de demandes qu'ils traitent généralement. Une passerelle API est généralement utilisée pour gérer les demandes d'API, qui sont des interfaces Web permettant aux applications d'interagir entre elles via Internet. Ces demandes ont généralement une URL spécifique qui identifie l'API à laquelle le client tente d'accéder, et la passerelle API achemine la demande vers le microservice approprié en fonction de cette URL. Un équilibreur de charge, en revanche, est généralement utilisé pour gérer les demandes envoyées à une seule adresse IP bien connue, puis les achemine vers l'un des nombreux serveurs principaux possibles en fonction de facteurs tels que les performances et la disponibilité du serveur.

Les passerelles API sont utilisées à diverses fins dans les architectures de microservices, notamment :

  1. Routage :La passerelle API reçoit les demandes des clients et les achemine vers le microservice approprié. Cela permet aux clients d'accéder aux différents microservices via un point d'entrée unique, ce qui simplifie la conception globale du système.
  2. Limitation de débit :Vous pouvez limiter l'accès client aux microservices avec une passerelle API. Cela peut aider à prévenir les attaques par déni de service et d'autres types de comportements malveillants.
  3. Mise en cache :La passerelle API peut mettre en cache les réponses des microservices, réduisant ainsi le nombre de requêtes devant être transmises aux microservices et améliorant les performances globales du système.
  4. Authentification et autorisation:La passerelle API peut être utilisée pour authentifier les clients et appliquer des politiques de contrôle d'accès pour les microservices. Cela permet de garantir que seuls les clients autorisés peuvent accéder aux microservices et d'empêcher tout accès non autorisé.
  5. L'équilibrage de charge:La passerelle API peut répartir les requêtes entrantes entre plusieurs instances d'un microservice, permettant au système de gérer un plus grand nombre de requêtes et d'améliorer ses performances et son évolutivité globales.
  6. Surveillance:La passerelle API peut collecter des métriques et d'autres données sur les demandes et les réponses, fournissant des informations précieuses sur les performances et le comportement des microservices. Cela peut aider à identifier et à diagnostiquer les problèmes et à améliorer la fiabilité et la résilience globales du système.
  7. Transformation: La passerelle API peut être utilisée pour transformer les données reçues des microservices dans un format plus pratique à utiliser pour les clients. Cela peut inclure des tâches telles que la conversion entre différents formats de données, tels que XML et JSON, ou l'agrégation de données provenant de plusieurs microservices en une seule réponse.
  8. Validation de la requête et de la réponse :La passerelle API peut être utilisée pour valider les requêtes et les réponses des microservices afin de s'assurer qu'elles sont conformes au format et à la structure attendus. Cela peut aider à prévenir les erreurs et à garantir que les microservices fonctionnent correctement.
  9. Disjoncteur:La passerelle API peut être utilisée pour implémenter un modèle de disjoncteur, ce qui peut aider à empêcher qu'un seul microservice défaillant ne fasse tomber l'ensemble du système. Le disjoncteur peut surveiller la santé des microservices et basculer automatiquement vers un service de sauvegarde si nécessaire.
  10. Découverte de services :La passerelle API peut être utilisée pour découvrir les microservices disponibles et leurs emplacements, permettant aux clients d'y accéder sans connaître leurs adresses spécifiques. Cela peut faciliter l'ajout de nouveaux microservices ou apporter des modifications à ceux existants sans impact sur les clients.

Voici quelques-uns des avantages de l'utilisation d'API Gateway :

  1. Performance améliorée:En gérant des tâches telles que le routage et l'équilibrage de charge, la passerelle API peut améliorer les performances globales du système, lui permettant de gérer un plus grand nombre de requêtes et de répondre plus rapidement aux clients.
  2. Conception simplifiée du système :En fournissant un point d'entrée unique pour les clients, la passerelle API simplifie la conception globale du système et facilite l'accès des clients aux différents microservices.
  3. Sécurité renforcée:La passerelle API peut être utilisée pour appliquer des politiques d'authentification et de contrôle d'accès, aidant à empêcher l'accès non autorisé et à améliorer la sécurité du système.
  4. Évolutivité améliorée :La passerelle API peut répartir les requêtes entrantes entre plusieurs instances d'un microservice, permettant au système d'évoluer plus facilement et de gérer un plus grand nombre de requêtes.
  5. Meilleur suivi et visibilité :La passerelle API peut collecter des métriques et d'autres données sur les demandes et les réponses, fournissant des informations précieuses sur les performances et le comportement du système. Cela peut aider à identifier et à diagnostiquer les problèmes et à améliorer la fiabilité et la résilience globales du système.

L'utilisation d'une passerelle API présente également certains inconvénients potentiels, notamment :

  1. Complexité accrue :L'utilisation d'une passerelle API peut ajouter une couche supplémentaire de complexité au système, ce qui peut le rendre plus difficile à gérer et à entretenir.
  2. Surcoût de performances :La passerelle API peut introduire une surcharge de performances, car elle ajoute une couche supplémentaire au chemin requête-réponse que les clients doivent traverser.
  3. Point de défaillance unique:La passerelle API peut devenir un point de défaillance unique si elle n'est pas conçue et mise en œuvre correctement. Cela peut avoir un impact sur la fiabilité et la disponibilité globales du système.

En résumé, une passerelle API fournit une interface entre le client et les microservices, tandis qu'un équilibreur de charge répartit les requêtes entrantes entre plusieurs serveurs ou services pour améliorer les performances et la disponibilité. Bien qu'ils servent à des fins similaires, ils ne sont pas interchangeables et sont souvent utilisés ensemble dans une architecture de microservices. Ils permettent tous deux aux microservices de se concentrer sur leurs tâches individuelles et d'améliorer les performances, l'évolutivité et la fiabilité globales du système.

➡ VérifierFondamentaux de la conception du système Grokkingpour une liste des concepts de conception de système communs.

➡ En savoir plus sur les entretiens de conception de système dans "Grokking l'entretien de conception du systèmeet"Grokking l'entrevue de conception de système avancé.”

➡ Suivez-moi surLinkedinpour obtenir des conseils sur la conception du système et le codage des entretiens.

System Design Interview Survival Guide (2023): Stratégies de préparation et conseils pratiquesThe 2023 system design interview playbook.levelup.gitconnected.com
Devenez un pro de l'interview de codage en 2023 avec ces 20 modèles algorithmiques incontournables !Maîtriser les entretiens de codage : comment les modèles d'entretien de codage grokking peuvent vous aider à vous préparer intelligemment.levelup.gitconnected.com

References

Top Articles
Latest Posts
Article information

Author: Rubie Ullrich

Last Updated: 07/21/2023

Views: 5249

Rating: 4.1 / 5 (52 voted)

Reviews: 91% of readers found this page helpful

Author information

Name: Rubie Ullrich

Birthday: 1998-02-02

Address: 743 Stoltenberg Center, Genovevaville, NJ 59925-3119

Phone: +2202978377583

Job: Administration Engineer

Hobby: Surfing, Sailing, Listening to music, Web surfing, Kitesurfing, Geocaching, Backpacking

Introduction: My name is Rubie Ullrich, I am a enthusiastic, perfect, tender, vivacious, talented, famous, delightful person who loves writing and wants to share my knowledge and understanding with you.