Note

This post is written in french, as it was, at first, targeted for another support. I apologize for the people who do not speak the language.

A propos de la dotScale

Lundi 24 avril se tenait la cinquième édition de la conférence dotScale qui se décrit elle-même comme étant la tech conférence Européenne sur la “scalabilité”. Cette conférence se veut être le “TED” des informaticiens. Elle se déroule dans le prestigieux théâtre de Paris. Les orateurs se succèdent pour des présentations d’une vingtaine de minutes maximum. Les conditions sont donc réunies pour mener les geeks et autres professionnels au plus profond des sujets évoqués. D’ailleurs, les ordinateurs sont bannis (c’est une conférence wireless-less). Le rythme est cadré et maîtrisé par les organisateurs. Bref, on se laisse guider.

Cette année encore les orateurs étaient prestigieux.

La “tradition”

Inspirée de “TED”, chaque conférence “dot” débute par une tradition. Il s’agit de se présenter rapidement à son premier voisin inconnu. Je ne vais pas m’étendre sur le bienfait d’un tel acte, mais c’est quelque chose qui vaut la peine d’être fait.

Les conférences

Neha Narkhede - The rise of real time

La première conférence fût donnée par Neha Narkhede.

L’introduction part d’un constat.

Les données gérées par les entreprises ont souvent été regroupées en blocs de travail pour qu’ils puissent être traités au mieux (en comptabilité, on parle par exemple “d’arrêter les comptes”). Ce mode de fonctionnement, copié par l’informatique a donné lieu aux traitements “batchs” Le problème est que ce mode de traitement n’est, de nos jours, plus du tout adapté au flux de données de plus en plus important.

Alors que faire ? Une version plus rapide ou plus efficace de ce qui a été fait jusqu’à lors ? Probablement pas.

L’idée est désormais de traiter le flux de données et non les données elles-mêmes.

Neha Narkhede est co-créatrice du projet Apache Kafka qui est un système de messaging realtime. C’est le système utilisé par linkedin et il est capable de traiter 1,4 milliard de message par jour. Elle explique dans les minutes qui lui restent, comment kafka permet d’urbaniser les services en faisant transiter des messages qui transportent de l’information. Puis elle présente son produit confluent qui est une plateforme de streaming de données qui se base sur kafka.

Le produit semble intéressant, mais l’idée l’est plus encore: traiter un flux de données à tous les niveaux, de l’applicatif aux logs (tel que c’est décrit dans les 12factors d’ailleurs).

Adrian Cole - Observability 3 ways / Logging, Metrics, Tracing

On reste dans le flux de données et le realtime avec la présentation d’Adrian Cole (Lead Developer du projet Zipkin). Il est 11h, c’est la seconde conférence, et on constate déjà que les problèmes de scalabilité de “2017” tournent autour de la quantité de données qui peuvent transiter entre les éléments d’une application distribuée.

Zipkin est un système de tracing distribué. Son rôle est de collecter des données horodatées pour analyser les problèmes des architectures microservices.

Adrian présente ici 3 techniques différentes de collectes qui permettent aux ingénieurs d’avoir la vision totale de l’activité d’une plateforme de production:

  • Logging
  • Metrics
  • tracing

On retrouvera des détails de ces principes sur le blog de Peter Bourgon

Dans sa présentation, Adrian expliquera comment mettre en place ces principes et avec quels outils.

Mitchell Hashimoto - Scaling security / Grow without compromising security

Mitchell Hashimoto est le fondateur de la société Hashicorp. Hashicorp est l’éditeur d’un très grand nombre d’outils reconnus pour leur utilité dans le cloud et le monde devops. On pourra citer par exemple:

  • Vagrant
  • Terraform
  • Consul

Le sujet exposé aujourd’hui concerne la sécurité. Mitchell commence par replacer la scalabilité dans un contexte DevOps. C’est le Pourquoi. Ainsi il explique que le modèle traditionnel fait passer le travail du développeur à l’ops, et de l’ops à la production. Le DevOps a permis une paralellisation des tâches. Ainsi Dev et Ops travaillent de consort pour livrer en production.

Mais quid de la sécurité. Selon Mitchell Hashimoto, trop souvent la sécurité se place en “poseur de veto” entre les “DevOps” et la mise en production.

Il propose une organisation SecDevOps. Le produit Vault est un outil qui pourrait aider à mettre en place une telle organisation.

Ulf Adams - Build and test performance at scale

Quand on parle de systèmes “scalables”, c’est souvent pour évoquer les environnements d’exécution des applications. Les systèmes distribués sont conçus pour permettre la tolérance aux pannes ainsi que l’efficacité (équilibrage de charge, CDN, …)

Ulf Adams expose ici une autre problématique de scalabilité: la “construction” de l’application.

En effet, Google dispose du plus gros écosystème logiciel de la planète. Il est de plus connu que Google utilise un repository monolithique pour versionner ses sources. Construire et jouer les tests unitaires de cet écosystème est de ce fait un défi.

Pour répondre à cette problématique, Google a développé un logiciel spécifique: Blaze. En 2015, Google a rendu open-source le coeur de ce logiciel sous le nom de Bazel.

Ulf expose succinctement comment Bazel détecte les changements et se charge de ne reconstruire que ce qui est nécessaire de manière concurrente.

Pour ma part, je ne connaissais pas Bazel. Ainsi donc la conférence a été une excellente introduction sur l’outil.

Marco Slot - Scaling out (Postgre)SQL

Marco Slot pose le constat suivant:

Quand il s’agit de bases de données et de scalabilité, on ne dissocie jamais les deux termes suivants: No et SQL. En effet les bases de données NoSQL sont nées pour répondre au besoin de scalabilité des entreprises.

Cependant, il est tout à fait possible de rendre pleinement scalable une architecture SQL classique. Ainsi, en expliquant l’architecture modulaire de PostGres et en la faisant converger avec un modèle arithmétique, Marco explique comment il est possible de mettre en place une architecture “SQL” résiliente et scalable.

La démonstration est réussie

James Cammarata - Keep calm and automate all the things

James Cammarata est le “lead maintener” du projet Ansible. Il fait ici l’apologie de l’automatisation (mais est-il encore besoin de le faire). Là où James insiste, c’est qu’il faut s’astreindre à respecter les règles de l’art en matière d’automatisation:

  • Tout automatiser (tout!)
  • Utiliser les fonctions natives des outils lorsque c’est possible, et c’est souvent possible (éviter les appels à sudo rm dans les playbooks par exemple)
  • Préfixer les variables pour éviter le désastre du sudo rm -rf ${foo}/${bar}

En bref:

Keep calm and automate all the things

Autre info : le produit Tower est planifié pour être rendu opensource par la société RedHat qui possède le projet Ansible.

Aish Raj Dahal - Chaos management during a major incident

Une partie sur la gestion d’incidents. L’idée est de présenter comment PagerDuty gère les incidents. Cette présentation s’adresse plutôt aux développeurs, car les “Ops” savent normalement gérer ce genre de situation. On note quand même le principe du blameless dont on entend de plus en plus souvent parler.

Leur système de gestion s’inspire de FEMA.

Andrew Shafer - DevOps

Andrew Shafer est un “Jedi” du DevOps. C’est également un présentateur excellent.

Bien évidemment son exposé par du devops et de l’automatisation. Je retiens particulièrement :

  • L’automatisation ce n’est pas un humain qui utilise des outils (tels que Puppet ou Ansible par exemple). L’automatisation c’est un Robot qui fait le travail.
  • Il faut lire le livre de Google sur le SRE (le lien est plus bas dans ce post). Le SRE est l’ingénieur qui développe les automates. Il n’est pas l’automate.

En tout état de cause, dès que les vidéos seront publiées, je vous recommande d’aller voir celle-ci.

Clay Smith - Searching for the server in serverless

Clay Smith pose la question de la latence dans les architectures “serveur-less”. Il expose ainsi les recherches qu’il a faites autour de Lambda (aws). Il montre de prime abord comment il a réussi à obtenir des informations sur l’environnement d’exécution du code (accès via SSH depuis le lambda vers une autre machine avec tunneling).

Clay expose un ensemble de graphiques qui affiche clairement un signal. Ce signal lui permet d’émettre certaines hypothèses quant-à l’algorithme possible d’attribution des environnements lambda sur AWS.

Bien qu’elle semble peu utile de prime abord, la démonstration met en exergue certaines problématiques du “serverless” à savoir le temps de démarrage des applications qui est non constant.

David Mazieres - The Stellar Consensus Protocol

Il va être difficile de résumer le “talk” de David Mazieres.

David a survolé les détails des algorithmes de consensus jusqu’à arriver au produit stellar. Il va m’être difficile de résumer ici son talk car je n’ai pas tout saisi. Le sujet mérite une revue de la conférence et une introduction approfondie du sujet.

Si vous voulez pousser l’étude, la description complète du protocole se trouve ici.

Conclusion

Le pari de faire des conférences techniques plus “inspirantes” que “geek” est difficile. Chaque conférence dot est selon moi un bel exemple en la matière.

Concernant cette édition particulièrement, je noterai que tous les “talks” reflètent le savoir-faire et les bonnes pratiques actuelles de grandes sociétés ou de produits “à la mode”. Beaucoup de concepts font écho avec les concepts énoncés dans l’ouvrage Site Reliability Engineering - How Google Runs Production Systems d’ailleurs souvent cité dans de tels évènements.

Il y a donc beaucoup de choses intéressantes à tirer de ces conférence, bien au-delà des aspects techniques. Tout comme les conférences TED, elles permettent une ouverture d’esprit ainsi qu’un regard critique sur notre activité au quotidien, que l’on soit, Ops, Dev ou Consultant.

Pas besoin d’être une startup pour profiter de ces conseils, et les problématiques que rencontrent les conférenciers sont en grande partie les mêmes que celles que rencontrent nos clients.

Les vidéos des conférences seront mises en ligne ici: https://www.dotconferences.com/talks.