English English French French Spanish Spanish German German
Geekflare est soutenu par notre public. Nous pouvons gagner des commissions d'affiliation en achetant des liens sur ce site.
Partager sur:

14 Passerelle API Open Source et gérée pour les applications modernes

api
Scanner de sécurité des applications Web Invicti – la seule solution qui offre une vérification automatique des vulnérabilités avec Proof-Based Scanning™.

API Gateway: Backend pour Frontend

Discutons de ce qu'est API Gateway, pourquoi il est essentiel d'en avoir un et comment il peut mieux gérer les API. Nous explorerons et répertorierons également certaines des meilleures passerelles API open source et gérées disponibles sur le marché.

Qu'est-ce que API Gateway?

Une passerelle API est un concept important dans une architecture de microservices. Il constitue un point d'entrée pour les clients externes (tout ce qui ne fait pas partie du système de microservice). C'est un composant qui sert de point d'entrée pour une application.

En d'autres termes, une passerelle API est un serveur de gestion d'API contenant des informations sur les points de terminaison. Il est également capable d'effectuer l'authentification, la limitation du débit, l'équilibrage de charge, etc.

Pour avoir une meilleure image d'une passerelle API, nous devons savoir pourquoi il est essentiel de disposer d'une passerelle API.

Pourquoi avons-nous besoin d'API Gateway?

Pour comprendre la nécessité d'une passerelle API, discutons d'un cas d'utilisation d'un e-comerce .

Étude de cas

Prenons une étude de cas d'une page complexe (disons une page produit) d'une application de commerce électronique. Si nous regardons la page ci-dessous de la liste des produits Amazon, nous pouvons voir beaucoup d'informations devant être rendues par cette page spécifique.

À des fins d'illustration, listons tous les microservices dont nous pourrions avoir besoin pour rendre la page particulière ci-dessus.

Considérer Rechercher un produit, un inventaire, une expédition, une évaluation et des avis, un moteur de recommandation, des marchands et des services financiers et d'assurance sont les sept (7) microservices différents utilisés pour le rendu de la page ci-dessus.

PS: Au-dessus de sept (7) microservices ne sont qu'une hypothèse pour expliquer le concept de passerelle API. En réalité, Amazon pourrait avoir un nombre différent de microservices.

Le problème

Comme ces microservices ont été déployés séparément sur un serveur différent si un client souhaite accéder à ces services, au moins sept (7) appels doivent être demandés pour une seule page.

Mais est-ce vraiment une bonne approche?

Je ne pense pas que ce soit une approche recommandée car nous devons faire sept appels différents, ce qui aurait certainement un impact sur les performances, la consommation de ressources, le temps de chargement, etc. séparer le Avis et notation microservices dans deux services différents, nous devons mettre à jour le code client. Le client doit passer un appel pour obtenir des avis, et un appel pour obtenir des notes, ce qui n'est vraiment pas la meilleure façon de le gérer.

La solution

Alors, quelle est l'approche recommandée?

C'est une passerelle API.

Dans cette approche, nous avons une couche entre le client et les microservices appelée passerelle API. Il s'agit d'un service frontal pour tous les microservices. Désormais, tout client souhaitant accéder aux microservices, le client doit appeler la passerelle API. Désormais, la passerelle API, à son tour, appelle tous les microservices et obtient la réponse dont nous pourrions avoir besoin. Ce processus est appelé composition API.

En un mot, une passerelle API se situe entre le client et les microservices et agit comme une passerelle pour tous les microservices.

Non seulement cela, mais l'utilisation d'une passerelle API nous profite à bien des égards.

Avantages d'une passerelle API

Les passerelles d'API nous aident à mettre en œuvre les tests A / B, la mise en cache, la gestion des quotas d'accès, la surveillance de l'état des API, la gestion des versions des API Test du singe du chaos, la monétisation et bien plus encore. Parlons de certains des avantages suivants.

Sécurité 🛡️

Chaque fois qu'un appel d'API est effectué, il doit accéder aux services en utilisant des adresses IP publiques. Cela expose des risques.

En activant les passerelles API, ces microservices sont accessibles uniquement à l'aide d'adresses IP privées. Cela se traduit par une manière plus sécurisée de la transaction des données. En outre, l'utilisation d'API Gateway protège également les données des attaques malveillantes et DDoS.

Pour assurer la sécurité, un Certificat TLS est nécessaire, API Gateway les gère tous en conservant toutes nos API derrière une adresse IP ou un domaine statique unique et en aidant à les protéger avec des clés, des jetons et un filtrage IP.

Authentification, autorisation et tolérance aux pannes 🔐

authentification cassée

Il est important de s'assurer de l'authentification et de l'autorisation de l'utilisateur qui se connecte aux applications. La passerelle API facilite les choses en étant un point d'entrée unique et répond facilement à toutes les exigences. Ainsi, il permet uniquement aux utilisateurs autorisés de se connecter et aux utilisateurs authentifiés d'apporter des modifications, de sorte que la tolérance aux pannes est acquise.

Équilibrage de charge et routage 🚏

En cas de demandes multiples et d'augmentation du trafic, API Gateway aide à s'en occuper. Cela se fait en créant des multiplies de services et en les appelant comme Tournoi à la ronde. Il peut gérer et acheminer les demandes des clients en fonction de la segmentation des utilisateurs. Ainsi, différentes qualités ou taux de vitesse du contenu sont fournis pour différents utilisateurs.

l'équilibrage de charge

Prenons un cas d'utilisation où deux microservices sont définis pour renvoyer des images/vidéos de faible qualité et des images/vidéos de haute qualité pour un ordinateur de bureau et un mobile, respectivement.

Dans ce cas, nous pouvons configurer une passerelle API de manière à ce qu'elle agisse comme un routeur et si la demande provient d'un mobile, elle acheminera cette demande vers le service d'images/vidéos de faible qualité, et si la demande arrive depuis le bureau, il peut être acheminé vers un service d'images/vidéos de haute qualité. Ce routage peut être effectué en fonction des en-têtes, des chemins et des paramètres, etc.

Isolation

Si un ou plusieurs microservices ont été ajoutés à l'application ou supprimés, nous ne mettrons pas à jour le code client. Dans ce cas, nous devons effectuer certaines modifications dans la passerelle API elle-même pour effectuer un appel en fonction des microservices mis à jour.

Proxy inversé et mise en cache

Servir un fichier statique (HTML, JS, CSS, polices) par un microservice n'est pas la meilleure utilisation, dans ce cas, nous pouvons déplacer ces fichiers vers la passerelle API.

Une passerelle API peut conserver tous les contenus statiques et servir directement le client. De même, considérez un service qui évalue les produits tendance, et ces tendances sont calculées toutes les heures ou tous les jours. Ainsi, une fois la tendance calculée pour le reste du temps, le service renverra la même réponse à plusieurs reprises. Dans ce cas, une passerelle API a une fonctionnalité appelée cache de réponse, où nous pouvons mentionner une URL et un temps seuil pour lequel il a besoin de mettre en cache les réponses.

Adaptateur de protocole

Si nous voulons profiter d'un protocole tel que web socket ou d'une version plus récente de HTTP, c'est-à-dire, HTTP / 2, et même si nos services backend ne sont pas prêts ou compatibles avec HTTP / 2 ou Web socket, une passerelle API peut prendre la responsabilité de convertir un protocole plus récent en un protocole plus ancien. Il peut agir comme un adaptateur de protocole.

Explorons la passerelle API.

Prénom, solutions open-source ❤️ et auto-hébergées.

Kong Gateway

Passerelle de Kong est la passerelle API native cloud open-source la plus populaire construite sur un proxy léger. Il est écrit en Lua courir avec l'aide de Nginx. C'est un moteur de modèle qui aide à accélérer le temps de l'événement. Il garantit des performances de latence et une évolutivité inégalées pour toutes nos applications de microservices, quel que soit l'endroit où elles s'exécutent.

Des entreprises comme Nasdaq, Honeywell, Cisco, FAB, Expedia, Samsung, Siemens, et Yahoo Japon utilisent largement la passerelle API Kong.

Certaines des fonctionnalités offertes par Kong sont:

  • Authentification
  • Contrôle de la circulation
  • Analytique
  • Transformations
  • Journal
  • Sans serveur
  • Extensible à l'aide de l'architecture Plugin

Kong est devenu très bon Documentation et l'intégration.

Vous pouvez exécuter Kong sur votre choix plateforme cloud.

Apache APISIX

Apache APISIX est initialement né sur la technologie chinoise ZhiLiu et, plus tard, il est entré dans l'incubateur apache et est devenu open-source. Le vice-président du projet, Ming Wen, indique que cette passerelle API résout divers défis posés par les microservices et les cloud natifs.

Apache ApiSix est utilisé par des entreprises comme 360, HelloTalk, NetEase, TravelSky, Et beaucoup plus.

Apache APISIX est basé sur Nginx et etcd, et il dispose d'un routage dynamique et d'un chargement à chaud de plug-in, ce qui est particulièrement adapté à la gestion des API sous le système de microservices.

Tyk

Tyk est une passerelle API open source prête pour l'entreprise. Vous avez la possibilité d'opter pour l'auto-hébergement ou la gestion.

Voici quelques-unes des fonctionnalités prêtes à l'emploi offertes par TYK.

  • Authentification
  • Quotas et limitation des taux
  • Contrôle de version
  • Notifications et événements
  • Maquette des API
  • Surveillance et analyses détaillées
  • Engagé pour la compatibilité descendante
  • GraphQL prêt à l'emploi

TYK est également disponible sur le Marché AWS. Un bon choix si votre pile d'applications est sur AWS.

Ocelot

ocelot est une passerelle API .NET.

Ce projet vise à utiliser .NET, exécutant des microservices ou une architecture orientée services qui ont besoin d'un point d'entrée unifié dans leur système. Cependant, il fonctionnera avec tout ce qui parle HTTP et fonctionnera sur n'importe quelle plate-forme prise en charge par ASP.NET Core.

Ocelot agit comme un middleware dans un ordre spécifique. Il manipule l'objet HttpRequest dans un état spécifié par sa configuration jusqu'à ce qu'il atteigne un middleware de générateur de requêtes. Il crée un objet HttpRequestMessage, qui est utilisé pour demander un service en aval. L'intergiciel qui fait la demande est la dernière chose du pipeline Ocelot. Il n'appelle pas le prochain middleware. Un élément middleware mappe le HttpResponseMessage sur l'objet HttpResponse et est renvoyé au client.

Ocelot propose des fonctionnalités standard telles que le routage, l'authentification, la limitation de débit, la mise en cache, l'équilibrage de charge, etc. Il ne prend pas en charge l'encodage fragmenté, le transfert d'un en-tête d'hôte et Swagger.

Goku

Passerelle API Goku est un projet parapluie d'EOLINK Inc. Il s'agit d'une passerelle de microservices basée sur Golang qui permet un routage dynamique haute performance, une orchestration de services, une gestion mutualisée, un contrôle d'accès API, etc.

Goku fournit une interface graphique et un système de plug-ins pour faciliter la configuration et se développer plus facilement. Outre les fonctionnalités standard, Goku propose le clustering, les mises à jour à chaud, les alertes, la journalisation, etc.

Express Gateway

Passerelle express est construit sur Express.js. Express Gateway est un ensemble de composants qui se construisent de manière déclarative autour d'Express pour répondre au cas d'utilisation d'API Gateway. La puissance d'Express Gateway est exploitée par le riche écosystème autour du middleware Express.

express

Des entreprises comme Joyent, la Fondation Linux, VIRICITI, Switch Media, Coozy, et musement utilisent largement la passerelle Express.

Il est simple, rapide et offre toutes les fonctionnalités de base.

Gloo

gloo est une passerelle API complète de nouvelle génération et un contrôleur d'entrée pour les environnements cloud natifs. Il repose sur Envoy Proxy pour connecter, sécuriser et contrôler le trafic entre vos services d'application.

Gloo prend en charge la connexion à un large éventail de charges de travail pour sécuriser et gérer cela, et il est exceptionnel dans son routage de niveau fonctionnel. Il est disponible en open-source et en entreprise. La version entreprise offre ce qui suit.

  • Portail des développeurs
  • WAF
  • Prévention de la perte de données
  • Plus de moyen de s'authentifier
  • Limitation de débit avancée et gestion multi-cluster

KrakenD

Kraken D est une passerelle API open source ultra-performante. Sa fonctionnalité principale est de créer une API qui agit comme un agrégateur de nombreux microservices en points de terminaison uniques, effectuant automatiquement le gros du travail pour vous: agréger, transformer, filtrer, décoder, accélérer, authentifier, etc.

Il offre un moyen déclaratif de créer les points de terminaison. Il est bien structuré et en couches et ouvert à l'extension de ses fonctionnalités à l'aide d'un middleware plug-and-play développé par la communauté ou en interne.

KrakenD prétend être plus rapide que Kong et Tyk. Vérifiez analyse comparative des résultats.

Fusio

Fusio est un système de gestion d'API car il aide à développer des points de terminaison d'API réels (c'est-à-dire, demander et transformer des données à partir d'une base de données). Il n'est pas limité aux requêtes proxy vers une autre API. Il fournit un backend simple et intuitif pour contrôler et gérer votre API.

YouTube vidéo

Certaines des fonctionnalités offertes par Fusio sont:

  • Monétisation
  • Support d'abonnement
  • Générer la spécification de schéma OAI, RAML
  • Documentation

et d'autres fonctionnalités de passerelle API standard.

WSO2

WSO2 est une solution complète de gestion des API du cycle de vie qui peut être exécutée n'importe où. Il peut être déployé sur site, dans le cloud ou de manière hybride où ses composants peuvent être distribués et déployés sur plusieurs infrastructures cloud et sur site.

YouTube vidéo

Il comprend une passerelle API cloud native et fournit un opérateur Kubernetes pour convertir facilement les microservices bruts en API gérées. Le gestionnaire d'API s'intègre à mailles de service et fournit un plan de gestion et un plan de contrôle à part entière pour la gestion, la surveillance et la monétisation des API et des produits API.

Il prend en charge la publication d'API, la gestion du cycle de vie, le développement d'applications, le contrôle d'accès, la limitation de débit et l'analyse dans un système parfaitement intégré.

Suivant, explorons les plateformes commerciales.

Apigee

Apigée est une plateforme de gestion d'API cross-cloud de Google Cloud.

apigée

Il vient dans les saveurs suivantes:

  • Apigée: une solution SaaS hébergée où vous payez ce que vous utilisez. Vous vous concentrez sur la création d'entreprise et sur la gestion de l'environnement Apigee vers GCP.
  • Hybride Apigee: vous permettent de gérer les API sur site, sur Google Cloud Platform (GCP) ou un mélange des deux.

Apigee propose une gestion des API de bout en bout, qui s'accompagne d'une monétisation et d'une surveillance intégrée.

Cloud Endpoints

Un autre par Google Cloud.

YouTube vidéo

Endpoints est une version allégée d'Apigee par Google Cloud. Il convient mieux aux développeurs de développer, déployer et gérer des API sur n'importe quel back-end Google Cloud. Il fournit des outils et des bibliothèques à ses clients depuis l'application App Engine. Il aide à créer et à configurer à l'aide de Google Codelab. Codelab aide à exécuter un exemple d'API à l'aide d'App Engine dans Java 8 et Maven 3.6.0.

Google Cloud Endpoints s'intègre étroitement à d'autres produits tels que Trace et Logging pour la surveillance, Auth0 et Firebase pour l'authentification, GKE et App Engine pour un déploiement automatisé, etc.

Amazon API Gateway

AWS peut offrir tout ce dont vous avez besoin pour exécuter vos applications.

Il en va de même pour l'API.

Passerelle d'API Amazon est un service entièrement géré conçu pour que les développeurs puissent former -> publier -> maintenir et sécuriser facilement des API à n'importe quelle échelle. Il prend en charge les API RESTful et WebSocket et nous permet d'activer une communication bidirectionnelle en temps réel.

Vous trouverez ci-dessous la représentation graphique d'Amazon, qui illustre le fonctionnement de la passerelle API Amazon.

Si vos microservices ou API sont déjà hébergés sur AWS, il est judicieux de s'intégrer à Amazon API Gateway. Ils offrent 1 million d'appels API dans le cadre du niveau GRATUIT, ce qui vous permet de voir comment cela fonctionne.

Azure

Pourquoi laisser Azure derrière?

Microsoft Azure offre une gestion des API de bout en bout dans le cloud, sur site ou hybride. Vous pouvez gérer la gestion des API par programme via l'API REST et le SDK.

Bonne nouvelle si vous utilisez SOAP. Vous pouvez importer le langage de description des services Web (WSDL) de leur service SOAP, et Azure créera un frontal SOAP. Ils offrent toutes les fonctionnalités standard, y compris la monétisation. Allez-y et essayez de découvrir la plate-forme.

Conclusion

Une fois que votre API est prête, n'oubliez pas de moniteur et sécurisé leur. Si vous êtes encore en développement, consultez ces outils pour accélérer les tests et le développement de l'API.

Ce qui précède devrait vous donner une idée des solutions API Gateway et de gestion disponibles. Si votre budget est serré, vous pouvez essayer l'open source. Il vaut mieux en installer quelques-uns sur votre machine virtuelle cloud pour voir ce qui fonctionne pour vous.

Bonne chance !

Merci à nos commanditaires
Plus de bonnes lectures sur le développement
Alimentez votre entreprise
Certains des outils et services pour aider votre entreprise à se développer.
  • Invicti utilise Proof-Based Scanning™ pour vérifier automatiquement les vulnérabilités identifiées et générer des résultats exploitables en quelques heures seulement.
    Essayez Invicti
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, moteur de recherche et tout ce dont vous avez besoin pour collecter des données Web.
    Essayez Brightdata
  • Semrush est une solution de marketing numérique tout-en-un avec plus de 50 outils de référencement, de médias sociaux et de marketing de contenu.
    Essayez Semrush
  • Intruder est un scanner de vulnérabilités en ligne qui détecte les failles de cybersécurité de votre infrastructure, afin d'éviter des violations de données coûteuses.
    Essayez Intruder