Innovation
L'équipe de platform engineering, pour créer de la valeur client
Qu’est-ce que la platform engineering?
La platform engineering consiste à concevoir et à construire des chaînes d’outils (ensembles d’outils de programmation utilisés pour effectuer une tâche de développement) et des flux de travail (séquences d’étapes nécessaires pour accomplir une tâche) pour les développeurs. Essentiellement, les platform engineers écrivent du code pour faciliter la connexion entre le matériel et le logiciel afin que tout fonctionne en harmonie. À l’ère de l’infonuagique native, les entreprises de développement logiciel comme la nôtre disposent ainsi de capacités de libre-service.
Comment la platform engineering crée de la valeur pour le client
Le concept de platform engineering est en plein essor, en particulier pour les entreprises de développement logiciel à croissance rapide comme la nôtre. Nous avons créé notre équipe de platform engineering en avril 2020 parce que nous estimions qu’il était important de consacrer des ressources pour accélérer les livraisons et alléger la charge de notre équipe DevOps. Son objectif : standardiser nos pratiques afin d’améliorer la fiabilité, la qualité et la sécurité. L’équipe vise également à faciliter le quotidien des développeurs lorsqu’ils mettent en œuvre des processus, des outils et des méthodologies pour soutenir le cycle de vie du développement logiciel et travailler sur des projets clients.
Nos développeurs concentrent leurs efforts sur les fonctions les plus utiles pour nos clients et leurs utilisateurs finaux. Nos platform engineers les aident à rester sur la bonne voie grâce à l’automatisation pour le plus grand nombre possible de tâches répétitives ou qui ne sont pas directement liées au domaine du projet.
« Même s’il s’agit d’un travail en coulisses, nous savons que [notre travail de platform engineering] profite à chaque projet sans embourber les autres développeurs dans des tâches non liées au domaine. » — Evan, membre de l’équipe de platform engineering.
Qu’en tire la clientèle? Une livraison rapide, une qualité améliorée et un rendement du capital investi accéléré.
Restez aux commandes
Formulé pour la première fois en 2006 par Werner Vogels, directeur technique d’Amazon, le principe « you build it, you run it » (celui qui conçoit est aussi celui qui déploie) est devenu l’un des piliers du mouvement DevOps. Comme ce principe nous tient à cœur, tous les développeurs d’Osedea font (ou du moins, s’efforcent de faire) du développement full cycle. Concrètement, un développeur doit être capable de mettre en place ou d’ajuster lui-même l’infrastructure d’une fonctionnalité.
Cette approche rend les développeurs autonomes et responsables de leur travail. Cependant, le défi est de taille, car ils doivent adapter leur stratégie (passer de la programmation à la configuration des services ou de l’infrastructure en nuage) et acquérir des connaissances sur chaque service infonuagique afin de choisir celui qui convient le mieux aux besoins de leur application. Il est beaucoup plus facile de se familiariser avec l’infrastructure lorsqu’on dispose de conseils et d’outils prêts à l’emploi.
Buts de la platform engineering
En pratique, l’équipe de platform engineering vise plusieurs objectifs :
- Fournir et gérer des outils qui permettent et facilitent la configuration, le déploiement, les opérations et la maintenance de l’infrastructure.
- Tester de nouvelles technologies et découvrir de meilleures solutions et de nouveaux points à améliorer.
- Former les développeurs sur les sujets DevOps et les outils développés en interne.
- Contribuer à la conception d’architectures d’infrastructure sur des projets plus complexes en tant que consultants temporaires.
Les clés d’une platform engineering efficace
Les platform engineers font preuve de persévérance, de dévouement et d’une véritable passion pour l’infrastructure. Les membres de l’équipe, animés par le désir d’améliorer l’entreprise dans son ensemble, soutiennent leurs collègues et les projets de nos clients.
Contrairement à d’autres sociétés de développement logiciel, les développeurs d’Osedea ne font pas partie d’une équipe précise. Ils travaillent sur des projets clients et peuvent faire partie de plusieurs équipes multidisciplinaires. Ils ont donc du temps dédié à leur équipe et une charge de travail adaptée, partageant leur temps entre les projets internes et le travail du client auquel ils apportent leur savoir-faire.
Nos réussites et bons coups
Depuis le printemps 2020, notre équipe de platform engineering a franchi plusieurs étapes importantes et célébré divers succès.
Modules Terraform propres à Osedea
Un projet majeur sur lequel notre équipe a travaillé a été la mise en œuvre de modules Terraform propres à Osedea. Terraform est un outil logiciel libre d’infrastructure en tant que code qui permet de créer, de modifier et d’améliorer l’infrastructure de manière sûre et prévisible. Le fait de disposer de nos propres modules Terraform nous permet de créer des services d’infrastructure aux paramètres prédéfinis que nous utilisons souvent, afin de ne pas avoir à réinventer la roue pour chaque nouveau projet. Nous créons régulièrement de nouveaux modules et assurons la maintenance des modules existants.
Infrastructures sur mesure
L’équipe de platform engineering élabore aussi des solutions personnalisées pour des problèmes uniques, en aidant à identifier les problèmes et à proposer des solutions, ainsi qu’en participant à leur mise en œuvre. Par exemple, l’équipe a aidé à mettre en œuvre le service AWS Step Functions pour un projet qui utilisait auparavant AWS Lambda, qui ne convenait plus au projet en raison des besoins complexes en matière de flux de travail. Dans un autre projet, l’équipe a coconçu l’infrastructure d’une application utilisant le service de reconnaissance optique des caractères (OCR) et les fonctions sans serveur d’Azure pour traiter et analyser des documents administratifs.
Réussites au quotidien
L’équipe de platform engineering célèbre même les petites victoires, comme celle d’aider un développeur junior à mettre en place sa première infrastructure. Ainsi, l’apprentissage des opérations et de l’infrastructure chez Osedea progresse et le développeur junior pourra un jour, à son tour, transmettre ses acquis à ses collègues.
Notre feuille de route
- En vue de permettre à tous les membres de devenir des développeurs full cycle, l’équipe de platform engineering mise sur le perfectionnement en continu. Deux ateliers sont prévus cette année pour perfectionner les compétences de l’équipe. Nous sommes aussi en train de créer de nouveaux modules Terraform pour configurer rapidement les services Azure pour l’ensemble de l’organisation. L’objectif? Les présenter à l’équipe avec de la documentation et des exemples pour faciliter la création de services Azure.
- Parallèlement, les membres de l’équipe de platform engineering continuent d’affiner leurs propres compétences. On s’attend à ce que chacun passe les certifications AWS ou Azure Cloud Architect afin d’offrir aux développeurs plus d’options lors du choix d’un fournisseur d’hébergement.
- En règle générale, l’équipe veille à confier des tâches à des membres non experts afin que chacun s’améliore constamment.
Pourquoi faire partie de cette équipe?
Faire partie de l’équipe de platform engineering, c’est une excellente façon de travailler sur des technologies de pointe. L’équipe teste constamment de nouveaux outils pour voir s’ils répondent mieux à nos besoins. Les membres de l’équipe présentent leurs découvertes lors de nos dîners-causeries internes et lors d’événements publics. Par exemple, notre platform engineer Bradley a animé une excellente conférence lors de la Journée CDK 2022 sur l’organisation du code dans CDKTF (en anglais).
Nous pouvons dire en toute objectivité que les membres de notre équipe de platform engineering sont régulièrement félicités pour leur soutien sur les projets internes qu’ils mettent en œuvre, notamment parce que l’ensemble de l’entreprise en profite.
Nos projets actuels
Comme mentionné plus haut, nous avons investi très tôt dans le CDKTF (Cloud Development Kit for Terraform), qui permet d’utiliser des langages de programmation familiers pour définir et provisionner l’infrastructure. Nous sommes déjà impressionnés par ses capacités.
En plus d’AWS, nous commençons à utiliser Azure plus fréquemment. Nous renforçons nos connaissances en la matière et nous comptons créer nos propres outils internes pour en faciliter la gestion.
Parmi nos ateliers à venir, l’un sera consacré à Terraform et visera à aider l’équipe à se familiariser avec l’utilisation des modules propres à Osedea. Et comme l’équipe est toujours curieuse et désireuse d’essayer de nouvelles choses, elle a pris l’habitude de tenir ses réunions en réalité virtuelle avec Horizon (la plateforme de réunion virtuelle de Meta) toutes les deux semaines.
Cet article vous a donné des idées ? Nous serions ravis de travailler avec vous ! Contactez-nous et découvrons ce que nous pouvons faire ensemble.