Dans cet article, nous vous présenterons Gravitee API Management, la solution Apache 2.0 de la société Gravitee.io, qui prend en charge la gestion des API au niveau de l’entreprise. Nous présenterons brièvement l’univers de la gestion des API et expliquerons comment la solution Gravitee s’adapte aux différents besoins de cette couche d’interopérabilité.
Voici un petit sommaire de l’article:
|
1. API vs Gestion des API vs Passerelle API vs Gestionnaire d’API
Une API (interface de programmation d’applications) est un ensemble de définitions et de protocoles (également appelé « contrat ») utilisé pour définir le mécanisme d’interopérabilité d’une application donnée. Il s’agit d’un élément clé pour l’intégration de plusieurs applications dans un cadre de gouvernance. Pour cette définition, on utilise généralement la spécification OpenAPI, en se servant des outils fournis par Swagger pour sa représentation graphique.
Illustration 1. Couches d’architecture
La couche de gestion des API, incluse dans le groupe d’interopérabilité, nous fournit les fonctionnalités qui nous permettent de prendre en charge l’ensemble du cycle de vie d’une API, facilitant ainsi sa gestion et sa gouvernance.
Bien qu’elle soit capable de fonctionner de manière autonome, la passerelle API est généralement un composant de la couche de gestion des API. La passerelle API est chargée de l’exécution de l’API, agissant comme un proxy entre les consommateurs et les services exposés dans la définition de l’API.
Enfin, le concept de gestionnaire d’API fait référence à un produit chargé de fournir des fonctionnalités de gestion d’API spécifiques à une architecture spécifique. Dans cet article, nous nous concentrerons sur le produit Gravitee API Management.
API | spécification d’une interface |
Gestion des API | gestion et gouvernance d’une API |
Gestionnaire d’API | produit chargé de fournir des capacités de gestion des API à une architecture |
Passerelle API | exécution finale de l’API |
2. Gestion des API et approche « API-First »
Illustration 2. Développement « API-First »
2.1 Principales fonctionnalités de la gestion des API
Selon le gestionnaire d’API (produit) choisi, la couche de gestion des API peut offrir les fonctionnalités suivantes :
2.1.1 SÉCURITÉ DES API
Dans les capacités de sécurité de la couche de gestion des API, nous pouvons trouver :
- Authentification et autorisation des différentes API et ressources exposées, à l’aide de procédures telles que API-KEY, JWT et/ou OAuth2, entre autres.
- Garantir une utilisation responsable des API en fonction des différents types de consommateurs, en appliquant des politiques d’accès différentes ou en limitant le nombre de demandes qu’un consommateur peut adresser au système dans différents créneaux horaires.
2.1.2 GOUVERNANCE DES API
Parmi les capacités de gouvernance au sein de la couche de gestion des API, nous pouvons trouver :
- Catalogue des différentes API disponibles dans les différentes passerelles, accès à leur documentation et à leurs spécifications.
- Gestion du cycle de vie des API et déploiement automatisé à l’aide d’outils d’intégration continue (CI) et de déploiement continu (CD).
- Accès à la documentation et aux spécifications d’une API, tant du point de vue du propriétaire de l’API (éditeur) que du point de vue du consommateur de l’API (développeurs externes). Cela facilite l’adoption des connaissances par les consommateurs, accélérant ainsi l’adoption des API par les applications qui les consomment.
2.1.3 ANALYSE DES API
Parmi les capacités d’analyse de la couche de gestion des API, nous pouvons trouver :
- Tableaux de bord relatifs à l’utilisation des différentes API déployées.
- Traçabilité des demandes entrantes et sortantes passant par les différentes passerelles, ce qui aide les administrateurs à déboguer le trafic géré par la couche de gestion des API.
- Alertes en cas de certaines situations qui se produisent dans la couche de gestion des API, permettant une maintenance proactive des API déployées.
2.1.4 MONÉTISATION DES API
Parmi les capacités de monétisation au sein de la couche de gestion des API, nous pouvons trouver :
- Permettre aux entreprises de mettre en œuvre une stratégie de monétisation pour leurs services en les exposant par le biais de différentes API de gouvernance, permettant la définition de différents plans d’accès avec leurs conditions monétaires correspondantes.
3. Gravitee API Management
3.1 Qu’est-ce que Gravitee API Management ?
Gravitee API Management est une solution Open Source complète pour la couche de gestion des API sous licence Apache 2.0, avec la possibilité d’avoir un support optionnel pour entreprises de la part du vendeur (Gravitee.io).
3.2 Composants de Gravitee API Management
Gravitee API Management se compose de quatre éléments principaux:
Illustration 3. Architecture globale par Gravitee
- Passerelle APIM, chargée de l’exécution de l’API. Elle est responsable à la fois de la conformité aux politiques de sécurité et de la gestion de la transformation des demandes entrantes et sortantes via la passerelle (proxy intelligent).
- L’API APIM est chargée de fournir une interface de communication centrale via une API RESTful pour toutes les tâches administratives requises par le produit. Elle est utilisée par la console de gestion et le portail utilisateur.
- Console APIM, responsable de l’administration des produits et de la gestion du cycle de vie des API déployées dans les passerelles correspondantes. L’interface utilisateur pour les rôles d’administration et d’éditeur d’API. Le portail APIM fournit aux développeurs d’applications qui utilisent des API une interface d’exploitation à partir de laquelle ils peuvent consulter la documentation relative aux API, s’abonner et effectuer des tests.
3.2.1 Gravitee API Management Sécurité
Du point de vue de la sécurité, Gravitee API Management offre les fonctionnalités suivantes:
Illustration 4. Gestion de l’accès à Gravitee
- Politiques de validation des demandes : un ensemble de règles qui vous permettent d’appliquer des validations à vos demandes, à la fois dans les en-têtes, dans le corps de la demande et dans les paramètres d’entrée.
- Transformation des requêtes : ensemble de règles permettant de modifier les requêtes en ajoutant ou en supprimant des composants multiples tels que des en-têtes ou des parties du corps de la requête.
- Validation JSON : ensemble de règles permettant de valider les schémas JSON qui font partie du corps d’une requête.
- Filtrage des adresses IP : un ensemble de règles permettant d’assigner, au moyen d’une liste noire, les adresses IP autorisées pour l’utilisation de certaines API.
- Quotas : ensemble de règles permettant de définir différents plans de consommation, limitant le nombre d’appels pouvant être effectués au cours d’une période donnée.
- Limitation des demandes : ensemble de règles permettant de restreindre le nombre de demandes envoyées à nos services à partir de la couche de gestion des API.
- Clé API : ensemble de règles qui nous permettent de forcer la vérification d’une clé API lors du traitement des demandes, en autorisant l’accès à nos API uniquement aux consommateurs qui s’y sont abonnés à l’aide d’une clé API correcte.
- OAuth2 : un ensemble de règles qui vous permettent de forcer la vérification d’un token OAuth2 pendant le traitement des demandes, permettant l’accès à vos API uniquement aux consommateurs abonnés avec un bon token. Cela nécessite un propriétaire de ressources en charge de la génération et de la validation des tokens d’accès (Keycloak, Gravitee Access Management, etc.).
- Validation du JSON Web Token (JWT) : un ensemble de règles qui vous permettent de valider un token JWT avant d’envoyer la demande à nos services. Tout comme avec OAuth2, un propriétaire de ressource est nécessaire pour valider ces JWT.
3.2.2 Gravitee API Management Gouvernance
- API Designer (Enterprise uniquement) : un outil qui vous permet de définir votre API en temps réel, à partir d’un paradigme « API-First », permettant la validation et la documentation automatiques de votre API.
Illustration 5. Concepteur API
- Catalogue d’API (perspective du propriétaire d’API) : du point de vue du « propriétaire d’API », la console d’administration est disponible et permet de répertorier et de gérer les multiples API déployées dans Gravitee API Management.
Illustration 6. Catalogue d’API (point de vue du propriétaire de l’API)
Catalogue d’API (perspective du consommateur de l’API) : du point de vue du « consommateur de l’API », vous fournissez un portail permettant d’accéder à la liste des API autorisées dans votre profil. À partir de ce portail, il est possible de consulter toute la documentation relative à l’API et de s’y abonner.
Illustration 7. Catalogue d’API (perspective du consommateur de l’API)
- Documentation API : accès à toute la documentation de vos API à partir d’un portail commun, facilitant leur mise en œuvre par de multiples consommateurs.
Illustration 8. Documentation API
- Importation d’une API : Gravitee API Management vous permet d’importer une API dans la plateforme à partir d’une spécification OpenAPI ou directement à partir d’une définition WSDL (SOAP).
Illustration 9. Importation d’une API
- Cycle de vie de l’API : Gravitee API Management vous permet de gérer le cycle de vie de vos API, depuis leur définition et leur création jusqu’à leur publication et leur suppression (obsolète).
Illustration 10. Zone de danger
- Catégorisation : Gravitee API Management vous permet de catégoriser les différentes API déployées sur votre plateforme, ce qui permet aux consommateurs de les découvrir et de mieux les visualiser.
Illustration 11. Catégorisation
3.2.3 Gravitee API Management : analyse
Du point de vue de l’analyse, Gravitee API Management offre les fonctionnalités suivantes :
- Mesures: dans la console d’administration, Gravitee API Management dispose d’un tableau de bord analytique en temps réel qui permet d’accéder aux différentes mesures d’utilisation de vos API, d’un point de vue global ou pour une API particulière. Elle offre également la possibilité de créer des tableaux de bord personnalisés (« User dashboards »). Toutes ces métriques sont maintenues et indexées dans Elasticsearch et peuvent être consultées par les administrateurs à l’aide d’outils spécifiques tels que Kibana.
Illustration 12. Métriques
- Cockpit (Entreprise uniquement) : pour les environnements distribués, Gravitee API Management fournit un outil de gestion du cycle de vie de vos API à travers les différents environnements du consommateur, offrant une vue globale de chacune de vos API et de leur distribution à travers les différentes plateformes déployées.
Illustration 13. Cockpit
- Gestion des logs : Gravitee API Management vous permet de tracer les requêtes qui passent par les différentes passerelles, en étant capable de conserver les en-têtes des requêtes et les réponses des services eux-mêmes, ce qui accélère le processus de support et de débogage de vos API.
Illustration 14. Gestion des logs
- Traçabilité: Gravitee API Management vous permet de configurer et d’envoyer les traces conformément à la spécification OpenTracing OpenTracing, ce qui vous permet de tracer entièrement chaque demande, en reliant les logs de la couche de gestion des API aux logs des couches d’équilibrage et d’intégration (Load Balancer > API Management > Integration).
Illustration 15. Passerelle de gestion des API
3.2.4 Gravitee API Management: monétisation:
Du point de vue de la monétisation, Gravitee API Management offre les fonctionnalités suivantes :
- Plans : grâce à la segmentation des plans d’accès, Gravitee API Management permet d’exposer les différentes capacités de vos API en fonction des différents consommateurs, en fournissant une traçabilité complète de la consommation en fonction des différents segments.
Illustration 16. Plans
- Documentation : cela facilite la documentation des différents plans mis à la disposition des consommateurs, en définissant leurs caractéristiques ainsi que les coûts qui y sont associés.
Illustration 17. Documentation
- Mesures de facturation : cela vous permet d’attribuer une politique de facturation à une API spécifique, ce qui facilite l’analyse ultérieure et l’intégration avec les plateformes de facturation.
Illustration 18. Mesures de facturation
- Analyse de la facturation : Gravitee API Management vous permet de créer des tableaux de bord personnalisés grâce auxquels vous pouvez afficher les informations relatives aux plans et à la facturation correspondante, offrant ainsi une vue d’ensemble à ces départements. Cependant, comme la conservation de toutes ces informations réside dans Elasticsearch, des outils externes peuvent être utilisés pour intégrer ces informations dans des plateformes spécifiques en fonction de chaque utilisation.
Illustration 19. Analyse de la facturation
4. Chakray et Gravitee.io
En tant que partenaire officiel de Gravitee.io, Chakray dispose des connaissances et des outils nécessaires pour mener à bien n’importe quel projet de gestion des API, offrant le confort d’avoir une équipe spécialisée dans son déploiement, son développement et sa maintenance ultérieure, en plus d’un support conjoint avec le fabricant pour les environnements d’entreprise. Nous serons ravis d’évaluer votre cas particulier et de discuter de la meilleure stratégie « d’APIfication » pour mettre en œuvre une couche de gestion des API dans votre organisation. Contactez-nous dès aujourd’hui!