Retour sur SpringOne Tour

1

SpringOne Tour est un événement Pivotal qui a lieu plusieurs fois par an, dans plusieurs villes et dans différents pays. En ce qui me concerne, j’ai assisté à celui qui s’est tenu à Londres du 18 au 19 Mars. Au menu de la conférence, des sujets très pertinents se rapportant principalement à des problématiques d’applications Cloud Native, avec bien entendu des technos Pivotal pour y remédier : développement, microservices et autres paradigmes tels que DDD.

Les intervenants ont une envergure internationale et font tous partie de Pivotal. Leurs présentations et retours d’expérience étaient remarquables.

Les slides et live coding des speakers sont accessibles depuis cette url.

Better software is better than worse software

Cette présentation me rappelle celle faite par la fameuse team Zenika Labs 😉

Durant sa présentation, le speaker se référait au livre qu’il a rédigé Monolithic Transformation, où il explicite un ensemble de pratiques (adoptées par Pivotal Labs) pour booster la productivité du développement d’une application, tout en faisant la promotion des produits Pivotal : développement (Spring framework, RabbitMQ…) et Cloud Foundry pour le déploiement.

BLM process ou lean loop en tant que clé de voûte, il insiste sur sa mise en œuvre, et explique que cela ne peut être réalisé qu’en parallèle avec d’autres outils et méthodologies, principalement l’agilité et CI/CD. Cela donnerait plus d’autonomie aux développeurs et réduirait le nombre d’Ops dans les équipes (Don’t build infrastructure, build applications).

L’objectif est de maximiser le temps consacré au développement. Cela aura comme impact un déploiement très fréquent, un feed-back très rapide et une productivité à son plus haut niveau. Pour joindre l’utile à l’agréable, il évoque également certaines technicités à adopter en mettant l’accent sur ses bienfaits tels que TDD et Pair Programming.

How fast is spring

Cette présentation avait comme but de rendre une application Spring boot plus rapide au démarrage, le speaker a énuméré un ensemble de règles à respecter pour ce fait :

  • Utiliser le plus possible les versions Spring/Spring boot les plus récentes.
  • Exclure du classpath les librairies non utilisées.
  • Utiliser spring-context-indexer lorsque l’application abrite un nombre considérable de beans
  • Enlever Actuators en cas de non utilisation
  • Spécifier explicitement à Spring le chemin du fichier de propriétés ‘spring.conf.location’
  • Désactiver JMX en cas de non utilisation spring.jmx.enabled=false
  • Rendre les bean Lazy par défaut
  • N’importer que les auto-configurations utiles plutôt que de laisser spring boot tout importer
  • Démarrer la VM avec les arguments : -noverify et -XX:TieredStopAtLevel=1

Drinking from the Stream: How to Use Messaging Platforms for Scalability & Performance

Il s’agit ici d’une introduction à Spring Cloud Stream, qui est un framework dédié à la réalisation d’applications orientées event-driven microservices, connectées par un système de messaging partagé. Le live coding a fait l’objet de trois applications (microservices) Spring boot :

  • La source (Source) productrice de messages, connectée au message broker RabbitMQ.
  • Le processeur (Processor) consommant des messages produits et mis dans RabbitMQ, puis les réécrit dans un autre message broker Apache Kafka.
  • Le consommateur (Sink) consommant des messages depuis Kafka.

La facilité, rapidité et fluidité avec lesquelles ces trois applications ont étés réalisées illustrent tout l’intérêt d’utiliser Spring cloud combiné avec Spring boot !

Le schéma ci-dessous expose le cheminement des données à travers les trois applications.

Thinking Architecturally

Dans ce talk, le speaker qui est architecte et DSI, nous a fait part de son retour d’expérience de son métier et quotidien. Son discours est basé sur son livre Thinking Architecturally, et n’hésitait pas à illustrer les points évoqués par des cas concrets au sein de ses équipes :

  • Le métier d’architecte consiste en premier lieu à diriger des équipes, choisir les technos et influencer les décisions techniques prises.
  • Les technos changent tous les jours, il faut savoir quand basculer vers une nouvelle techno et quand rester (PoC, REX, expertise, audit…).
  • Les développeurs apprennent constamment, mais la contrainte est de délivrer de la valeur ajoutée, à un moment donné il faut s’engager dans une techno.
  • Définition d’une routine pour rester à jour et savoir où investir son temps, se focaliser sur les méta-data des technos, partage d’info entre l’équipe (monter en compétence puis partage)
  • Connaître les avantages/inconvénients des technos : chaque choix est un compromis, et toute décision est relative (projet, entreprise…). Il faut reconnaître les points faibles d’une techno (you haven’t mastered a tool until you understand when not to use it), et se baser sur des faits réels pour décider d’une techno (maturité, stabilité, testabilité, communauté, documentation…)
  • Définir des principes : définir des métriques pour mesurer l’efficacité de l’architecture proche/loin des objectifs, SLA/SLO

Efficient Web Apps with Spring Boot 2

Dans ce talk, le speaker a créé dans un premier temps une application Spring Boot Web avec WebFlux en utilisant la programmation réactive pour des appels non bloquants et la gestion du parallélisme. La démo avait deux types de clients : resttemplate et webclient en illustrant la différence entre les deux.
Dans un second temps, le live coding montrait la mise en place des outils de monitoring de l’application : Actuators pour exposer les différentes métriques de l’application, Prometheus pour récolter les métriques depuis actuators et Grafana pour les visualiser de façon élégante via des graphes.

DDD and Microservices

Les microservices nous permettent de créer des architectures évolutives composées de modules cohésifs et autonomes utilisant des patterns de systèmes distribués. Au fur et à mesure que nous créons des microservices nous sommes profondément intéressés par l’établissement des limites correctes, ce qui n’est pas évident à mettre en place.
Dans la présentation le speaker a expliqué des notions DDD pour réussir son découpage :

  • Bounded contexts
  • Subdomains
  • Context mapping
  • Aggregates
  • Domain events

Conclusion

Étant un fan de Spring, cette conférence m’a permis de découvrir toute une panoplie de solutions Pivotal ainsi que d’autres paradigmes de programmation très facilement adoptables par Spring. J’ai aussi eu l’occasion de voir de près les gens de Pivotal, échanger avec eux et visiter la formidable ville de Londres.

Partagez cet article.

A propos de l'auteur

Un commentaire

  1. Tres bon article ,et tres bonne initiative ainsi que la formation que j’ai suivi dans ce centre serieux et reconnu,
    je tiens à remercier le formateur qui’est l’auteur de cet article pour ses compétences et son sens de professionalisme, d’autres ca capacité à faire passer le message et d’expliquer les choses ,
    Cordialement ,

Ajouter un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.