fermer
Développement

DevFest Nantes 2016 : retrouvez le live des conférences du 9 et 10 novembre

BlogNT 2016 nov. 09
DevFest 2016

Comme je vous l’ai présenté il y a quelques jours, le GDG Nantes organise son traditionnel DevFest. Cet événement qui connait une reconnaissance dans tout l’hexagone vient d’officiellement ouvrir ses portes !

Attendu à la Cité des Congrès de Nantes du 9 et 10 novembre, le DevFest Nantes 2016 va permettre de mettre en avant de nombreuses technologies, et des sujets d’actualité qui gravitent autour de l’écosystème de Google, mais pas que…

Pour cette 5e édition, l’accent sera mis sur les nouvelles technologies et l’innovation, où le cloud, le Web, le mobile et l’IoT seront au cœur des conférences. Labellisé « NantesTech », et soutenu par Google, Mozilla, GitHub, et plus d’une vingtaine de partenaires locaux, les conférences vont s’enchaîner dans les salles de la Cité des Congrès.

Un programme très alléchant

Cet article a pour vocation de faire suivre ces deux jours avec mes différentes notes prises lors des conférences que je vais suivre, mais également les codelabs.

Mercredi 9 novembre

Keynote d’ouverture / Opening keynote

EZRA (Vincent CHTAÏBI), directeur artistique d’Organic Orchestra, et reconnu du beatbox international, est monté sur la scène pour la keynote d’ouverture pour présenter une petite prouesse artistique musicale à l’aide d’un gant “connecté” doté de multiples interrupteurs pour contrôler des pistes, piloter le son, etc. Il a montré comment il est possible d’utiliser ce gant pour contrôler autre chose que la musique, comme les dispositifs de la domotique, ou encore la vidéo ! Le code source sera ouvert au grand public !

GraphQL vs Falcor

  • REST / GraphQL / Falcor
    • REST : GET sur une URL (données reçues en JSON)
    • GraphQL : “on passe les clés en JSON, ça retourne les données en JSON”
      • Facebook
      • un langage pour écrire des requêtes
      • un interpréteur côté serveur
    • Falcor
      • Netflix
      • Un dialecte JSON pour écrire des requêtes
      • une lib client/serveur
    • GraphQL est un nouveau langage contrairement à JSON, typage statique, pas de cache en natif, bonne adoption
    • Bilan
      • REST & RPC : impact du serveur
      • Flacor & GraphQL : sélection des champs, join naturel
  • Écosystème
    • RPC : simple et familier
    • REST : tri à faire
    • GraphQL : en ébullition
    • Falcor : l’avenir nous le dira

Cloud patterns

  • Les services “managés” sont en vogue : on va se concentrer sur le développement de notre application
  • Aujourd’hui, il faudrait que toute application soit dans un container
  • IaaS : OS imposé (choisi dans un catalogue)
  • CaaS : Container imposé (docker / rocket)
  • PaaS : Code runtime imposé (un peu moins de liberté)
  • FaaS : Request dispatcher imposé. Amazon et Google proposent ça : exécution d’une fonction (petite portion de code) sur un serveur
  • Go est un langage promis à un bel avenir, et correspond à la philosophie du cloud
  • L’idéal du CaaS est de déployer un container lors de la réception d’une requête, puis de supprimer le container à la fin de celle-ci
  • Pour l’autocalling :
    • IaaS : complexe à mettre en œuvre
    • CaaS / PaaS / FaaS : plus simple à réaliser

Le Web de demaintenant

  • De multiples API sont très utiles dans le web d’aujourd’hui et de demain
    • Payment Request : si vous voulez améliorer le processus d’achat de votre application Web
    • Web Speech : reconnaissance vocale
    • Web Bluetooth : une API toujours très utile pour contrôler vos dispositifs Bluetooth (uniquement accessible en HTTPS)
    • Physical Web : une notification est envoyée à tous les dispositifs contenant l’URL de l’application cible
    • WebNFC : vous pourrez facilement lire / écrire simplement par une URL
    • WebUSB : vous allez être en mesure d’accéder au périphérique nativement sans passer par un driver

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

  • Standard pour la “containeurisation” : Open Container Initiative
  • Attention ! accès Docker = accès root
  • Docker
    • RunC : runtime
    • “process” container(s) : “architecture micro-service”
    • Docker dans docker : “side cars” : mode privilégié
    • Introspection “future docker”
  • LXD : lancer un daemon docker dans son container (uniquement disponible dans Ubuntu)

Coder ses applications iOS et Android en Go

  • Go Mobile : développer des applications mobiles Android et iOS en Go
    • gomobile build : Go + OpenGL (2 binaires)
      • parfait pour les jeux => OpenGL
      • mutualiser du code
      • limitations : collections (mais JSON, FlatBuffers, …)
    • gomobile bind : une partie de l’application codée en Go
      • accès à une fonction définie en Go, et accessible en Java, Objective-C ou Swift

Un PaaS pour votre équipe en 20 min

  • Dokku
    • une seule machine
    • nginx => envoi la requête au container
    • pleins de plugins
    • Gère Buildpacks et Dockerfile
    • Possibilité de lier les applications entre elles

Fin de la première journée, rendez-vous demain !


Jeudi 10 novembre

Angular2 et les standards du web

  • Angular2 est avant tout une plate-forme composée multiples modules
  • Plusieurs fonctionnalités se basent sur des standards
  • Les pipes d’Angular2 permet d’effectuer des transformations directement dans le template
  • Angular2 Translate permet de traduire des chaînes de caractères
  • Décorateurs permettent d’ajouter des métadonnées à des objets
  • Chrome a 2 stacks : une principale pour toutes les tâches synchrones, et l’autre pour toutes les tâches asynchrones
  • La “stack asynchrone” est uniquement exécutée à la fin de la “stack principale”

Firebase et Google Cloud Functions : vos applis sans serveurs / “serverless”

  • Pyramide des *aaS chez Google
    • IaaS : Compute Engine
    • PaaS : App Engine
    • BaaS : Firebase : suite d’outils pour les développeurs
    • FaaS : Cloud Functions : idéale pour les microservices
    • SaaS : G Suite
  • Primitives Firebase : voici les fonctionnalités de base
    • base de données temps réel
    • authentification
    • stockage
    • hébergement
    • notifications
  • Firebase Authentication
    • thème personnalisable
    • administrable
    • plusieurs comptes supportés : Facebook, Google, Email, etc.
  • Firebase Storage
    • enregistrer dans Google Cloud Storage de façon authentifiée / sécurisée
  • friendly-pix : un “Instagram Like” pour montrer les services de Firebase

Jenkins & continuous delivery pipeline : ce n’est pas toujours un long fleuve tranquille

  • Les pipelines Jenkins sont l’avenir des déploiements
  • Possibilité de paralléliser les tâches
  • Jenkins sait mettre les jobs en attente
  • Gestion de la concurrence des stages Pipeline
  • La Concurrency Rule saute les builds
  • Blue Ocean UI => nouvelle interface additionnelle très centrée “pipeline”
    • développée en REACT
    • release en stable en mars 2017
  • Pipeliene : très orienté Git

Mixité dans le monde des webcomponents

  • Web Components
    • 4 spécifications : apprendre au navigateur les nouvelles balises
      • Custom Element plus important : création d’un nouvel élément HTML
      • Shadow DOM : encapsuler la DOM dans le composant, sans que l’utilisation ne la voit
      • HTML Imports : <link re="import" ... > : ‘notion de package”
      • Template
    • la force est de créer des composants

Ingest node : (ré)indexer et enrichir des documents dans Elasticsearch

  • Elastic Stack
    • Elasticsearch : indexation et la recherche des données
    • Kibana : restitution et l’analyse de données en temps réel
    • X-Pack : partie propriétaire (modules sécurité, alertes, monitoring, reporting, graph)
    • Elastic Cloud
  • Elasticsearch 5.0.0 sortie en octobre
  • Ingest Node
    • enrichir la donnée avant de l’envoyer dans Elasticsearch
    • utilisable dans :
      • API Bulk : pour envoyer massivement des fichiers
      • API Reindex
    • le projet BANO couplé à Elasticsearch permet de rechercher précisément des adresses en fonction de critères de recherche
      • Bano ingest plugin

Construire une station météo en NodeJS avec un Raspberry PI et un Arduino

  • Firmata pour Arduino : protocole pour des communications avec des logiciels sur l’ordinateur hôte
  • Johnny-five : lib Node.js s’interfaçant avec Firmata
  • Pour l’affichage
    • Influxdb
    • Grafana
    • ils sont déployés sous forme de conteneurs Docker
Tags : DevFestNantes
Yohann Poiron

The author Yohann Poiron

J’ai fondé le BlogNT en 2010. Autodidacte en matière de développement de sites en PHP, j’ai toujours poussé ma curiosité sur les sujets et les actualités du Web. Je suis actuellement engagé en tant qu’architecte interopérabilité.