23.03.2021

Parole d'expert - API management

001

Introduction

Au cours des dernières décennies, les besoins en communication des entreprises ont augmenté de manière significative. La conséquence directe est que le nombre de systèmes a explosé. Ces derniers ne sont plus seulement cantonnés au réseau interne de l'entreprise mais distribués sur différentes plateformes (notamment grâce aux services cloud).

Afin de répondre aux besoins d'intégrations entre tous ces acteurs, l'exposition d'interfaces de communication devient nécessaire. Ces interfaces doivent être capables de s'intégrer avec différents types de support (mobile, web, serveur applicatif, …).

Parmi toute cette jungle, les questions de sécurité, de visibilité et de gouvernance des données n'ont jamais été aussi présentes.

Enjeux

Pour les entreprises, il s'agit avant tout d'accélérer et de créer de nouveaux produits. Dans un marché toujours plus exigeant, il est nécessaire pour elles de créer de la valeur ajoutée plus rapidement.

Tout cela passe nécessairement par une ouverture de la donnée au sein de l'entreprise mais aussi avec les partenaires.

Cette libération de la donnée peut largement s'appuyer sur l'API, qui est aujourd'hui le standard de communication. Mais pour mener à bien cette ouverture, il est nécessaire de faire appel à des outils d'industrialisation qui garantissent la qualité de tous ces échanges.

C'est dans ce contexte que l'API Management occupe une place de choix.

Le rôle de l'API Management

Il est admis aujourd'hui dans les architectures modernes que les échanges entre les systèmes se fassent via les APIs. Ces dernières ont résolu les problématiques liées à l'hétérogénéité des systèmes en s'appuyant principalement sur le standard HTTP.

Cependant, la mise en œuvre, la sécurisation et le déploiement dépendent directement des équipes de développement et peuvent varier fortement.

En s'appuyant sur les outils de l'API Management, les équipes vont pouvoir produire rapidement des APIs respectant les normes de qualité et consacrer plus de temps sur la logique métier inhérente à l'application.

L'API Management couvre un large spectre d'utilisations car il intervient à plusieurs niveaux :

  • Technique (sécurité, haute disponibilité, validation de données, …)

  • Architecture (gateway proxy)

  • Gouvernance de données

  • Organisationnel

Voici quelques cas d'usage qui reflètent ces différents niveaux.

Cas d'usage : faciliter l'intégration

Au-delà de l'aspect purement technique, l'API Management permet une intégration plus efficace entre les producteurs et les consommateurs d'API.

Le portail développeur est un composant fondamental de la plateforme. C'est grâce à ce dernier que les équipes vont publier leur catalogue d'API.

Cas d'usage : faciliter l'intégration

En parcourant celui-ci, les consommateurs ont accès directement à la documentation et peuvent même tester les APIs. Enfin ils ont accès aux API de manière sécurisée (voir Cas d'usage : sécurisation systématique de l'API).

Cela limite les réunions et les échanges de mails dans les phases d'intégration. Mais si cela s'avère nécessaire, le portail développeur permet également aux consommateurs de communiquer avec les responsables des APIs (support, demande d'amélioration, …).

Visibilité

Dans les systèmes d'information de grande envergure, il est parfois difficile d'avoir une vision nette du paysage applicatif. Le catalogue d'API est un moyen efficace de connaître l'existant.

De nouvelles manières de consommer les services en production peuvent apparaître et créer de la valeur ajoutée.

Cas d'usage : sécurisation systématique de l'API

Cas d'usage : sécurisation systématique de l'API

Dès le début du projet, l'API est déployée sur la plateforme et bénéficie des standards de sécurité (OAuth2/ OpenId Connect, SAML, API Key, HMAC). Ces déploiements sont généralement intégrés dans la chaine d'intégration continue de l'application.

Les développeurs peuvent ainsi s'appuyer sur l'API Management et se concentrer sur les processus métiers (la vrai valeur ajoutée).

C'est également un moyen efficace de sécuriser des applications vieillissantes dont le protocole de sécurité est obsolète.

Gestion des accès

Par l'intermédiaire du portail développeur, les consommateurs ont la possibilité de demander directement des accès aux responsables des APIs.

Gestion des accès

Ainsi le contrôle des accès reste sous la responsabilité des équipes applicatives, qui ont le pouvoir de valider (ou non) les demandes.

Une fois la validation effectuée, l'API Management génère automatiquement un accès (une clé ou un mot de passe selon le protocole utilisé). De plus, la durée ou la révocation de l'accès peuvent être facilement gérées.

Cas d'usage : gouvernance des APIs

La gouvernance est un sujet périlleux dans les grands systèmes d'information. Une même donnée peut provenir de différentes sources et il peut être difficile d'identifier qui en est responsable.

Par le biais du portal développeur, les équipes publient leur catalogue d'APIs et en même temps ils définissent de quels types de données ils sont responsables.

En ayant le contrôle du cycle de vie (de la conception à la consommation) sur ses APIs, l'équipe est en mesure d'identifier qui consomme et comment. C’est un des aspects les plus intéressant de la solution, car le contrôle reste aux mains des responsables applicatifs.

On peut parler de philosophie d’API Management. Pour les structures les plus matures, il existe également le modèle “API as a Product” qui fait intervenir de nombreux rôles et la monétisation d’API.

Cas d'usage : standardiser les aspects non-métier

L’un des atouts de l’API Management est de pouvoir déporter les aspects non-métiers sur la plateforme. Ainsi les APIs déployées vont bénéficier automatiquement de nombreuses fonctionnalités comme :

Monitoring
Les équipes peuvent contrôler l’état de santé, les temps de réponses, le nombres de requêtes reçues par l’API. Ces données sont le plus souvent présentées sous forme de tableau de bord contenant des métriques et des graphiques.

Logging
L’API Gateway collecte les logs du trafic comme la plupart des services proxys. Ces logs sont ensuite consolidés, valorisés et restitués avec des outils comme ELK. Ces derniers sont généralement directement intégrés à la solution d’API Management.

Alerting
Si la plateforme détecte une indisponibilité ou des temps de réponses anormales, l’équipe sera notifiée.

Sécurité
Sécurisation des APIs grâce aux différents standards de sécurité suivant le type de flux (appel depuis un navigateur, ou système à système).

L'API Management s'intègre généralement avec les serveurs d'authentification (Active Directory, Key Cloak, OpenAM, …).

Validation des données
Le contenu des requêtes peut être validé en amont via des schémas de validation (JSON ou XML). Ainsi, celles qui ne respectent pas le schéma sont automatiquement évincées avant même d’atteindre les serveurs applicatifs.

Cas d'usage : haute disponibilité

L’API Gateway vous permet de répartir la charge entre vos instances applicatives. Cette répartition peut être soumise à des règles (origine de la requête, header HTTP, CORS), les requêtes seront donc adressées à des serveurs différents. De même si une instance devient indisponible, le trafic est automatiquement redirigé vers les autres.

Cas d'usage : haute disponibilité

Certaines plateformes permettent également des fonctionnalités avancées comme les stratégies blue-green, canary testing ou AB testing. L’idée principale étant de rediriger une petite partie du trafic vers une nouvelle version de l’application, cette technique minimise les impacts en cas d’incident lors de nouveaux déploiements.

L'API Management et le DevOps

Dans cette logique de donner plus d'autonomie aux équipes, l'API Management s'inscrit parfaitement dans la culture DevOps. Là où historiquement, les points d'entrés étaient gérés par le domaine infrastructure, le développeur peut s'appuyer sur la plateforme pour publier son API en respectant les bonnes pratiques de sécurité.

L'API doit suivre le cycle de vie de l'application, c'est pourquoi le descripteur d'API (souvent au format OpenAPI) et la configuration sont stockés et versionnés comme le code applicatif.

Le déploiement de l'API doit être intégré à la chaine d'intégration au même titre que le déploiement de l'application elle-même.

L'API Management et le DevOps

Difficultés et accompagnement

L'intégration d'un tel outil peut être intimidant car il nécessite une adhérence forte, aussi bien d'un point de vue technique qu'organisationnel.

Il est nécessaire de définir clairement le rôle de la plateforme car celle-ci peut facilement entrer en conflit avec d'autres composants. Il n'est d'ailleurs pas rare de voir des équipes se cantonner à un périmètre réduit des fonctionnalités pour éviter le chevauchement avec d'autres outils.

Pour que la solution trouve réellement son audience (consommateurs et producteurs), il est nécessaire que les équipes applicatives s'approprient complètement l'outil.

Le principal piège à éviter est le modèle de l'ESB (Enterprise Service Bus) où bien souvent, une seule équipe est responsable des échanges entre les applications. Cela entraine généralement des problèmes de gouvernance et freine les projets.

Ici on souhaite que les développeurs restent maîtres de la donnée.

C'est pourquoi il est conseillé qu'une personne puisse inculquer cette philosophie et accompagner les équipes dans cette transition. N'hésitez pas à faire appel à nos experts pour vous aider à bien appréhender ces problèmes et accompagner vos équipes.

Conclusion

L’ouverture de la donnée engendre une forte augmentation du nombre des APIs, l'API Management devient logiquement de plus en plus présent dans les systèmes d’information d’envergure.

La plateforme amène de nombreux outils techniques pour orchestrer les APIs, mais également une philosophie touchant la gouvernance.

Il peut être difficile de déterminer où commence et où s’arrête son rôle car il couvre un large périmètre, il est donc nécessaire de fixer un cadre d’utilisation.

Le saviez-vous ? Vous naviguez sur un site éco-responsable ! En savoir plusbox icon
box icon