Références

Ci-dessous vous trouverez trois types de références :


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.

IZAR IoT GATEWAY Compact
depuis 2020

Diehl Metering

Durant le développement du produit MIOTY Premium Gateway, Diehl Metering et Debamax planifiaient déjà la réutilisation de nombreux composants pour un autre produit : l’IZAR IoT GATEWAY Compact.

Bien que ces produits utilisent respectivement un processeur Intel et un processeur ARM, ils partagent le système de construction, l’outil de configuration système, le mécanisme de mise à niveau et les composants personnalisés, intégrés au sein d’une distribution Debian standard. Cela garantit de très hauts niveaux de synergie et de réutilisation entre ces deux produits.

Les principales différences sont les adaptateurs RF et le modem 4G en option. Tous ces périphériques sont gérés via autodétection, couplée à l’exécution de tests automatiques intégrés. Cela permet de vérifier lors de la fabrication que les composants détectés correspondent effectivement à ce qui est attendu pour un lot donné.

Les travaux initiaux sur ce produit ont conduit à un certain nombre de contributions directes dans Debian.

>> Visiter la page produit : IZAR IoT GATEWAY Compact

MIOTY Premium Gateway
depuis 2019

Diehl Metering

Debamax a participé au développement d’un nouveau produit Diehl Metering, la MIOTY Premium Gateway, en intégrant des composants personnalisés au sein d’un système Debian standard. Cela comprend la mise en place d’un système de construction, un mécanisme de mise à niveau automatique et sécurisé et un outil de configuration système permettant de faire le lien entre tous les composants.

Au-delà de la construction d’une image de système d’exploitation personnalisée, Debamax est responsable de sa maintenance dans le temps. Cela signifie préparer et valider des mises à jour de sécurité, implémenter de nouvelles fonctionnalités et préparer la mise à niveau vers les versions majeures de Debian suivantes, afin de fournir un support à long terme pour ce produit.

Debamax est également impliquée dans le développement d’outils de production et de systèmes de monitoring. Les premiers permettent d’assurer le bon déploiement de l’image système et le succès des tests automatiques intégrés, lors de la fabrication des produits. Les seconds permettent de détecter d’éventuels problèmes sans attendre des remontées via le service client, et de prendre des mesures correctives au plus tôt.

>> Visiter la page produit (en anglais) : MIOTY Premium Gateway

Foundations Team & Responsable de publication
2018-2020

Tails

Après avoir travaillé sur les dépôts APT « congelables », Debamax s’est impliquée dans le développement du système d’exploitation Tails.

Cette participation a eu lieu en partie au sein de l’équipe Foundations, responsable de la maintenance des éléments essentiels du système Tails, notamment en préparant la mise à niveau vers la version majeure de Debian suivante (puisque Tails est une distribution dérivée de Debian) ou en mettant à jour la suite de tests pour la nouvelle méthode d’installation utilisant des images USB.

La plupart des efforts ont cependant été produits au sein de l’équipe de publication. Le système Tails doit être mis à niveau de manière très régulière, afin de corriger les problèmes de sécurité connus le plus rapidement possible. Étant donné que Tails embarque le navigateur Tor, lui-même développé sur la base de Firefox, les calendriers de publication sont habituellement alignés, ce qui signifie une publication toutes les 4 semaines (6 semaines initialement). Debamax a été responsable de deux dizaines de publications durant cette période.

Tails étant un système « live », des mises à niveau différentielles (IUK) sont publiées, permettant de maintenir à jour un système existant plutôt que de forcer une nouvelle installation à chaque nouvelle version. Debamax a fait évoluer le processus de publication, afin que les versions ultérieures puissent continuer à être publiées dans des délais raisonnables malgré le nombre croissant d’IUK à construire, en implémentant du parallélisme à la fois pour les constructions locales et pour les constructions via Jenkins.

Les responsables de publication sont le dernier filet de sécurité avant que les nouvelles versions arrivent dans les mains des utilisateurs, et il s’avère parfois nécessaire d’interrompre le processus de publication. Cela a été le cas pour la version 4.2.1, après que Debamax a détecté un bogue critique dans le système de mise à niveau.

Mises à niveau Debian
2016, 2017, 2019, 2022

Wifirst

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.

Depuis, Debamax a participé à la planification et à l’exécution de la migration vers chaque nouvelle version majeure de Debian (Stretch, Buster et Bullseye) peu après sa publication, en fournissant des playbooks Ansible prêts à l’emploi.

Dépôts APT « congelables »
2015-2016

Tails

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é.

Ishtar Empaquetage Debian pour Ishtar
2016

Iggdrasil

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.

Intégration continue
2016

Wifirst

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.

Outils de gestion de miroirs partiels
2016

Wifirst

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.

Retour en haut de page

Cyril en tant que Développeur 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 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 (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 :

  • Développement d’un LiveCD de démonstration du système d’exploitation pour clusters Kerrighed.
  • Adaptation de logiciels pour tirer parti de Kerrighed.
  • Développement d’une application de supervision pour Kerrighed.
  • Maintenance de paquets Debian pour Kerrighed.
  • Tests de non-régression et débogage en coordination avec l’équipe R&D.

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 :

  • Gestion des terminaux de dématérialisation (évolutions du système d’exploitation et déploiement).
  • Développement d’outils d’exploitation et de supervision (terminaux et serveurs).
  • Formation et encadrement de l’équipe support.
  • Veille technologique : sécurité des systèmes d’information.

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