RootsLabs

More than a tool ! GitHub Google+ LinkedIn RSS

Retour sur BreizhCamp 2014

Progi1984 - Commentaires (5)

Après le BreizhCamp 2013, Du 21 mai au 23 mai 2014 se déroulait le BreizhCamp, deux journées et demi organisées par le BreizhJug et les communautés techniques de Rennes. En fait, c’est un peu le Devoxx mais made in Rennes. Mais vu que vous n’avez pas réussi à trouver de places après le Sold-Out, je vais vous donner mon résumé de ce BreizhCamp. Dans mon cas, il va se résumer aux deux jours du 22 et 23 mai, le 21 étant une journée de Hacker-Space qui ne m’intéressait pas plus que cela.

Logo BreizhCamp

BreizhCamp : 22/05/2014

Premiers pas avec Symfony

Cette conférence était une introduction à Symfony. Mais pourquoi utiliser Symfony ? SensioLabs nous donne six bonnes raisons. Symfony se base sur des standards (PHPUnit pour les tests unitaires, Composer pour l’installation des composants) et des composants de base interopérables :

  • CssSelector,
  • DomCrawler,
  • BrowserKit,
  • Console : permet de mettre de la couleur dans la console

En fait, Symfony est un framework full-stack où l’on rajoute ces composants métiers par dessus. Silex est connu pour être Symfony sans tous les composants qui l’entourent.
Pour la partie métier, on rajoute des bundles qui sont des modules composés du code PHP métier et des assets (JavaScript, CSS et les images).
Une bonne découverte a été les annotations : des commentaires à la PHPDoc mais qui permettent de définir des options.

Au final, une bonne présentation de Tony DUBREUIL qui était bien partie au début, mais un peu brouillon sur la fin à cause de tros gros explications sur Composer.

Présentation : https://speakerdeck.com/tonydub/premiers-pas-avec-symfony-au-breizhcamp-2014
Vidéo : https://www.youtube.com/watch?v=HN1dbnNTQ2Y et http://parleys.com/play/5385d009e4b051bf9e2ea81c
Orateur : Tony DUBREUIL (Twitter : @tonydbrl)

Yeoman, génère moi un générateur

Ce sujet était totalement inconnu pour moi. En fait, le but de cet atelier était de pouvoir générer un générateur dans un cas précis de production. Comment mieux le dire ? Le but était de générer un générateur de site de base avec tout l’outillage à notre portée : Grunt / Bower (Composer pour JavaScript). Cela est très utile car cela applique automatiquement les conventions internes, et permet de partir d’une base propre.

Présentation : http://slides.com/wassimchegham/yo-generator/
Vidéo : …
Orateur : Wassim Chegham (Twitter : @manekinekko)

Branchez Node.js à votre compteur EDF

Cet autre atelier était un atelier un peu plus matériel : le but était de pouvoir se connecter au compteur EDF avec un Raspberry Pi pour y récupérer les données TeleInfo, le tout avec Node.js, Angular et MongoDB. Laurent HUET est passé depuis sur BeagleBone Black qui est mieux comme serveur, au contraire d’un Raspberry Pi qui est mieux comme serveur vidéo.

Présentation : …
Vidéo : …
Orateur : Laurent HUET (Twitter : @lhuet35)

Continuous Delivery chez Capitaine Train

La livraison continue reste un objectif avec un zéro downtime. On précise bien un objectif. Chez Capitaine Train, les technologies utilisées :

  • Git & GitLab ;
  • Jenkins pour l’intégration continue.

Pour la partie « Intégration Continue », on teste la qualité de code (couverture de code, style de code (permet d’augmenter la lisibilité du code)).
Toute la revue de code de chaque pull-request se fait toujours par un pair.
Chaque développeur gère son développement. Il mène chaque mission de bout en bout et va chercher les informations et les ressources à chaque moment. Pour chaque mission, après la partie code, il vérifie la qualité du code, il demande la revue du code à un pair, il demande à la Production un push vers la prod, il contacte le client ou le marketing.
Leur but est de ne pas faire de grosses releases pour éviter les grosses erreurs possibles. L’avantage de petites releases est que l’on peut faire un rollback à la version d’avant.
Il est aussi possible d’utiliser du code jetable, par exemple, dans le cadre d’une évolution d’une API où les deux versions doivent co-exister. Le code jetable fait un test sur la version (avec un bon vieux IF) et sera supprimé quand l’ancienne version ne sera plus utilisée.

Présentation : …
Vidéo : …
Orateur : Frédéric MENOU (Twitter : @ptit_fred)

Workshop: MongoDB par la pratique !

Ce « Tools In Action » permet de s’intéresser à MongoDB. Pour la présenter, cette base de données est orienté document. Dans les termes techniques, on peut rapprocher certains termes de bases de données relationnelles :

  • Table => Collection
  • Ligne => Document
  • Index => Index
  • Foreign Key => Référence
  • Join => Embedded Document

On ne remplace pas un SGDB Relationnel par une base de données NoSQL comme cela. Il faut refaire toute la partie conception des données.
Je n’ai malheureusement pas participé à toute la conférence n’ayant pas de portable avec moi pour faire cet atelier.

Workshop : https://github.com/tgrall/mongodb-workshop
Orateur : Tugdual GRALL (Twitter : @tgrall) & Sébastien PRUNIER (Twitter : @sebprunier)

Créer des jeux 3D pour le web

Babylon.js a fait partie des très bonnes découvertes de ce BreizhCamp. Babylon.js est un framework Javascript pour construire des applications 3D (jeux, principalement) en HTML5 et WebGl. Un plugin Blender existe pour exporter au format .babylon. Au niveau fonctionnalités, le framework supporte les shaders mais aussi le mode offline avec IndexedDB.

Présentation : …
Vidéo : …
Orateur : David ROUSSET (Twitter : @davrous)

Behat : Automatisation des tests fonctionnels

Behat fut une autre bonne découverte. Behat est un framework pour faire du Behavior Driven Development. La partie « langage naturel » est gérée par Gherkin. La partie « communication avec les navigateurs » peut être géré via le protocole Selenium. Par défaut, la langue pour faire les tests est l’anglais, mais on peut utiliser le français avec Gherkin.
Voici quelques unes des fonctionnalités :

  • Gestion des étapes personnalisées / meta-step (« Quand je suis connecté » est égal à plusieurs autres étapes)
  • Possibilité de tester plusieurs données (Documentation)
  • Possibilité de tester sur certains navigateurs certaines fonctionnalités
  • Possibilité d’injecter du JavaScript
  • Possibilité de faire de la non-répression graphique
  • Possibilité de tester sur des mobiles avec Tapster

Présentation : https://github.com/jseguillon/behat-breizhcamp
Vidéo : https://www.youtube.com/watch?v=_v7oHOcWmkI & http://parleys.com/play/53847046e4b04837ac8b6914
Orateur : Joel SEGUILLON (Twitter : @Jseguillon)

Vagrant pour les développeurs

Vagrant fût la dernière bonne découverte de la journée. C’est un outil d’orchestration de machines virtuelles dans le but de reproduire un serveur de production dans une VM sur un poste de développeur. Cet outil permet de gérer la configuration réseau, les répertoires partagés, et permet d’être provisionné facilement via certains outils comme Puppet ou Chef ou même un script Shell.
Pour cela, il n’en faut pas beaucoup : un fichier Vagrantfile et une box de base.
Et après, il faut suivre ces trois étapes :

  • Étape 1 : Choix d’une base box sur VagrantCloud ou sur Ubuntu.com
  • Étape 2 : Configurer le fichier VagrantFile avec la possibilité de définir plusieurs machines virtuelles dans le même fichier
  • Etape 3 : On peut jouer
    • vagrant up : lance une VM avec la création et le provisioning (juste la première fois) – possibilité d’indiquer la VM
    • vagrant ssh : lance une connexion SSH vers la VM
    • vagrant status : statut de la VM
    • vagrant provision : relance le provisioning
    • vagrant suspend/halt : met en pause/arrête la VM – up pour relancer
    • vagrant destroy : supprime une VM

Présentation : …
Vidéo : https://www.youtube.com/watch?v=a_ZPB_0Chyg & http://parleys.com/play/538f72a8e4b01a524d469a5d
Orateur : Alexis Seigneurin (Twitter : @aseigneurin)

BreizhCamp : 23/05/2014

A noter que la journée a commencé par une Keynote orienté start-ups et fun, au vue des slides.

Trend it

Cette conférence était une présentation sur Graphite : un outil de stockage de données numériques et chronologiques.
Les données d’entrée peuvent être système via SNMP ou Collectd, ou métier avec JMX pour Java. Côté sortie, Composer permet de créer des graphs, et Dashboard des tableaux de bord ou Graphene avec des tableaux de bord beaucoup moins spartiates.
Pour améliorer les performances, deux astuces sont sorties : utilisation d’un disque dur SSD et utilisation de cache avec carbon-cache.
Une VM Vagrant existe pour tester Graphite : https://github.com/jpadilla/statsd-graphite-vm.

Présentation : …
Vidéo : …
Orateur : Philippe MIOULET

Des petits pas vers le Continuous Delivery

Arnaud nous a présenté comment se passait la livraison continue chez lesfurets.com.
La présentation a commencé par quelques chiffres (300 000 lignes de code et 200 tests Selenium).
Après il nous a expliqué comment se passait les livraisons, il y a deux ans :

  • Dépôt GIT : branche master avec pull request
  • Livraison à J+2
  • Build en 15 min. (3 min., maintenant) et Tests Selenium en 1h. (10 min., maintenant)
  • Mise en production en 6 minutes
  • Méthodologie Kanban

Pour passer de livraisons épisodiques à la livraison continue, il faut commencer par l’opérationnel pour finir le développement.

  • Exploitation : Mise en place de métriques fonctionnels avec Zabbix, Logs pour chaque erreur (plus un toutes les heures et un toutes les 24h) ;
  • Mise en Production : AUTOMATIQUE ! Infracture as code et Zéro downtime ont été les maitres mots de cette partie ;
  • Livraison : La production correspond au master et chaque pull request contient un développement ; Quand une PR est validé, il est automatiquement envoyé en production ;
  • Validation : elle se passe par des tests Selenium, une revue de code par un pair, et une démo avec le service Business ;
  • Intégration Continue : dés qu’un commit est fait, on lance les tests unitaires et teste la compilation via un git octopus (on prend toutes les branches et on les merge tous)
  • Implémentation

Présentation : …
Vidéo : https://www.youtube.com/watch?v=ayvVYc01iEk
Orateur : Arnaud PFLIEGER (Twitter : @ArnaudPflieger)

Les Sensors et le HTML5

Ce « Tools In Action » était une présentation des différents senseurs en HTML5. Mozilla en a implémenté un certain nombre grâce à Firefox OS.
Voici ces différents senseurs :

  • Device Orientation : la base est quand l’appareil est à plat ;
  • Device Motion : la base est quand l’appareil est à plat ; côté UX, le shake pourrait être utilisé pour retourner à la page d’accueil ;
  • Proximity : la valeur va de 0 à 5 ;
  • Light Ambiant : la valeur va de 0 à 1000 ou en trois valeurs (Dim/Bright/Normal), en fonction de l’implémentation ;
  • User Media : permet de récupérer l’audio ou la vidéo
  • Vibration : côté UX, cela permet de donner un feedback à l’utilisateur ;
  • WebSpeech : permet de faire parler votre appareil mais uniquement avec Chrome pour l’instant.

Présentation : http://blog.binomed.fr/binomed_docs/Prezs/SensorsHTML5/
Vidéo : https://www.youtube.com/watch?v=70YjbmY4Xdg
Orateur : Jean-François GARREAU (Twitter : @jefbinomed)

HTML5 Gaming

Cette atelier était le but de réaliser un petit Sonic en 2D et en HTML5 avec Javascript sans fioritures.
Pour cela, on utiliser la GamePad API pour contrôler Sonic avec une manette de jeu, la WebAudio API pour contrôler les sons. Pour l’affichage, on va utiliser un canvas, et les Promises Javascript pour le chargement des images.

Présentation : …
Lien : http://blog.sii-ouest.fr/sonic-2-en-html5/
Vidéo : …
Orateur : Alan MENANT

Démarrer avec Docker

Docker permet de gérer facilement des conteneurs. Ils peuvent contenir n’importe quoi, mais ne lancent qu’un processus. Mais ils sont dépendant de l’environnement hôte. En fait, par défaut, on télécharge des images. Ces images peuvent être modifiés et quand on sauvegarde le conteneur, cela ne sauvegarde que le différentiel par rapport à l’image initial.

Présentation : …
Vidéo : …
Orateur : Sébastien DOUCHE (Twitter : @sdouche)

WebRTC : Real Time Communication

WebRTC est une technologie Web permettant de communiquer avec de l’audio et de la vidéo ou d’autres types de données.
Cette technologie s’utilise en trois étapes :

  • getUserMedia : permet de récupérer le stream audio/vidéo à capturer ou l’écran, l’onglet ou la webcam ;
  • RTCPeerConnection et Signaling : permet de voir ce qu’offre comme technologie la personne en face, et ce qu’on lui propose ;
  • RTCDataChannel : permet d’avoir un canal de communications de données (binaire ou textuelle) entre deux appareils.

De nombreux outils sont à disposition pour utiliser WebRTC. Mais attention, un maximum de 12 PeerConnection sont disponibles entre deux ordinateurs.

Présentation : http://blog.binomed.fr/binomed_docs/Prezs/WebRTC/
Vidéo : https://www.youtube.com/watch?v=XMO7gaICXow
Orateur : Jean-François GARREAU (Twitter : @jefbinomed)

Délivrer en continu avec VSO et Windows Azure

La différence entre délivrer en continu et déployer en continu est que dans le cas d’un livraison, cela se fait avec un bouton Push, alors que dans le cas d’un déploiement, cela se fait sans. Le but est de faire cela avec l’Application Life Management (A.L.M.) de Windows : Visual Studio Online. Pour informations, VSO est gratuit jusqu’à cinq utilisateurs.

Présentation : …
Vidéo : https://www.youtube.com/watch?v=V4eFXjQj1WQ
Orateur : François BOUTERUCHE (Twitter : @fbouteruche)

Conclusion

Le BreizhCamp par rapport à celui de l’année dernière s’est beaucoup amélioré : assez à manger pour les rescapés des dernières conférences, les stands sont beaucoup plus intéressants, les entreprises sur ceux-ci plus ouvertes à la discussion (enfin, je trouve) et la manière de voter actuelle est beaucoup mieux que les anciennes feuilles de vote. Mais bon, encore quelques améliorations sont à noter : un peu plus de Web (et de PHP ;)) et surtout un plus grand accueil car on se sent oppresser avec le nombre de personnes et les stands. BreizhJug, encore merci 🙂

D’autres points de vue :

[EDIT du 2014-06-10 à 09h40] Ajout du lien vers le workshop sur MongoDB

Commentaires

1. sebprunier, le 9 juin 2014 à 10:48

Merci pour ce retour !

Concernant le workshop MongoDB, il n’a pas été filmé donc il n’y aura rien sur Parleys. En revanche tout est sur Github : https://github.com/tgrall/mongodb-workshop

Sébastien.

2. Nicolas, le 9 juin 2014 à 10:57

La taille des locaux l’ISTIC est un réel problème, mais on a rien trouvé de mieux, et on a mis 4 ans pour établir une confiance réciproque qui nous donne de nombreuses facilités (il n’y aurait pas eu de wifi sinon), donc c’est … compliqué

3. Progi1984, le 10 juin 2014 à 09:38

@sebprunier : Merci pour ton retour. J’ai mis à jour l’article pour intégrer ton lien.

4. Progi1984, le 10 juin 2014 à 09:39

@Nicolas : Merci de ton retour sur la taille des locaux, et je comprends totalement votre position. Merci encore pour toute cette organisation.

5. Guyard Marc, le 10 juin 2014 à 14:29

Sympa, surtout la parti Symfony qui m’interesse beaucoup en ce moment.

Ajouter un commentaire

Commentaire :