Une journée à Devoxx - Les universités

On l'attend avec impatience toute année, et après trois jours seulement, elle est déjà terminée. Une fois de plus, Devoxx FR a été une assemblée technophile à la hauteur de nos espérances.

Aujourd’hui, j’ai envie de vous parler de mon expérience là-bas, et plus particulièrement des universités, ce format de 3h de conférence, qui fait peur, mais qui passe plutôt bien au final. Voilà, en quelques lignes, mes retours, sur cette journée riche en informations.

Un format intéressant

Le format 3h permet de rentrer vraiment dans les sujets. Bien sûr, personne n’en ressort expert, mais cela permet d’aborder beaucoup de choses, tout en conservant un fil rouge.

Ce format convient bien pour découvrir un sujet qui vous intéresse (la sécurité, un nouveau langage, etc.), ou pour en approfondir un. Par contre, si vous maîtriser déjà le sujet, vous risquez de vous ennuyer : ce n’est pas une formation non plus.

Personnellement, j’ai choisi de voir des conférences en lien direct avec mes missions, afin de conforter mes connaissances sur ces sujets. Voilà un retour à tête reposée, qui, je l’espère, vous sera utile.

Les conférences

Maîtriser sa gestion de l’identité avec Keycloak

Lilian Benoit, Thomas Recloux, Sébastien Blanc

Bonne conférence sur cet outil Red Hat, qui s’est déjà fait un nom depuis quelques années. Il permet de créer un point d’identification unique pour vos applications, et supporte différents protocoles comme OAuth 2, OpenId Connect, et SAML v2 (plus d’informations sur ces protocoles : ici)

Keycloak vous apporte une solution "clé en main" pour gérer la sécurité de vos applications. Il vous évite de devoir réécrire ces composants de base pour chacune de vos applications :

  • gestion des comptes utilisateurs
  • connecteurs LDAP
  • gestion des permissions
  • page de connexion
  • social login (connexion intégrée à Google, Facebook, Github, etc.)
  • fédération d’identité
  • etc.

De plus, la sécurité étant un sujet très complexe, la déléguer à un composant maintenu par une grosse entreprise est en général une bonne idée : les failles de sécurités sont moins nombreuses qu’avec une solution "maison", et elles seront très probablement corrigées plus rapidement.

Il est possible de répartir vos applications dans différents groupes, appelés "royaumes" (realms), afin qu’elles aient leurs propre page de connexion et règles de sécurité (politique de mots de passe, thème graphique, base(s) d’utilisateur(s), etc.). Les applications d’un même royaume partageront donc les mêmes configurations.

Keycloak est une surcouche de Wildfly (étonnant pour un projet Red Hat, non ?), et possède tout un tas de points d’extension, permettant de surcharger le moteur (SPI). Ai-je précisé que cet outil est Open-source, très performant, et facile d’utilisation ? N’hésitez pas à le tester, cela se fait en quelques minutes.

Globalement, c’était une bonne conférence pour présenter l’outil. Je regrette simplement quelques longueurs sur la présentation de certaines fonctionnalités (surcharge du thème par exemple), aux dépens d’une présentation plus axée "technique".

Etre architecte logiciel en 2018

Cyrille Martraire, Arnauld Loyer

Mon coup de coeur de cette journée ! Le duo fonctionne très bien, la présentation est très juste et déjantée, et pose les questions suivantes :

  • qu’est-ce que l’architecture logicielle ?
  • qui la porte ?
  • quels sont les concepts d’architecture à connaître en ce moment ?

Dans cette dernière question, j’ai sciemment ajouté une notion de temporalité, car l’architecture évolue au fil des années. On entend actuellement tout un tas de buzz words comme #microservices, #event_sourcing, #event_driven, #archi_hexagonale, #DDD, #1_million_d_autres_mots. Là où cette university tombe juste, c’est que le cheminement pour arriver à ces architectures y est expliqué, ainsi que le contexte adéquat pour les utiliser.

Bien que ce soit la conférence sur laquelle j’aurais le plus à raconter, je ne souhaite pas "spoiler" leur présentation, et j’ajouterai le lien vers la vidéo dès qu’il sera disponible. Si vous devez n’en voir qu’une, c’est celle-là que je vous conseille. Ne pas voir le temps passer, c’est pour moi la définition d’une bonne conférence.

Le reste de la journée

2 universités dans la journée (soit 6h de confs), c’est déjà pas mal. Mais pour finir, voilà 3 autres conférences de 30 min, au format "Tools-in-action", que j’ai suivies.

Authentification et autorisation avec JWT et Macaroons

Julien Tanguy

Si vous avez déjà eu l’occasion de travailler avec des JWT (en faisant de l’OAuth 2 ou de l’OpenID Connect par exemple), vous n’apprendrez pas grand chose. Malheureusement, cette conférence était un peu confuse, mais a eu le mérite de présenter Macaroons pour gérer la partie autorisation.

Contrairement aux JWT, les Macaroons sont surchargeables, ce qui les rend utiles dans ces architectures où l’on chaîne les appels aux services : il est alors possible de restreindre les autorisations pour le contexte donné.

Là où les JWT ne vous donnent aucune permission par défaut (il doivent contenir des rôles pour vous autoriser à faire des choses), les Macaroons vous permettent de tout faire par défaut, et leur surcharge est faite pour restreindre ces libertés.

Quels sont les bons "use-cases" pour utiliser des Macaroons au lieu de JWT ? La réponse n’est pas claire suite à la conférence, mais n’hésitez pas à commenter sur le sujet.

Prometheus, un outil pour les monitorer tous

Ivan Beauvais

Conférence simple et efficace sur le fonctionnement et l'intérêt d’utiliser Prometheus. Vous exposez un endpoint sur votre application, qu’un serveur va puller régulièrement pour agréger des métriques, sous forme de time-series. Une fois les données récupérées, vous pouvez par exemple les afficher via Grafana, et déclencher des alertes de seuils.

Les données échangées sont dans un format qui devient de facto un standard.

Utilisant Prometheus dans le cadre de mes missions, j’ai trouvé ce "tools-in-action" facile d’accès pour les non-initiés. Si vous ne connaissez pas l’outil, je vous recommande de regarder la vidéo (j’ajouterai le lien dès qu’il sera disponible), car vous allez très certainement rencontrer de plus en plus de projets qui exposent des métriques au format Prometheus. Outil à suivre !

Chaos engineering, l’art de tout casser

Clément Escoffier

Les architectures étant de plus en plus complexes de nos jours (et majoritairement distribuées), les méthodes de test évoluent. On ne teste plus uniquement le code, il faut aussi tester la résilience de l’infrastructure. Pour cela, il faut trouver des outils capables d’interagir avec les composants d’architecture, changer leur état, et voir comment le système se comporte.

Voilà quelques tests que l’on peut effectuer :

  • test de montée en charge, via l’injection de beaucoup de requêtes en peu de temps
  • test de l’orchestrateur (si vous en avez un), en tuant des conteneurs aléatoirement
  • test de la résilience du code, en injectant des erreurs (ou sans répondre tout court) dans les requêtes
  • test de la résilience au "flood", en augmentant la latence. Cela a pour effet pervers de relancer les requêtes (si vous avez un mécanisme de retry) plusieurs fois, allant jusqu’à empêcher les conteneurs de répondre, et se fassent tuer par l’orchestrateur (si vous êtes dans ce cas d’architecture, bien entendu)
  • test des API, en jouant des requêtes avec des paramètres inconnus, des valeurs incohérentes, ou de très gros fichiers
  • test de reprise d’activité, en tuant un data center complet
  • etc.

L’un des outils utilisés pendant la démo est "Pumba", que je vous invite à regarder.

Un bon talk, qui permet de compiler pas mal d’idées de tests et de manières de les effectuer, en montrant en quoi c’est important de prévoir cela. A voir aussi, si vous avez la charge de maintenir une architecture, ou tout simplement si vous êtes un peu curieux.

En bref !

Très bonne journée au Devoxx, avec des speakers et des sujets de qualité. Bien entendu, le choix des tracks à voir est toujours compliqué, car beaucoup de choses sont intéressantes, mais je ne regrette pas mes choix. Même si je n’ai, au final, pas appris beaucoup de choses, quelques rappels et mises en situation font toujours du bien.

Enfin, je ne peux pas finir ce billet sans parler des conférences de cette journée, données par des Ipponiens (les liens seront aussi ajoutés dès leur dispo) :

  • mention spéciale pour "De la musique Collaborative avec Kafka", donnée par 3 talents bordelais (et c’était leur tout premier Devoxx) : Florian Garcia, Vivien Maleze, et Paul Boutes
  • "Migrer à Spring Boot 2 lorsqu’on a une ‘vraie’ application", par Julien Dubois
  • le hands-on "Initiation à Cassandra", animé par Maxence Lecointe

Et vous, quels sujets vous ont marqués ? Comment était votre Devoxx ? Êtes-vous un habitué ou un nouveau venu ? Commentez, partagez et échangeons !