Notre retour sur Touraine Tech 2019

Notre retour sur Touraine Tech 2019

Touraine Tech est une conférence technique en région centre sur les nouvelles technologies du numérique basé à Tours. C’est une conférence assez jeune, la deuxième édition, mais a déjà tout d’une grande. J’ai eu la chance d’y assister en tant que speaker pour parler de Symfony 4. La conférence dans son ensemble fut un grand succès. Les organisateurs, les speakers, ainsi que les participants étaient tous bienveillants les uns envers les autres ♥. Je vous livre ici mon compte rendu sur cet événement peu connu !

Un démarrage sur les chapeaux de roues

La keynote d’ouverture était présentée par Julien Ancelin qui est agriculteur et informaticien l’INRA. Son but : améliorer l’usage des outils de cartographie (GIS), les rendre plus accessibles et améliorer le système de positionnement.

Son premier projet est GeoPoppy, un outil numérique OpenSource LowCost pour l’acquisition et la consultation de données géolocalisées (ou dit Geomatic : géographique + informatique). Il s’installe dans des containers Docker sur un Raspberry Pi, ce qui permet d’utiliser des outils de cartographie même sans internet en « zone blanche ». Cet outil est utilisé en France par les chercheurs mais aussi à l’étranger comme en Côte d’Ivoire pour enrayer la déforestation. Il utilise PostgreSQL, que j’affectionne beaucoup, avec l’extension PostGIS ainsi que d’autres briques open source (qgis, lizmap).

Les utilisateurs de cette solution trouvent cela contraignant d’avoir à prendre un Raspberry Pi sur le terrain, j’ai donc testé l’installation de la stack Docker sur mon téléphone et ça marche !

Ce n’est pas encore en production, mais peut-être qu’un jour, GeoPoppy sera sur les téléphones des chercheurs 😍.

Son deuxième projet est centipede. De base, un équipement GPS a, comme un téléphone, une résolution de plusieurs mètres. Impossible donc de faire des relevés très précis dans un champ et encore moins d’automatiser le pilotage d’un tracteur. Il existe cependant une technologie nommée RTK permettant d’atteindre une précision au centimètre près. Le principal problème étant le coût des équipements et les abonnements nécessaires. Julien a donc décidé de tout refaire en Open-Source. Via Centipède, une base RTK passe d’environ 15000€ à 500€ et sans abonnement. Ça ne vous parle pas ? Regardez le résultat. Bonus : Il a pu automatiser la conduite de son tracteur avec du matériel équivalent à des Raspberry Pi !

Vous l’aurez compris, j’ai été complètement séduit par cette keynote d’ouverture. Et le reste de la journée a continué sur la même lancée.

Un service HTTP en rust ?

Francois Teychene a ensuite pris la relève avec une séance de live coding sur Rust. Pour rappel, Rust est un langage de programmation bas et haut niveau à la fois. Ses performances sont très proches du C. Cependant, il est beaucoup plus simple et sage que ce dernier : impossible d’avoir un « null pointer exception ». Rust est souvent associé à un langage pour faire des outils bas niveau, comme pour patcher ou étendre le Kernel Linux. Que nenni ! Il est tout à fait possible de faire des applications haut niveau. L’application de démo a pour but de sélectionner au hasard un ou plusieurs participants à une conférence de manière aléatoire pour gagner un cadeau à travers une interface web. Ce projet simple est pourtant très complet : client web pour récupérer les participants, serveur web, cache, gestion de la concurrence. Sa conclusion : Faites du Rust 😎

Comment faire de la domotique ?

Pour finir la matinée, Sébastien Laporte nous a présenté son système domotique. Utilisant différents composants domotiques grand public, il est un peu compliqué d’arriver à tous les gouverner via un seul outil. Plusieurs systèmes existent dans cette optique, comme Jeedom, Home Assistant ou encore Domoticz. C’est ce dernier que Sébastien a retenu pour monter sa propre stack. Mais comme l’interface de domoticz n’est pas très jolie, il a utilisé Actions On Google. En bonus, il a le contrôle vocal via différents Google Home. Actions On Google ne peut cependant pas communiquer directement avec Domoticz. Sébastien a donc développé une application Java à l’aide de Spring Security pour s’interfacer entre les deux composants. Et quitte à utiliser Google, il déploie son application sur Google Compute Engine.

Il fût alors temps de prendre une pause repas bien méritée. Je me suis régalé avec les fouées et le fameux Sainte Maure de Touraine. Je manque peut-être d’objectivité étant moi-même Tourangeau 😁.

ma-fouée

Le Machine Learning pour les Nuls

Pour bien débuter l’après midi, Jean-Francois Garreau nous a présenté Cloud AutoML. C’est un service de Google qui permet de commencer en douceur avec le Machine Learning pour celles et ceux qui ne sont pas Data Scientist. Pour sa démo, il a uploadé environ 1500 photos de train, réparties en catégories de 200 photos. Après un entraînement de 15 minutes, via un simple upload de photos, le programme était capable de dire si le train sur la photo est un TGV, un TER, un Tram, etc. L’utilisation nous a paru très simple, mais le résultat était bien là.

Istio, un outils nécessaire à K8S

Kevin Davin nous a ensuite présenté Istio. Vous utilisez Docker en production ? Vous utilisez sûrement Kubernetes. Alors il vous faut Istio ! C’est un outil qui permet de gérer les connexions, la sécurité, le contrôle, l’observabilité ou encore le debug de votre infrastructure. Istio vient ajouter un proxy à côté de chacun de vos services. Tout le trafic, entrant et sortant, de vos services passe à travers ce service. Cela devient un jeu d’enfant de monitorer, load-balancer, ab-tester, rate-limiter, dupliquer le trafic, etc. De plus, Istio vient avec plusieurs outils de monitoring : Grafana (que j’adore) qui se reconfigure automatiquement en fonction de l’infra, Kiali pour observer la topologie de votre infra et le trafic en temps réel, un système de tracing distribué et une interface avec différents systèmes de log comme fluentd / ES / Kibana. Si vous utilisez GCE / StackDriver vous êtes à un clic de bénéficier d’Istio car il est supporté par défaut. Durant sa présentation, Kevin nous a appris qu’il ne recommande pas la containerisation des services de stockage (PostgreSQL, …) pour plus de fiabilité.

La reconnaissance vocal sans les GAFA

Pendant la digestion, Michaël Bitard nous a présenté avec beaucoup d’humour le contrôle vocal sans les GAFA. Après un bref rappel sur pourquoi le contrôle vocal via les GAFA est dangereux pour sa vie privée, il nous a présenté différents outils pour avoir une solution relativement open source, home made et surtout offline. Les projets à retenir sont snips pour faire la partie Wake Word (OK google), ASR (Automatic Speech Recognition), et NLU (Natural-language understanding). Snips n’est pas open source, mais il vous génère du code que vous pouvez ensuite utiliser de manière offline. Enfin, la dernière partie qui consiste à réagir aux intentions sera à coder vous-même dans votre langage préféré. On s’interfacera avec Snips, en local je le rappelle, via un channel MQTT. Ce que nous pourrons retenir en plus de cette conférence est qu’il ne faut pas lésiner sur la qualité du microphone et que pour le moment, les GAFA ont une longueur d’avance sur la reconnaissance vocal. Cependant, Mozilla, grâce à son projet Voice pourrait devenir le nouvel outsider open source.

API, et si le problème était ailleurs ?

Francois-Guillaume Ribreau a commencé son talk avec un rapide rappel sur RPC, REST, GraphQL pour se poser la question suivante : “Et si le problème était ailleurs” ? En effet, nous dupliquons très souvent du code entre notre couche d’API et notre modèle de données en base de données. Et si nous pouvions déplacer tout ce code dans la base de données directement ? Cela peut paraître choquant, mais en utilisant les bons outils c’est possible. Avec l’aide de PostgreSQL, PostgREST et openresty (on avait déjà blogué à ce sujet en 2014 😎). Avec ce pattern, PostgreSQL va contenir un schéma public (view et trigger) qui sera exposé en HTTP par PostgREST. Pour ajouter de la flexibilité, comme effectuer des pré-traitements sur la requềte ou des post-traitements sur la réponse, nous pourrons utiliser openresty. Enfin, pour réagir aux interactions (comme envoyer un email après une inscription), nous utiliserons la fonction notify de PG qui poussera les données dans RabbitMQ. J’ai personnellement toujours eu envie de monter ce genre de stack, mais je n’ai jamais osé. Cependant, Francois-Guillaume utilise ce pattern en production et nous assure qu’il fonctionne très bien. Subzero est une collection d’outils qui vous permettra de faciliter la mise en place de cette stack. Cerise sur le gâteau, grâce à hasura, vous aurez une API GraphQL ! Un autre outil que j’ai pu découvrir est apgdiff qui permet de faire des diffs de version de DB.

Une jolie histoire

Et pour finir en beauté, Nicolas Lepage nous a raconté une histoire « Au pays des Gophers à partir de 3 ans ». D’une manière très ludique et graphique, il nous a expliqué comment fonctionnait Go. Cette conférence est initialement une comptine qu’il utilise pour endormir ses enfants. Bien que cette conférence expliquait le coeur de Go (go routine, runtime, thread, …) elle était très accessible a des enfants pour qui un go routine est un simple animal dessiné qui se balance dans un monde imaginaire.

Conclusion

Touraine Tech était vraiment une super conférence avec des sujets très variés. J’ai dû faire beaucoup de choix difficiles, entre les 3 tracks en parallèle, pour sélectionner les talks auxquels je voulais assister. Je remercie encore une fois les organisateurs et les speakers pour tout leur travail. Et je remercie aussi les participants pour leur bonnes humeur. Je pense que j’y retournerais sûrement l’année prochaine.

En tant que speaker, je me suis senti tout de suite à l’aise dès la soirée speaker au crafty brewpub qui était vraiment cool. Un bar / micro-brasserie 🍻, j’étais déjà conquis d’avance. Et nous avions sur scène un petit retour sur notre timing 😍

speaker-feeback

blog comments powered by Disqus