Breizhcamp 2014

Du 21 au 23 mai, le Breizhcamp s’est déroulé à Rennes. Zenika, sponsor premium de l’évènement, était présent par le biais de son stand, de ses collaborateurs et de ses speakers : Simon Basle, Dridi Boukelmoune, Olivier Huber & Matthieu Lux, Philippe Mioulet, Pierre Reliquet.

Nos consultants ont donc choisi de partager avec vous certaines des conférences qu’ils ont particulièrement appréciées durant cet évènement. Celles-ci seront bientôt présentes sur Parleys et nous vous encourageons donc à aller les voir là-bas pour en savoir plus.
Nous espérons que cela vous poussera à venir à l’édition 2015 du Breizhcamp si vous avez loupé celle de cette année. Enfin, Zenika souhaite également remercier l’équipe d’organisation du Breizhcamp pour le temps passé bénévolement à l’organisation de cette conférence.

De zéro à héros en 5 minutes avec Spring Boot, par Stéphane Nicoll (Pivotal)

Après avoir présenté l’écosystème Spring, Stéphane nous a exposé les motivations du projet Spring Boot. Ils sont assez ambitieux car il ne s’agit ni plus ni moins que d’être le point d’entrée de tous les projets du portefeuille Spring. L’objectif est de permettre aux développeurs d’avoir rapidement des applications fonctionnelles. Cela, sans avoir à gérer les dépendances vers des librairies Spring ou s’intégrant avec Spring et sans avoir à écrire les beans les plus communs. Pour se faire, Spring Boot propose un ensemble de starters permettant d’utiliser des configurations propres à une thématique donnée. Il suffit de les activer grâce à l’annotation @EnableAutoConfiguration après avoir ajouté les starters correspondants dans le classpath de l’application. Ensuite c’est vous le héros, il ne vous reste plus qu’à coder la partie fonctionnelle de votre application. Stéphane a été particulièrement convaincant lors de sa démonstration pendant laquelle il nous a montré comment obtenir rapidement une application :

  • fournissant une API REST,
  • sécurisée en se basant sur un Repository MongoDB d’utilisateurs,
  • livrée dans un jar exécutable contenant un Tomcat embarqué,
  • exposant des métriques et des informations utiles pour le monitoring et le management.

Pendant 1h, c’était Stéphane le héros ! Merci à lui pour cette présentation qui donne vraiment envie de se plonger dans Spring Boot.

We are Family, par Danish Khan (Github)

Après avoir suivi des conférences sur des nouveautés toutes plus sexy les unes que les autres, des hands-on instructifs, j’ai suivi ce talk un peu différent. Danish Khan nous a parlé de sociétés fondées par des familles. Des sociétés comme Berreta ou Warburtons qui sont là pour certaines depuis des siècles.
La plupart des entreprises s’organise selon un modèle enseigné au cours d’un MBA. Si l’on s’en tient aux livres, point de secours sortie de ce modèle. Or, les sociétés familiales proposent un modèle différent basé sur une relation de confiance entre membre, une passion commune et des valeurs partagées par tous les membres.
Et c’est de cela dont s’inspire des sociétés comme Github ou Valve. Les projets au sein de Github ne sont pas imposés par le top management, plutôt lancés par les développeurs. Cela, car en famille on a confiance que chacun travaillera sur ce qu’il estime important pour la société. Ce mode de fonctionnement a permis d’accoucher du projet Steam chez Valve ou des fonctionnalités de support des imprimantes 3D sur Github.
Ce talk très inspirant permet d’entrevoir un modèle différent de celui utilisé dans les grandes sociétés.
(Vidéo Parleys)

Une partie de cache-cache, par Fréderic Bouchery (CCM Benchmark)

Première conférence pour se mettre en chauffe à propos du cache et de son importance pour diminuer non seulement les temps de réponse mais surtout la charge des serveurs.
Tour d’horizon des problématiques de cache :

  • Entre le navigateur et le serveur
    • Cache dans le navigateur via les headers http (qui ont bien du mal à être correctement utilisé par les navigateurs, et encore plus par les développeurs !)
    • Cache via des outils comme Varnish ou Nginx (ce dernier a l’avantage d’être serveur web également et de supporter le TLS)
  • Au niveau des applications vers les prestataires externes (SGBD, WS, …)
    • Cache applicatif avec des solutions simple comme ehcache, ou NoSQL si besoin de réplication, hazelcast, mongodb, couchbase, …

Au final, on voit que selon le business, la majorité des ressources, pages peuvent être mise en cache. Par contre il faut bien faire attention aux types de pages. Par exemple une page avec les résultats des élections doit pouvoir être remise à jour à 20h pile pour s’actualiser, les pages d’un blog doivent toutes être mise à jour si on change le template.
Par contre ces problématiques d’éviction peuvent aussi mener à des drames si à cause de la suppression d’une page tous les clients sont redirigés vers le serveur d’application. Il existe pour cela des mécanismes qui marque les pages comme « à rafraichir ». Le premier client qui touchera cette ressource sera redirigé vers le serveur d’application, alors que les autres utilisateurs continueront à voir le contenu périmé. Dès que le premier client revient du serveur, on met à jour le cache et tout le monde voit la nouvelle version !
Au final, des problématiques très intéressantes, des solutions robustes, des volumes impressionnant où la petite faute de configuration peut très vite se payer “cache”!

Pourquoi versionner ses données en NoSQL, par Quentin Adam (Clever Cloud)

​Un petit quickie qui sonne en fait comme un retour d’expérience sur l’utilisation et la modélisation des bases NoSQL. Quentin ADAM, fondateur de Clever Cloud et personnage à part entière nous explique pourquoi oublier le champ version dans ses données c’est se tirer une balle dans le pied quand on utilise les bases NoSQL.
Ce champ vous sera probablement inutile dans 99% des cas mais lorsque vous avez des informations « schemaless » ce champ vous permet de savoir quelles données se trouvent dans votre document. Les bases NoSQL embarquent généralement des volumes de données importants qui ne sont pas toujours compatible avec un script de migration à appliquer à la base (cela engendrerait une indisponibilité du service).
Un des patterns qui a déjà prouvé son efficacité est donc de migrer les données au fil de l’eau, lorsqu’on y accède. Cette transformation pourra être par exemple d’ajouter les nouveaux champs avec une valeur par défaut, de ré-arranger les valeurs, … Idéalement, la donnée en V3 est ensuite persistée pour éviter de refaire le même travail plusieurs fois.
Une fois que toutes les données seront en V3, les morceaux de code qui s’occupaient de migrer les données pourront être supprimées.
Cette solution n’est pas parfaite mais elle permet d’isoler ce code en un endroit bien identifié et connu de tous.
Et surtout, même si vous n’êtes pas convaincu, ajoutez le quand même, vous comprendrez plus tard !

Trend it, par Philippe Mioulet (Zenika)

Il n’est plus besoin de dire combien le monitoring de vos applications en production est primordial pour voir, analyser et comprendre les problématiques de performance.
Philippe Mioulet de Zenika nous présente donc Graphite, une solution de stockage et de visualisation de métrique. C’est en fait 3 composants principaux qui font Graphite : Carbon pour la réception de données, Whispher pour le stockage et Graphite pour la restitution.
Ce qui ressort c’est que la solution est très simple à prendre en main, principalement car elle stocke des données simple : un timestamp, un nom de métrique, et une valeur. Il suffit de pousser les données sur le serveur et Graphite s’occupe du reste, de l’historisation, de la restitution
et des transformations de données.
Les métriques sont simplement envoyées sur une connection TCP vers le serveur Graphite une par une, ou en batch via le protocole Pickle de Python. Ces solutions sont d’une simplicité enfantine qui nous pousse à vouloir remonter beaucoup de métrique que nous exploiterons plus tard.
De nombreux outils annexes existent pour collecter des données et les envoyer sur Graphite.
JMX Trans pour collecter les données exposées en JMX sur vos applications Java (Memory, Threads, données métiers), statsd pour collecter et agréger les données depuis par exemple les logs d’un serveur Apache, collectd pour remonter les métriques systèmes.
Le bilan du talk c’est qu’il est tellement simple et peu coûteux de remonter des métriques qu’il faut en pousser le plus possible dans le système et qu’ils vous seront fort utiles pour analyser le prochain ralentissement de votre application.​

Soyez Productifs ! « I MEAN it ! », par Tugdual Grall (MongoDB)

Après avoir assisté pendant deux jours à des conférences toutes aussi intéressantes les unes que les autres, le BreizhCamp s’est terminé par un tools in action sur le framework « Mean ». Il regroupe MongoDB, Express, AngularJS et Node.js afin de réaliser rapidement des applications web full stack Javascript.
Après une présentation du framework, Tugdual a prouvé les fonctionnalités de celui-ci en réalisant une application permettant la gestion d’un blog sur un serveur nodeJS avec authentification via Facebook, Twitter Google en moins de 20 min.
Bilan, un outil intéressant, simple à utiliser qui permet de créer rapidement une application full stack JS facilement personnalisable.

Laisser 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.

%d blogueurs aiment cette page :