Chtijug et barbecue

Gravitee

Bon, je connais les speakers depuis …​ 10 ans facile. Et ça fait plaisir de les voir sur scène !

Gravitee, un API Manager

Donc l’API management (voir la session chez Kiabi – et la page Wikipedia de définition), ça permet de créer et de publier des API, de les maintenir en état de marche, et enfin de collecter des statistiques d’usage.

D’un point de vue architecture, il y a principalement deux composants

  1. Un portail d’API, permettant l’enregistrement d’utilisateurs, la découverte des API.
  2. Une gateway, qui va exécuter les appels en les dispatchant auprès des services backend.

Pour les clients, ça peut être

  • Une façon d’exposer une API
  • Un reverse proxy
  • Un ESB pour les API REST (mais ça c’est faux : il y a tout un tas de différences entre l’API manager et l’ESB)

Gravitee, le produit

Existe depuis 2015, et nos speakers ont créé la société GraviteeSource pour fournir le conseil, la formation autour du produit.

Démonstration de création d’API

A partir d’un serveur exposant l’API, on peut facilement créer les éléments dans Gravitee grâce …​ à un wizard ! Il faut noter que, dans le wizard simple, la notion de plan de consomation (pour pouvoir facturer facilement, évidement). Par ailleurs, on peut importer facilement de la doc RAML/SWAGGER/Markdown. Et c’est fini, l’API est déployable

Consomation d’API

Une fois l’API créée, il faut créer une souscription pour pouvoir l’utiliser.

Et là, les petits gars, vous avez déja de quoi remplir quelques rapports de bugs pour améliorer vos présentations 😉

Cela dit, les écrans d’administration sont sacrément bien fichus, avec une vision complète des temps de réponse et de la qualité des réponses.

Réécriture de la réponse

L’un des éléments intéressants d’un API manager, c’est la possibilité de modifier les requêtes pendant leur exécution grâce à des politiques de transformation préconçues (des transformations simples) ou …​ du Groovy (j’aime beaucoup), ou aussi de créer un cache au niveau de la gateway.

Développement de policy

Comme gravitee est développé en Java avec des mécanismes de plugins typiques, ajouter une policy, c’est assez facile, et c’est parti …​ avec un archétype Maven ! Et je dois dire que le code produit par la génération d’archétype est, un peu comme pour Wisdom, assez complet.

Web multi-écrans

J’ai déja vu la présentation sur Youtube, mais en live, ça n’est évidement pas pareil …​

Un truc marrant dès le début de la présentation : Hubert nous parle de 2008 et de ses deux écrans. De mémoire, avec mon voisin de derrière, en 2009, on bossait dans une boîte où chaque poste avait 3 écrans sur deux machines avec Synergy …​ Et encore, ça n’était pas ma première fois avec plusieurs écrans.

Donc, plusieurs écrans, et des interfaces avec plusieurs écrans. Dans le web.

Un truc très intéressant dans sa présentation, c’est qu’il intègre un avis contraire, celui de quelqu’un qui affirme ne travailler qu’avec un seul écran.

Et Hubert enchaîne ensuite avec les différentes techniques permettant la communication : window.open, et autres hacks. J’ai malheureusement un trou dans mes notes. Dans mes souvenirs, il y a un ou deux hacks, et une technologie parfaite pour les applis du futur, mais pas forcément disponible partout.

Cela dit, il y a une faille dans cette présentation (formellement impressionante) : le cas d’usage est quand même super limité : faire du web, sur plusieurs écrans, sans serveur …​ mis à part TiddliWiki, je connais peu de projets sur ce créneau. D’ailleurs, même les applications comme Atom, Brackets, Code ont un serveur web (oui, dans le même process, mais conceptuellement, il y a quand même un client, et un serveur). Personnellement, quand j’ai le genre de besoin dont Hubert parle (avoir des clients qui communiquent entre eux), je reste simple et je mets du websocket sur mon serveur.

Conclusion

Les sujets étaient assez spécifiques, mais les speakers étaient très chouettes, et la soirée s’est finie tranquillement sur les pelouses de Norsys

Publicités

3 réflexions sur “Chtijug et barbecue

  1. Salut Nico.
    Merci pour ton retour intéressant.

    Qu’entends tu par « Et là, les petits gars, vous avez déja de quoi remplir quelques rapports de bugs pour améliorer vos présentations » ?

    • J’en ai parlé à Nicolas 🙂
      Je vois plusieurs choses :

      • Rendre la présentation plus sexy : le service initialement choisi était peut-être un peu simple. Et je suis sûr que vous auriez pu tenter une présentation de correction de bug dans l’API
      • Aligner les différents éléments de la démo : comme Nicolas était connecté en admin, au lieu d’être un simple utilisateur, il voyait plusieurs « default application » et a eu un doute … Ca fait un peu trop rache pour être cool 😉
      • Prioriser les éléments présentés : il a fallu attendre que tu déploie ton live-coding pour qu’on découvre que gravitee utilise en fait vert.x. C’aurait été mieux de le dire plus tôt (typiquement quand Nicolas présentait les blocs d’architecture de gravitee), surtout vu que la session précédente du chtijug nous parlait de vertx (et de Kubernetes/OpenStack). Dans le même ordre d’idée, le schéma d’architecture générique, c’est bien. Mais le schéma d’architecture spécifique de gravitee, c’est *mieux*.
      • Le fait que votre wizard de création d’API inclue le plan de facturation est une bonne chose pour gravitee, ça n’était peut-être pas bien mis en avant.

      Evidement, je dis tout ça juste pour te casser le moral 😉
      Autrement dit, la présentation était bien, mais je pense qu’elle pourrait être top.

      • Toi ? Me casser le moral ? Il m’en faudrait bien plus de ta part, on est ici au ras des pâquerettes!

        Mais je note tes remarques et nous allons les prendre en considération pour les prochaines présentations.

        Finalement, le plus difficile c’est d’adapter la présentation à la population que l’on a en face de soi… et quand on voit ce qu’il y avait au premier rang, si tu vois ce que je veux dire !

        Quoi qu’il en soit, l’implémentation du hot-reloading de classloader des plugins est la bienvenue. #contribution_welcomed 🙂

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s