Références

Vous trouverez ci-dessous quelques références à des missions confiées à Debamax, ainsi que les références personnelles et professionnelles de Cyril.

Missions Debamax

Les références ci-dessous ne sont que quelques exemples de missions menées par Debamax, pour des clients acceptant de mentionner leurs besoins ainsi que la façon dont ceux-ci ont été adressés. Des retours d'expérience sont également publiés dans la section blog du site (en anglais uniquement pour le moment).

Tails (The Amnesic Incognito Live System) — Dépôts APT « congelables » (2015-2016)

Debamax a travaillé sur le système d'exploitation Tails, à la fois sur ses infrastructures de compilation et d'hébergement. Le but était de poser les fondations permettant à terme d'obtenir une compilation reproductible des images ISO fournies par le projet ; cela impliquait de mettre en place un mécanisme de gestion d'instantanés (snapshots) pour différents dépôts Debian, ainsi que de faire évoluer le système de compilation pour générer un manifeste des paquets utilisés pendant la compilation. >> Découvrir cette mission en détail sur le billet dédié [en anglais].

Société parisienne — Mise à niveau Debian (2016)

Le besoin initial consistait en la coordination de la mise à niveau de Debian oldoldstable (Squeeze) à stable (Jessie) sur plusieurs milliers de systèmes. Les premières investigations ont montré que des configurations très différentes existaient sur des systèmes qui auraient dû être plutôt similaires.

Cela a conduit à une approche itérative visant à réduire ces configurations dites « flocons de neige » (toutes différentes) à deux configurations de référence (amd64 vs i386). Une procédure de mise à niveau a ensuite été élaborée, prenant en compte différents bogues dans certains paquets (issus de développements internes ou importés depuis Debian), puis vérifiée grâce à des machines virtuelles. Une fois testée avec succès sur le matériel cible en laboratoire, cette procédure a été utilisée sur quelques systèmes puis sur des groupes de systèmes de plus en plus importants, jusqu'à être généralisée sur toute la production.

Iggdrasil — Empaquetage Debian pour Ishtar (2016)

La mission consistait en l'empaquetage initial d'une application web (Ishtar), basée sur le framework Django, pour la distribution Wheezy. Cela a donné lieu à l'ouverture de plusieurs rapports de bogue, qui ont rapidement été traités par les auteurs du logiciel. Puis une séparation nette a été introduite entre le code intégré au paquet d'une part et la logique gérant la création d'une instance de cette application web d'autre part. En complément, il a fallu prendre en charge l'empaquetage initial de quelques autres dépendances qui n'étaient pas disponibles dans la distribution Wheezy.

>> Plus d'informations sur les sites dédiés : IggdrasilIshtar.

Wifirst — Intégration continue (2016)

Debamax a mis en place une plateforme d'intégration continue (CI) pour Wifirst, basée sur les composants jenkins et jenkins-debian-glue. Celle-ci permet des compilations automatisées et la génération de paquets Debian pour différents composants développés en interne, paquets ensuite mis à disposition au sein de dépôts APT. Des notifications par mail ont été configurées pour prévenir l'équipe de développement quand des erreurs de compilation sont détectées et quand elles sont résolues.

Afin de répondre aux besoins exprimés par Wifirst, différents scripts ont été développés pour permettre de gérer les compilations à la fois à partir de branches et d'étiquettes (tags) dans les dépôts git. Cela a contribué à faciliter les bascules entre les paquets de développement/test et les paquets à déployer en production.

>> Plus d'informations à propos de Wifirst sur le site de la société : Wifirst.

Wifirst — Outils de gestion de miroirs partiels (2016)

La distribution stable de Debian n'évolue pas beaucoup avec le temps, mais certains paquets changent lors des différentes mises à jour mineures (point releases). Les paquets en question ont pu être mis à disposition via l'archive contenant les mises à jour de sécurité, ou bien publiés via proposed-updates avant intégration dans stable. Ces mises à jour sont habituellement plutôt limitées, ciblées et font l'objet de relectures. Elles peuvent cependant parfois être source de perturbations ou d'incertitudes si elles interviennent en même temps qu'un déploiement critique ou une maintenance planifiée.

Une solution basée sur reprepro a été mise en place, permettant de générer des instantanés (snapshots) d'un dépôt APT donné. Cela permet d'obtenir un contrôle assez poussé sur le minutage des déploiements en interne, quoi qu'il arrive dans Debian. Plutôt que de gérer des instantanés d'un miroir Debian complet, une liste de paquets a été fournie pour limiter les besoins en espace disque.

Cette solution est accompagnée de scripts de manipulation des instantanés (liste, ajout, suppression), incluant la détection des différences entre deux instantanés. Ceci permet d'une part d'anticiper les changements qui risquent d'impacter les services déployés, et d'autre part de déterminer les causes probables d'une régression si celle-ci n'est détectée qu'après le déploiement d'une mise à jour.

>> Plus d'informations à propos de Wifirst sur le site de la société : Wifirst.

Retour en haut de page.

Cyril en tant que développeur de Logiciels Libres : Debian

Utilisateur, contributeur, développeur

La première installation de Debian de Cyril remonte à 2004. Les premières contributions au projet Debian ont eu lieu très rapidement, au travers de rapports de bogue ainsi que via la participation aux efforts de traduction vers le français.

Peu après, Cyril a commencé à maintenir quelques paquets dans Debian et a pris l'habitude de fournir des patches pour de nombreux autres paquets, qu'il s'agisse d'améliorer la portabilité (sur différentes architectures matérielles) ou de corriger des bogues critiques (RC bugs).

Cyril est un Debian Developer depuis 2008.

Mainteneur de la pile graphique (X.Org)

Cyril a maintenu les paquets Debian relatifs à la pile graphique de 2010 à 2013. Celle-ci est constituée du serveur X, de pilotes X et des bibliothèques associées.

Cela a été l'occasion de se familiariser avec du code relativement bas niveau, et d'aborder les problématiques de recherche de régressions, qu'elles soient dans l'un ou l'autre de ces composants, ou bien dans le noyau Linux.

Membre de l'équipe de publication (release team)

Les responsables de publication (release managers) ont proposé à Cyril de rejoindre leur équipe, ce qu'il a accepté en janvier 2012. Cette équipe est en charge de la distribution testing, qui évolue tout au long du cycle de développement (environ deux ans), en étant alimentée via la distribution unstable. Après une phase de stabilisation (un gel en plusieurs étapes), une fois que le nombre de bogues critiques dans testing a atteint zéro, il est possible de publier la nouvelle version stable de Debian.

Parmi les tâches principales se trouvent la gestion des transitions affectant de nombreux paquets, où il est primordial d'assurer une bonne coordination, mais également les revues de code pour les propositions de mise à jour de paquets dans les distributions stable et oldstable qui continuent à évoluer, principalement lors des mises à jour mineures (point releases).

Responsable de publication de l'installateur (debian installer)

Cyril est en charge du système d'installation depuis 2012. Cela consiste principalement à coordonner le développement de tous les composants constituant l'installateur, en s'assurant que les changements effectués dans des paquets utilisés (le noyau Linux et ses modules, les chargeurs de démarrage, les outils de partitionnement, etc.) ne sont pas responsables de régressions.

En tant que responsable, Cyril a été amené à développer une suite de tests, automatisant différents scénarios d'installation auparavant vérifiés manuellement lors des derniers préparatifs avant une publication. Il développe et maintient également différents scripts permettant de faire des vérifications régulières liées à l'installateur parmi lesquelles : tests d'installabilité des paquets utilisés, tests de compilation lancés quotidiennement pour toutes les architectures et suivi des mises à jour de traduction.

Retour en haut de page.

Cyril en tant que salarié : Kerlabs et AriadNEXT

Kerlabs (2008-2011)

L'équipe Kerlabs a accueilli Cyril pour un stage de fin d'études puis l'a convié à rester à la fin de celui-ci en tant qu'Ingénieur Étude et Développement.

Travailler sur Kerrighed, un système d'exploitation pour clusters, a été l'occasion de découvrir les problématiques de développement et de débogage concernant le noyau Linux, sur lequel le système Kerrighed est basé.

Toutes les missions accomplies au sein de cette société avaient Kerrighed pour sujet et ont permis d'aborder ce système sous des angles différents et complémentaires :

AriadNEXT (2011-2014)

Cyril a ensuite rejoint la société AriadNEXT, spécialisée dans les solutions de dématérialisation et de sécurisation de documents, en tant qu'Ingénieur Étude et Support.

Cela a été l'occasion de découvrir de nouvelles missions :

Faire partie de l'équipe support a été une expérience enrichissante puisque cela a permis de travailler de façon transverse. Cyril était effectivement chargé de faire le lien entre les clients, l'équipe chargée de la production et les équipes de développement (matériel et logiciel). Il s'agissait d'une part de traiter les problèmes ou les besoins signalés par les clients, et d'autre part de les détecter de façon préventive grâce à des outils spécialement conçus.

Retour en haut de page.