Retour sur le Devoxx FR 2017 - Partie 2

Keynotes : De la responsabilité des ingénieurs

Les ingénieurs, les concepteurs d’algorithmes et les programmeurs ont une responsabilité très importante dans notre société car leurs réalisations ont un impact très fort sur l’évolution de la vie sociale. L’avènement des objets connectés et l’enregistrement des données personnelle aboutissent à « une marchandisation intégrale de la vie ».

Devoxx 2017 keynote

Devoxx 2017 keynote

Eric Sadin, écrivain et philosophe, au cours d’une keynote affectée et émouvante, a dénoncé le phénomène et affirmé son opposition.

L’auditoire formé d’ingénieurs en informatique, ouvriers de ce processus, a répondu à son discours par de vibrants applaudissements.

Comprendre la loi de Conway pour réussir sa transformation DevOps

Comprendre la loi de Conway pour réussir sa transformation DevOps

Clément Rochas du cabinet Xebia a présenté La loi de Conway : les organisations produisent des systèmes d’information dont le design découle de leurs structures de communication.

Quand Melvin Conway a établi cette théorie en 1967, il ne se doutait sans doute pas de la puissance de son constat : il est aujourd’hui recommandé de maîtriser ce concept avant d’organiser les équipes et les aider à devenir agiles ou DevOps.

A l’aide de cas concrets, il nous démontre qu’il est facile de prédire le code qui sera produit dans une organisation et donc les problèmes qui seront rencontrés, ou qu’inversement, on peut comprendre comment une entreprise est organisée à la simple lecture du code qu’elle produit.

On comprend donc que les répercussions des choix d’organisations sur les équipes IT et sur leurs livrables sont énormes.

Mettre en place une culture DevOps au sein d’une organisation doit donc faire partie d’une stratégie élaborée sur l’intégralité de la chaîne de décision.

Les slides sont disponibles ici : https://fr.slideshare.net/crochas/devoxx17-reussir-sa-transformation-devops.

Kit d’orchestration avec Docker Swarm Mode

Vincent Demeester, mainteneur du projet Docker a présenté Docker Swarm Mode, l’orchestrateur intégré à la distribution de Docker 1.12.

La présentation des concepts qui permettent de gérer le parc de conteneurs était accompagnée d’une démonstration.

docker swarm visualizer

docker swarm visualizer

Vincent Demeester a créé un cluster Docker en quelques minutes puis démontré les fonctions disponibles :

  • Le Swarm Mode : intégré depuis la version 1.12, il remplace le Swarm Kit des versions précédentes, peu intuitif à configurer
  • Les évolutions majeures de l’API docker
  • Le service discovery Swarm Mode qui permet l’enregistrement automatique des conteneurs
  • Le chiffrage par défaut des communications entre conteneurs (automatic TLS keying and signing)
  • La possibilité de faire tourner d’autres types de containers que docker (LXD ou rocket)
  • Le modèle déclaratif de gestion des services,
  • La gestion de la scalabilité
  • La gestion réseau multi-host
  • Le load balancing automatique entre conteneurs fournissant le même service
  • Les mises à jour roulantes (rolling update) pour les déploiement « zero downtime »
  • L’utilisation du consensus Raft pour l’élection des nœuds maîtres
  • Les nœuds manager / worker

Docker reprend dans Swarm Mode, ce qui a fait le succès de Kubernetes, son principal concurrent en termes d’orchestration, et va même jusqu’à en copier la sémantique (à l’exception de la notion de pod).

On note également :

  • La possibilité d’exploiter la « Services Stack » pour le déploiement de grappes de conteneurs liés (équivalent de docker-compose dans un contexte de cluster),
  • La notion de secret pour les informations sensibles

Toutes les informations sont disponibles sur le site de Docker et accompagnées d’un tutoriel détaillé : https://docs.docker.com/engine/swarm/.

Containers’ Jungle. Docker, Rocket, RunC, LXD … WTF ?

Containers' Jungle

Containers’ Jungle

L’intégralité de la présentation de Nicolas De Loof (CloudBees) & Yoann Dubreuil (CloudBees) est disponible sur Youtube : https://www.youtube.com/watch?v=zfMtF2Mo2oE

Spring Framework 5

Stéphane Nicoll, développeur du framework Spring et de Spring Boot, a présenté les nouveautés proposées dans la version 5 :

  • La nouvelle baseline (pré-requis) : Java 8, Servlet 3.1+, JMS 2+, JUnit 5, JPA 2.1+,
  • Les améliorations de performance (en particulier pour le démarrage des applications Spring),
  • L’approche « réactive » grâce à Spring reactive
  • Le support du langage Kotlin.

La présentation est disponible ici : https://speakerdeck.com/snicoll/spring-framework-5-dot-0-themes-and-trends.

DevSecOps – Security at Devops speed with EDF

La conférence, menée par Brian Fox, Chief Technical Officer de Sonatype, a mis l’accent sur les failles de sécurité que peuvent introduire les librairies tierces (dépendances Java, .Net ou Javascript) provenant de référentiels publics, tel que Maven central.

Comment surveiller et empêcher qu’une librairie, dont dépend une application, introduite de manière quasi transparente par la déclaration d’une dépendance, n’induise une faille de sécurité critique ?

La solution présentée repose sur Nexus Lifecycle : produit de Sonatype.

nexus lifecycle

nexus lifecycle

Au secours ma prod est sous Docker !

Le passage en production d’une architecture Microservices sous Docker entraine des difficultés, car les activités liées à l’exploitation sont menées de façons différentes et nouvelles :

  • Le monitoring des micro-services (bon fonctionnement, alertes)
  • La surveillance des traces applicatives (logs) et techniques
  • La gestion des données persistantes
  • Reprises sur panne
  • Gestion des dépendances entre micro-services
  • Gestion des mises à jour avec Zéro downtime
  • Gestion du réseau entre les conteneurs

Parmi les difficultés concrètes rencontrées par François Teychené a rapporté les cas suivants :

  • Mon conteneur n’arrête pas de redémarrer sans que je puisse voir ses logs
  • Une application a démarré sur le serveur de bases de données et elle consomme trop de CPU
  • La machine qui héberge le conteneur Postgres est tombée, pourquoi le conteneur n’a-t-il pas redémarré sur une autre machine ?
  • Docker-compose n’est pas directement utilisable pour un orchestrateur – comment démarrer la grappe de conteneur dans le bon ordre et avec la bonne configuration réseau (cf. Docker swarm mode) ?
difficultés sous docker

Première production sous Docker

Finalement, le rapport entre l’exploitant et les applications passe d’une relation de propriétaire à un animal de compagnie à une relation d’éleveur de bétail. Les services sont anonymes. En cas de panne on les supprime. De plus, l’emplacement des services sur la grille de machine n’est plus géré par un homme, mais par un orchestrateur.

La présentation est disponible ici https://docs.google.com/presentation/d/12b3wR1ZRL1x5LV93hifm55FCTgp2Jvz0wqYNldbODKw/edit#slide=id.g35f391192_00.

10 méthodes pour rendre heureux les développeurs, la 7e va vous étonner !

Une entreprise sans bons développeurs, c’est comme du code sans test unitaire : à un moment ou à un autre, ça ne fonctionne plus. Aussi devient-il impératif, sinon vital, d’attirer les meilleurs d’entre eux, et de savoir les retenir au sein de son entreprise. Si cela est simple à dire, réussir à maintenir un contexte attractif dans la durée n’est pas évident.

Comment créer un environnement de développement qui incite les développeurs à donner le meilleur d’eux-mêmes et à progresser chaque jour ? Comment assurer la cohérence des évolutions techniques tout en permettant aux équipes de tester les dernières nouveautés ? Basés sur leurs expériences, Cyril Lakech (Axa) et Romain Linsolas (Société Générale) ont partagé leurs découvertes et leurs convictions.

Les 10 points qu’ils ont exposés sont les suivants :

10 méthodes pour rendre heureux les développeurs

10 méthodes pour rendre heureux les développeurs

Le 7e, les petits plus, c’est ce qui peut rend la vie des développeurs plus sympathique : le café gratuit, les salles de pause, le baby-foot …

La présentation est disponible ici : https://linsolas.github.io/devoxx-france-2017/index.html#/

Building Cloud Native Progressive Web Apps – Part 1 et 2

Matt Raible et Josh Long au Devoxx

Matt Raible et Josh Long au Devoxx

Matt Raible et Josh Long, deux stars de la communauté Open Source et qui ont le mérite d’être de très bons orateurs, ont proposé un double atelier de 1H30 permettant de créer « from scratch » une « Progressive Web App » permettant d’afficher un catalogue de bières. .

  1. Dans la première partie de l’atelier, Josh assisté de Mat, a réalisé la couche microservice basée sur Spring Boot.
  2. Dans la seconde partie, Matt a développé le module front-end, basé sur le tout nouveau Angular 4 (déjà !)

Les deux compères font les clowns, amusent l’auditoire… Mais n’en reste pas moins de véritables artistes lorsqu’ils développent… c’est impressionnant de maitrise et de fluidité.

La séance a permis de découvrir ce qu’est une Progressive en continuité du travail amorcé par Cordova et Ionic et on associe le meilleur des deux mondes :

  • Chargement instantané : grâce au Service Worker, l’accès au réseau est optionnel ;
  • Notification Push : la Notification API et la Push API proposent des notifications contextuelles et adéquates et mettent à jour l’application sans action de l’utilisateur (l’utilisateur reçoit une notification pour l’informer qu’un nouveau message est disponible dans son réseau social), même si le navigateur est fermé (grâce au Service Worker) ;
  • Responsive : l’utilisateur accède à l’application à travers différents périphériques, l’application doit faire de même et suivre l’utilisateur sur son téléphone, sa tablette ou son ordinateur (voire sa montre) ;
  • Sécurisée : les données de l’utilisateur sont précieuses et il faut s’en occuper comme il se doit. L’utilisation de HTTPS est indispensable pour le service worker, et aussi pour les applications web progressives (et oui cela signifie également gérer un certificat, mais https sera bientôt la norme) ;

Disponible sur l’écran d’accueil : l’application doit être proche de l’utilisateur, il doit pouvoir y accéder depuis l’écran d’accueil de son téléphone, comme une application native. C’est l’objet du manifeste des applications web.

C’est une leçon d’architecture logicielle et au final, Matt et Josh ont entre les mains une application web progressive et résiliente, développée en … 1h30.

Ce que le Back End a gagné en simplicité, notamment grâce à Spring boot, à Java 8 et à la programmation fonctionnelle est compensé par une complexité et une sophistication croissante de l’application cliente à laquelle le framework Angular n’est pas étranger.

En conclusion

Nous avons également assisté à plusieurs autres conférences très intéressantes, telles que :

–        Akka avec Java 8 : finalement c’est cool !

–        Intégration continue d’images Docker

–        Les bornes des limites : comment maintenir de la cohérence dans votre architecture microservices

–        Les problèmes que l’on rencontre en microservices : configuration, authentification et autres joyeusetés

–        Le changement c’est maintenant !

–        Organisez la logique de votre application web avec Redux

L’ensemble des sessions sera disponible sur la chaîne Youtube du Devoxx FR dans un délai de 2 semaines : les conférences, les Key Notes et les Tools in action.

La conférence a été une grande réussite une nouvelle fois cette année.

0 commentaires

votre commentaire

Se joindre à la discussion ?
Vous êtes libre de contribuer !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Inscription newsletter

Ne manquez plus nos derniers articles !