r&d test gravitee homepage

Une fois n’est pas coutume, notre cellule R&D est allée tester un outil qui lui a plu et a décidé de vous en parler ! Aujourd’hui, c’est Gravitee.io, API manager open source, qui est passé au crible par Charly Clairmont.

Il n’y a plus une architecture qui ne vous propose pas d’ouvrir votre système d’information à votre écosystème : vos partenaires, vos clients, vos fournisseurs…

L’ouverture, oui, mais le contrôle qui va avec c’est mieux ! Non ?

Vous pouvez alors étendre votre système d’information, bâtir une stratégie digitale qui vous ouvre de nouveau canaux de communication et, pourquoi pas, trouver de nouveaux débouchés ! Vous vous inscrivez de cette manière dans le Data Driven Business ! (Ce paragraphe était pour la note marketing de l’article !)

Néanmoins peut-être vous faut-il mieux contrôler ce canal de communication. Il vous faut par exemple savoir qui consomme vos APIs, quels services sont les plus utilisés, quand ils sont le plus sollicités… Peut-être même souhaitez vous restreindre l’accès à votre API ? Et que vous voulez faciliter la découverte, l’accès à votre API ? Bref ! Il vous faut un API Manager !

Chez Synaltic, nous sommes très bons dans l’intégration de données (oui nous faisons de l’auto-promo sans vergogne, mais on a le droit, c’est notre blog !). Nous utilisons principalement Talend pour l’intégration de données en batch ou en temps réel. Et nous apprécions pas mal Apache Kafka aussi ! Depuis peu, avec Kafka Connect, Apache Kafka devient une véritable plate-forme pour gérer vos données de bout en bout, mais revenons plutôt à nos moutons !

Donc, parmi nos activités quotidiennes, nous construisons des API pour nos clients. Nous avons longtemps cherché un API Manager open source car nous aimons bien l’idée de voir comment un outil est fait ! Nous en avions identifié quelques uns : Kong, Tyk, API Umbrella… Nous étions d’ailleurs assez optimistes à l’idée d’utiliser Tyk, mais nous restions ouverts à une nouvelle rencontre !

Récemment, nous avons testé Gravitee. Il offre de nombreuses fonctionnalités et a vocation à être distribué à travers un cluster de machines, laissant alors la possibilité de passer à l’échelle.

Mais avant tout, avez-vous une idée du fonctionnement d’un API Manager ? Un petit schéma peut-être ?

r&d test gravitee.io

 

Comme vous pouvez l’observer l’API Manager dispose d’une sorte de barrière, un proxy. C’est à ce dernier dont revient la charge de gérer, filtrer, surveiller, et prendre soin de vos APIs. Cela signifie aussi que vos APIs ne sont pas directement accessibles à Internet, et qu’il incombe bien au proxy de faciliter le dialogue, être un intermédiaire, un messager.

Comment fonctionne Gravitee ?

Les grands composants de Gravitee, sont résumés dans le schéma précédent :

  • Gateway : c’est lui qui reçoit toutes les requêtes des consommateurs des APIs
  • Management :
    • Portal : c’est l’interface utilisateur de Gravitee, une porte d’entrée pour gérer vos APIs. Il offre aussi aux développeurs un accès à la documentation de votre API.
    • Management-API : Nous ne finissons plus de parler d’API ! C’est l’API de Gravitee ! Vous pouvez gérer complètement Gravitee depuis son API ! Normal ! #APInception

Pour gérer la charge vous pourrez ajouter un ou plusieurs gateways. De même, si vous connaissez une charge très importante, vous devrez déployer Gravitee en mode HA – Hautement Disponible. Notamment en répliquant ses composants… Mais, c’est déjà un autre débat !

En attendant, avec Gravitee, en standard, vous avez la possibilité de vérifier comment fonctionnent vos proxys.

r&d test gravitee

 

Vous aurez même la possibilité de les surveiller.

r&d test gravitee surveiller1

 

r&d test gravitee surveiller 2

 

Maintenant que notre API Manager est lancé, c’est l’heure d’y référencer un service et voir comment l’atteindre.

Nous commençons d’abord par publier une API. Ici, rappelez-vous bien que le service existe déjà, qu’il est déjà déployé et lancé. L’API manager correspond bien à la manière de gérer la barrière à franchir avant d’atteindre ce fameux service.

Dans l’exemple nous publions une API pour gérer l’accès à des chiffres de ventes.

 

r&d test gravitee exemple

 

r&d gravitee test exemple 2

 

Notre API est maintenant définie ! Nous sommes en mesure d’en gérer la sécurité ! Gravitee offre la possibilité de gérer des utilisateurs de différentes manières, soit en interne, soit via un annuaire LDAP.

 

r&d gravitee test exemple 3

 

Après s’être connecté, l’utilisateur (ici l’utilisateur est « api1 ») peut alors accéder aux APIs qui lui sont autorisées.

r&d gravitee test exemple 4

 

L’utilisateur est maintenant en mesure de souscrire aux API qui l’intéressent.

r&d gravitee test exemple 5

 

Il souscrit ainsi au plan qu’il lui convient le mieux.

r&d gravitee test exemple 6

 

Reprenons maintenant notre casquette d’administrateur de plate-forme. Nous observons que nous avons un nouvel utilisateur ayant souscrit à une de nos APIs.

r&d gravitee test exemple 7

 

Cet utilisateur aura lancé plus d’un appel à notre API. Le phénomène est bien entendu suivi sur notre Gravitee !

r&d gravitee test exemple 8

 

En allant plus loin dans le suivi, l’administrateur est même en mesure de constater que l’utilisateur, ayant souscrit à un plan défini, atteint alors sa limite.

r&d gravitee test exemple 9

Bien sûr une fois le quota atteint, Gravitee bloque tous les appels à cette API pour cet utilisateur !

 

 Notre avis

Gravitee semble parfaitement correspondre à ce que l’on attend d’un API Manager. La licence c’est de l’Apache 2. Et en plus, c’est réalisé par des français. Sûr qu’il y a moyen de collaborer !

Site :

https://gravitee.io

Documentation :

https://docs.gravitee.io/

Le shell m’ayant permis de tester la limite du nombre d’appels autorisés dans le plan sélectionné.

for var2 in 0 105 \

do \

curl -H "X-Gravitee-Api-Key:e3a28d85-a54a-4c03-9d7d-b0752de47902"

http://localhost:8000/myfirstapi \

sleep 3 \

done