Retour sur l'édition 2018 du FOSDEM, l'un des plus grand événements d'europe consacrés à l'open source

Le FOSDEM, le plus grand rassemblement européen sur l’open source, s’est terminé le 4 février. Nous avons pu assister à une quarantaine de sessions sur les 678 qui y étaient donnés. Le rythme était effréné et les salles souvent pleines.

L’amphithéatre Janson peut accueillir 1500 personnes et il est plein

3 tendances nous ont marqué par rapport à l’édition de 2017.

1. La communauté Open Source s’empare des pratiques et des solutions que proposent les fournisseurs de cloud. Kubernetes se pose en tête de pont pour fournir des services équivalents.

2. La curiosité de la communauté sur les langages bas niveau de dernière génération tel que Go et Rust est palpable. Ces langages font leur preuve dans des systèmes complexes comme des bases de données, ou des services d’infrastructure, … Les conférences sur la manière de les mettre en oeuvre ont fait salle comble.

3. L'intérêt de la communauté est toujours fort sur des produits matures comme FreeBsd, Postgresql, ... Cette année, un track de conférence a même été dédié à l’Histoire. Il se tenait dans l'amphithéâtre Janson, la plus grande salle de la conférence.

Kubernetes conquiert le monde (en commençant par le FOSDEM)

L'engouement pour Kubernetes était évident tout au long de la conférence. L'émergence d'un produit open source capable de concurrencer les solutions propriétaires des clouds publics y est probablement pour quelque chose, et la qualité évidente du produit le rend très légitime.

Des efforts pour adapter Kubernetes à tout type de charge étaient visibles lors de ce week-end. Zalando a montré dans une session très populaire le déploiement de "PostgreSQL as a Service" [1], basée sur un opérateur Kubernetes pour gérer le cycle de vie de plus de 200 clusters PostgreSQL. La capacité à construire des services managés dans un SI on-premise sur le même modèle que les acteurs du cloud (AWS RDS ou Azure SQL service) se démocratise.

Au delà des tracks sur le cloud, Kubernetes faisait aussi office de figurant dans d'autres sessions, en tant que plateforme pour du graph-processing [2], ou comme support à des tests d'intégration [3]. Difficile de dire si c'est un effet buzzword ou une vraie lame de fond, mais en tout cas la plateforme semble devenue une référence évidente pour de nombreux usages.

L’observabilité est un autre thème abordé dans plusieurs sessions [4][5]. C’est la conclusion de 2 courants parallèles rassemblés sous la même bannière, l’obsession de la Mesure dont nous parlions dans les géants du web et la maturité des nouveaux outils de monitoring comme Prometheus, ELK.

conférences

[1] Blue elephant on-demand: Postgres + Kubernetes - Oleksii Kliukin / Jan Mussler

[2] Analyzing Blockchain transactions in Apache Spark - Jiří Kremser

[3] Building an integration testing framework - Grzegorz Bizon

[4] Observability: not just an Ops thing - Christine Yen

[5] Google’s approach to distributed systems observability for Go - Jaana Dogan

Go a trouvé un public pour le développement de services cloud. Rust sort de l’ombre.

Les librairies et l’outillage de Go gagnent en maturité. Des patterns émergent. L’écriture d’une extension Kubernetes se fait en Go par exemple [6]. Même si le langage est de “bas niveau”, il est accessible à une grande partie de développeurs.

développer en Go une extension kubernetes de monitoring d’événement [6]

Hashicorp utilise Go pour le développement de ses outils comme Consul, Terraform ou Vault. Ils contribuent à démocratiser le langage. Ils ont par exemple publié la librairie Memberlist pour gérer le problème complexe du consensus sur un cluster d’un même service [7]. Ce type de librairie permet de bootstrapper un service qui fonctionne en cluster sans utiliser une brique de service discovery comme Zookeeper ou Consul.

Une dev room Rust est apparue cette année, particulièrement adaptée aux early adopters. On y voit les personnes importantes de la communauté. Au vu des conférences (neon + wasm), on voit que le sweet spot de Rust se trouve autour de l'extension de runtimes et l'interopérabilité, mais que la communauté reste encore confidentielle.

conférences

[6] Declarative Extensions for Kubernetes in Go - Roman Mohr

[7] Building and testing a distributed data store in Go - Matt Bostock

[8] Rust - embedding WebAssembly for scripting - Frank Rehberger

[9] Writing Node.js Modules in Rust - Farid Nouri Neshat

Les produits open source dans la durée

Plusieurs produits Open Source ont une histoire qui remonte à plus de 30 ans et continuent d’évoluer. Il n’est pas question de refonte ou de rupture. Diomidis Spinellis propose de regarder les évolutions sur 40 ans qui nous ont conduit de Unix à FreeBSD. Elles sont riches d’enseignements [10].

une fonctionnalité ou un concept peut changer de rôle au fur et à mesure du temps. [9]

Postgresql, malgré ses 30 ans, est cité à maintes reprises. Plusieurs sessions sont consacrés à la résilience et aux mécanismes sous jacent [11][12]. Un autre signal, Open Street Map avec 850Gb [13] au compteur recommande toujours Postgresql comme base de stockage.

Une autre particularité dans le design des produits open source nous a semblé intéressante. La pertinence de la solution technique n’est pas le premier critère. La facilité de compréhension du code et la motivation du porteur de la solution sont clés. L’histoire de l’intégration de systemD dans différentes distributions comme Debian et Suse offre une bonne illustration de ces compromis dans le processus de décision [14].

l’infrastructure et les logiciels développés pour organiser le FOSDEM sont libres. Les dashboards de monitoring sont accessibles à tous également. [15]

conférences

[10] Unix Architecture Evolution from the 1970 PDP-7 to the 2018 FreeBSD - Diomidis Spinellis

[11] PostgreSQL Replication in 2018 - Magnus Hagander

[12] The Fabulous Destiny of 0000000200000008000000BB - Patrick Francelle

[13] Building OSM based web app from scratch - Nils Vierus

[14] Distributions are not democracies - Stefan Knorr

[15] FOSDEM Infrastructure Review - Richard Hartmann

Retour sur ces 2 jours

Le mode de fonctionnement du FOSDEM en fait une exception dans le milieu des conférences européennes. Avec plus de 600 sessions sur 2 jours, les communautés majeures sont représentés et le public est tout aussi hétéroclites. L’esprit est collégial.

le stand d’O’Reilly est couvert de livres passionnants. Il ne faut pas compter payer par carte bleue, le réseau gprs sur lequel s’appuie le terminal de carte est saturé à cause du nombre de participants

Certains sujets émergent au fil des sessions au delà de leur track d’origine. Les bénéfices et les opportunités de Kubernetes, ou l’usage de Go, sont abordés par plusieurs speakers au delà des tracks qui leur sont consacrés.

Si il y a une idée à garder de notre présence à cet événement, c’est que le cloud est un sujet trop sérieux pour être laissé aux seuls géants du marché, même si leur offre est d’excellente qualité. Avec Kubernetes, la communauté open source a trouvé une voie pour démocratiser les pratiques autour du cloud comme l'auto scaling, les services managés, la gestion de capacités.

Aujourd’hui, une DSI peut désigner une stratégie cloud plus ambitieuse et moins risqué sur le long terme. Kubernetes permet de limiter l’adhérence à un seul fournisseur cloud public comme AWS, Azure ou Google. C’est une opportunité formidable qui se dessine d’harmoniser les pratiques dans le SI internes vis à vis de celles en place chez ces fournisseurs.