Be Software Architecture Wise
Be Wise Apps

Read in English · Leer en español · Auf Deutsch lesen

Section 10.7 sur 10.8 · Intermédiaire · 21 min de lecture

Ingénierie de plateforme et plateformes internes de développement

Leçon vidéo

5 min · narré en anglais, avec sous-titres
Écouter seulement (audio)
Lire la transcription

Les équipes qui construisent un service devraient aussi l’exploiter, mais l’outillage de ce chapitre est vaste. Dans cette leçon, vous allez voir comment une équipe plateforme peut porter une grande partie de cette charge, et comment savoir si cela fonctionne.

Imaginez un grand bureau où chaque département achète ses propres imprimantes, câble son propre réseau et embauche son propre agent d’entretien. Tout le monde perd du temps en corvées, et certains s’en acquittent mal. Une bonne équipe des services généraux propose plutôt des services prêts à l’emploi : réserver une salle de réunion en ligne, ou commander un ordinateur portable dans une courte liste. Personne n’est obligé de les utiliser, mais c’est la voie la plus simple. L’ingénierie de plateforme, c’est cette équipe des services généraux pour les équipes logicielles.

En 2006, le directeur technique d’Amazon a résumé son modèle ainsi : vous le construisez, vous l’exploitez. Cela fonctionne, mais aujourd’hui une équipe produit peut avoir besoin d’images, de Kubernetes, d’infrastructure en tant que code, de pipelines et de secrets avant d’écrire la moindre logique métier. Quand chaque équipe résout tout cela seule, les efforts sont dupliqués : dix équipes écrivent dix pipelines légèrement différents. La qualité varie : certaines équipes chiffrent leurs bases de données et configurent des sauvegardes, d’autres oublient. Et le temps passé sur l’infrastructure est du temps qui n’est pas consacré au produit. La réponse est une plateforme interne de développement, qui regroupe ces capacités en libre-service.

Les équipes produit, comme Commandes, Livreurs et Restaurants, accèdent à la plateforme en libre-service, sans tickets pour les besoins courants. Elles utilisent un portail des développeurs, un outil en ligne de commande et des API, ou des modèles dans Git. Derrière, on trouve des capacités partagées : pipelines, modules d’infrastructure, observabilité, secrets et identité, bases de données et files d’attente. Le tout fonctionne à l’intérieur de garde-fous : politique en tant que code, quotas, budgets et sécurité par défaut. Une équipe plateforme la construit et l’exploite comme un produit, et tire des enseignements des retours de ses utilisateurs. L’essentiel de son travail consiste à choisir, intégrer, documenter et prendre en charge des outils existants, pas à en écrire de nouveaux.

Ce qu’une jeune plateforme peut offrir de plus précieux est un golden path, que Netflix appelle la paved road : une manière prise en charge d’accomplir une tâche courante de bout en bout, comme mener un nouveau service jusqu’en production. Il est prescriptif : il fait les choix courants, comme les versions de langage, le format de journalisation et la stratégie de déploiement, pour que les équipes n’aient pas à les faire. Il est facultatif : les équipes peuvent partir hors piste pour une bonne raison, sans le soutien de la route. Cela oblige l’équipe plateforme à rester honnête sur la question de savoir si le chemin est vraiment meilleur. Et il est pris en charge et évolutif : quand il casse, l’équipe plateforme le répare, et les services créés à partir du modèle de l’an dernier reçoivent toujours des mises à jour.

L’idée clé est que la plateforme est un produit, et que les développeurs sont ses clients. Elle a besoin d’un responsable pour la feuille de route, de recherche utilisateur, de documentation et de ses propres objectifs de niveau de service. L’adoption doit se mériter, pas s’imposer. Si les équipes évitent la plateforme, c’est un retour du marché, pas de l’insubordination. Le libre-service reste sûr grâce à des garde-fous, pas à des points de validation. Un point de validation, c’est une personne qui approuve chaque demande. Un garde-fou est une vérification automatique, avec un message clair et une procédure pour les exceptions justifiées. Et un portail n’est pas une plateforme. Backstage, créé chez Spotify, offre un catalogue logiciel, des modèles et de la documentation. Mais un portail placé devant des processus pilotés par les tickets ne fait qu’afficher la file d’attente de façon plus attrayante.

Voici comment l’entreprise de livraison de repas a commencé. Elle compte douze équipes produit, et l’observation des équipes au travail a montré que créer un nouveau service prenait environ trois semaines et quatorze tickets adressés à quatre équipes différentes. Une nouvelle équipe plateforme de quatre personnes a examiné les services existants. Soixante-dix pour cent étaient des services HTTP sans état en Python ou en Go avec une base de données PostgreSQL : c’est donc devenu le premier golden path. Deux ingénieurs des premières équipes à avoir besoin d’un nouveau service ont rejoint l’équipe plateforme pendant trois semaines, pour construire le chemin avec elles, et non pour elles. Les garde-fous étaient vérifiés automatiquement : étiquettes de propriétaire et de coût, images signées uniquement, et aucun accès public aux bases de données. Ils ont émis des avertissements pendant un mois avant de commencer à bloquer. Résultat : l’équipe Restaurants a créé son service de notation depuis le portail, et l’a mis en production en cinq heures, contre trois semaines auparavant. Tickets nécessaires : aucun. Les progrès se mesurent au délai jusqu’au premier déploiement, aux enquêtes et aux métriques DORA, examinés chaque mois. Trois autres équipes ont adopté le chemin volontairement en un trimestre.

La valeur d’une plateforme se manifeste dans les résultats des autres équipes. Le cadre SPACE avertit que la productivité des développeurs ne peut pas se résumer à un seul chiffre : mesurez plusieurs dimensions, dont une enquête, et ne jugez jamais les individus sur leurs commits. Le rapport DORA 2024 a constaté que les utilisateurs de plateformes déclaraient une productivité individuelle supérieure d’environ huit pour cent, mais que le débit de livraison et la stabilité des changements étaient inférieurs de huit et quatorze pour cent. Attendez-vous à un creux pendant qu’une plateforme mûrit. Et méfiez-vous des pièges classiques : une plateforme dont personne ne veut, une équipe d’exploitation renommée mais qui travaille toujours à partir de tickets, et des abstractions qui cachent trop pour permettre le débogage pendant un incident.

La section complète traite de Backstage, de la charge cognitive et d’une liste de contrôle pour lancer une plateforme. Ensuite, dans la section dix point huit, nous verrons le coût et la dépendance au fournisseur. À très vite.

Ce qu’il faut savoir

Le problème que résolvent les plateformes

En 2006, le directeur technique d’Amazon, Werner Vogels, a résumé le modèle de fonctionnement de son entreprise par you build it, you run it (vous le construisez, vous l’exploitez) : l’équipe qui écrit un service le déploie, le supervise et le corrige aussi. L’idée est devenue centrale pour le DevOps et pour les microservices, et elle fonctionne : les équipes qui exploitent leur propre logiciel subissent les conséquences de leurs choix de conception et les corrigent. Mais l’outillage cloud native décrit dans ce chapitre est vaste. Une équipe produit qui doit aujourd’hui construire, exploiter et sécuriser un service peut avoir besoin de comprendre les images de conteneurs, les objets Kubernetes, l’infrastructure en tant que code, les pipelines, l’observabilité, la gestion des secrets, les politiques réseau, l’analyse de la chaîne d’approvisionnement et le contrôle des coûts, avant d’écrire la moindre ligne de logique métier.

Lorsque chaque équipe résout tout cela seule, trois choses se produisent. Les efforts sont dupliqués : dix équipes écrivent dix pipelines légèrement différents. La qualité varie : certaines équipes chiffrent leurs bases de données et configurent des sauvegardes, d’autres oublient. Et le temps que les équipes produit consacrent à l’infrastructure est du temps qu’elles ne consacrent pas au produit. L’ingénierie de plateforme (platform engineering) est la réponse : une équipe dédiée construit une plateforme interne de développement (IDP) qui regroupe ces capacités pour que les équipes produit puissent les utiliser en libre-service.

L’article d’Evan Bottcher publié en 2018 sur martinfowler.com en donne une description très citée : une plateforme numérique est un socle d’API, d’outils, de services, de connaissances et de support en libre-service, organisés comme un produit interne convaincant. Chaque élément de cette description compte. En libre-service signifie pas de tickets pour les besoins courants. Connaissances et support signifie de la documentation et des personnes, pas seulement du logiciel. Convaincant signifie que les équipes choisissent de l’utiliser parce que c’est mieux que de faire le travail elles-mêmes. Produit interne signifie qu’elle est gérée comme un produit, avec des clients, plutôt que comme un projet ou un centre de coûts.

Ce que contient une plateforme interne de développement

Plateforme interne de développement : les équipes produit passent par un portail, une CLI et des modèles pour accéder à des capacités partagées (CI/CD, modules d’infrastructure, observabilité, secrets, bases de données), encadrées par des garde-fous et bâties par une équipe plateforme sur le cloud et KubernetesÉq. CommandesÉq. LivreursÉq. Restaurantslibre-service : portail, CLI, GitPlateforme interne de dév.Portail des développeursCLI et APIModèles dans GitCI/CDModules IaCObservabilitéSecrets etidentitéBD et filesd’attenteGarde-fouspolicy as code, quotas, budgets, sécurité par défautÉquipeplateforme : créeet exploitecomme produitretoursComptes cloud, clusters Kubernetes, services managés
Les équipes produit consomment la plateforme au moyen d’interfaces en libre-service ; l’équipe plateforme la gère comme un produit et tire des enseignements de leurs retours.

Une IDP n’est pas un produit unique. C’est généralement une intégration d’outils existants (un système de CI, un contrôleur GitOps, les services managés d’un fournisseur cloud, une pile d’observabilité, un coffre de secrets) derrière des interfaces cohérentes et des valeurs par défaut raisonnables. Le travail propre à l’équipe plateforme consiste à les choisir, les intégrer, les documenter et les prendre en charge, et à concevoir l’expérience de leur utilisation, pas à écrire un nouvel orchestrateur.

Golden paths et paved roads

Ce qu’une jeune plateforme peut offrir de plus précieux est un golden path (chemin balisé) : une manière prescriptive, prise en charge et documentée d’accomplir de bout en bout une tâche courante, comme créer un nouveau service et le mettre en production. Spotify a popularisé le terme (son blog d’ingénierie a décrit ses golden paths en 2020) ; Netflix parle de paved road (route goudronnée). La métaphore est précise. Une route goudronnée est l’itinéraire le plus facile, et elle est entretenue, mais vous pouvez toujours partir hors piste si vous avez une bonne raison ; vous ne bénéficiez simplement plus du soutien de la route.

Un bon golden path a cinq propriétés. Il est de bout en bout : il mène une équipe d’un dépôt vide à un service supervisé en production, et pas seulement à travers une étape. Il est prescriptif : il fait les choix courants (versions de langage, format de journalisation, stratégie de déploiement, réglages par défaut de la base de données) pour que les équipes n’aient pas à les faire. Il est facultatif : les équipes aux besoins inhabituels peuvent le quitter, ce qui oblige l’équipe plateforme à rester honnête sur la question de savoir si le chemin est vraiment meilleur. Il est pris en charge : quand il casse, l’équipe plateforme le répare. Et il est évolutif : les services créés à partir du modèle de l’an dernier reçoivent des mises à jour, au lieu de rester figés dans leur version de départ.

Ce que fournit généralement un golden path pour un nouveau service

ÉlémentCe que reçoit l’équipe produitCe que cela remplace
Modèle de serviceUn dépôt avec un squelette fonctionnel, des tests, un Dockerfile, du linting et un README, généré en quelques minutes.Copier un ancien service et supprimer ce qui ne convient pas.
PipelineUn pipeline CI/CD prêt à l’emploi, avec analyse, signature et déploiement progressif, comme à la section 10.5.Chaque équipe écrit et maintient son propre pipeline.
Configuration d’exécutionDes réglages Kubernetes ou de plateforme managée, avec des requêtes de ressources, des sondes et un autoscaling raisonnables.Des essais et erreurs en production.
Modules d’infrastructureDes modules d’infrastructure en tant que code relus pour les bases de données, les files d’attente et les buckets, avec chiffrement, sauvegardes et étiquettes intégrés.Des tickets à une équipe d’exploitation, ou des modules écrits à la main, de qualité variable.
ObservabilitéJournalisation structurée, métriques, traces et un tableau de bord de départ avec des alertes sur les objectifs de niveau de service.Une supervision ajoutée après le premier incident.
Entrée de catalogue et documentationLe service enregistré avec son propriétaire, ses dépendances et sa documentation.Des tableurs et un savoir informel sur qui possède quoi.

Backstage et les portails des développeurs

Un portail des développeurs est la porte d’entrée de nombreuses plateformes. Le plus connu est Backstage, construit en interne chez Spotify, passé en open source en mars 2020, accepté par la Cloud Native Computing Foundation (CNCF) comme projet sandbox en septembre 2020 et promu au stade d’incubation en mars 2022. Ses fonctions principales sont un catalogue logiciel, dans lequel chaque service, site web, bibliothèque, API et ressource est enregistré avec son propriétaire et ses relations ; des modèles logiciels, qui génèrent de nouveaux projets à partir des modèles des golden paths ; TechDocs, qui publie la documentation écrite en Markdown à côté du code ; et un vaste écosystème de plug-ins qui affichent les pipelines, l’état Kubernetes, les coûts et les incidents à côté de chaque entrée du catalogue.

Chaque composant se décrit lui-même dans un petit fichier conservé dans son propre dépôt, de sorte que les informations de propriété vivent avec le code et sont relues comme du code :

apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
  name: restaurant-ratings
  description: Stores and serves customer ratings of restaurants
  tags: [python, http]
spec:
  type: service
  lifecycle: production
  owner: team-restaurants
  system: restaurant-discovery
  providesApis: [ratings-api]
  dependsOn: [resource:ratings-db]
Une entrée du catalogue Backstage (catalog-info.yaml) pour un service de livraison de repas : son propriétaire, son cycle de vie, le système auquel il appartient, l’API qu’il fournit et une ressource dont il dépend.

Deux mises en garde. Backstage est un framework qu’une organisation assemble et exploite, ce qui exige généralement des ingénieurs qui maîtrisent TypeScript et React, et ses plug-ins sont de qualité variable ; des services Backstage managés et des portails commerciaux existent pour les équipes qui ne veulent pas l’exploiter elles-mêmes. Plus important encore, un portail n’est pas une plateforme. Un beau portail placé devant des processus manuels pilotés par les tickets ne fait qu’afficher la file d’attente de façon plus attrayante. Commencez par les capacités et le golden path ; ajoutez un portail quand il y a derrière assez de choses qui valent la peine d’être trouvées.

La plateforme en tant que produit

L’idée la plus importante de l’ingénierie de plateforme est que la plateforme est un produit et que les développeurs qui l’utilisent sont ses clients. Cela suppose un responsable produit ou un responsable de la plateforme qui porte la feuille de route ; de la recherche utilisateur (entretiens, observation d’une équipe qui crée un service, enquêtes) avant de construire ; une documentation et une prise en main traitées comme des fonctionnalités ; des objectifs de niveau de service publiés pour la plateforme elle-même ; des politiques de versionnement et de dépréciation pour que les équipes puissent planifier ; et, surtout, une adoption méritée plutôt qu’imposée. Si les équipes évitent la plateforme, c’est un retour du marché, pas de l’insubordination.

Team Topologies (Matthew Skelton et Manuel Pais, 2019), présenté à la section 11.5, fournit le modèle organisationnel. Une équipe plateforme existe pour alléger la charge des équipes orientées flux, celles qui sont alignées sur un flux de changements métier comme la commande ou l’affectation des livreurs, et interagit avec elles principalement en mode X-as-a-Service : une offre claire, en libre-service, qui demande peu de collaboration. Le mode collaboration est utilisé délibérément et brièvement, par exemple pour concevoir une nouvelle capacité avec une ou deux équipes pionnières. Skelton et Pais ont aussi forgé la notion de plateforme viable la plus fine (thinnest viable platform) : la plus petite plateforme qui aide réellement, et qui, pour une petite organisation, peut se résumer à une page de wiki bien écrite listant les services approuvés et à un modèle de pipeline partagé.

Cela signifie aussi que la plateforme doit faire jouer la loi de Conway en sa faveur : les interfaces de la plateforme deviennent les frontières entre l’équipe plateforme et chaque équipe produit ; elles doivent donc être stables, documentées et étroites, comme toute bonne abstraction.

Le libre-service avec garde-fous

Le libre-service supprime la file d’attente ; les garde-fous le rendent sûr. La différence avec les contrôles traditionnels tient à l’endroit où la vérification a lieu. Un point de validation (gate) est une personne qui doit approuver une demande, comme un comité consultatif des changements ou un administrateur de bases de données qui examine un ticket. Un garde-fou (guardrail) est une limite automatique qui laisse passer tout ce qui respecte la politique et bloque ou signale ce qui ne la respecte pas, au moment même de la demande. Les garde-fous sont généralement écrits sous forme de politique en tant que code (policy as code, présentée à la section 10.4) et appliqués dans les pipelines, les contrôleurs d’admission et les politiques d’organisation du cloud.

Capacités en libre-service et leurs garde-fous

CapacitéInterface en libre-serviceExemples de garde-fous
Nouveau serviceModèle dans le portail ou la CLIDoit avoir un propriétaire dans le catalogue ; doit utiliser l’image de base approuvée.
BaseModule d’infrastructure ou formulaire du portailChiffrement au repos activé ; sauvegardes automatiques activées ; aucun accès réseau public ; taille limitée par le quota de l’équipe.
DéploiementUne fusion dans main déclenche le pipelineUniquement des images signées provenant du registre interne ; requêtes de ressources et sondes obligatoires ; analyse canari obligatoire pour les services de niveau 1.
Dépenses cloudComptes d’équipe ou namespaces créés à la demandeÉtiquettes de coût obligatoires ; alertes budgétaires à 80 % et 100 % ; les types d’instances coûteux doivent être justifiés.
AccèsDemandes de rôles via le portailL’accès à la production est limité dans le temps et journalisé ; pas de clés personnelles à longue durée de vie.

Les bons garde-fous partagent trois propriétés : ils donnent un message clair qui explique ce qui a été bloqué et comment corriger le problème ; ils sont versionnés et testés comme du code, avec une période d’avertissements avant qu’une nouvelle règle ne commence à bloquer ; et ils s’accompagnent d’une procédure documentée pour les exceptions justifiées, car un garde-fou sans procédure d’exception redevient un point de validation dès la première fois qu’il se trompe.

Réduire la charge cognitive, sans tout cacher

Team Topologies emprunte la notion de charge cognitive aux recherches en sciences de l’éducation de John Sweller et en distingue trois types. La charge intrinsèque est inhérente à la tâche, comme comprendre le fonctionnement des frais de livraison. La charge extrinsèque vient de l’environnement, comme se souvenir des douze étapes pour demander une base de données. La charge pertinente est l’effort d’apprentissage qui facilite le travail futur, comme comprendre le domaine plus en profondeur. Une plateforme doit éliminer la charge extrinsèque pour que les équipes puissent consacrer leur attention limitée à la charge intrinsèque et à la charge pertinente de leur propre domaine.

Cela ne veut pas dire tout cacher. Une équipe qui exploite son service doit toujours comprendre comment il se comporte en production : sa consommation de ressources, ses modes de défaillance, sa latence et ses coûts. Les abstractions qui cachent trop fuient au pire moment, pendant un incident, quand l’équipe découvre qu’elle ne peut pas voir les journaux ou ne sait pas sur quelle gamme de base de données elle tourne. Les bonnes plateformes sont transparentes : elles fournissent des valeurs par défaut raisonnables et des interfaces simples, tout en laissant les équipes regarder en dessous et modifier les réglages quand elles en ont besoin.

Mesurer si la plateforme fonctionne

La valeur d’une plateforme se manifeste dans les résultats des autres équipes : c’est donc là que ses mesures doivent porter. Les mesures utiles se répartissent en quatre groupes, et un ensemble équilibré en prend au moins une dans chacun.

Mesures du succès d’une plateforme

GroupeExemples de mesuresPoints de vigilance
AdoptionPart des services sur le golden path ; adoption volontaire des nouvelles capacités ; équipes qui quittent le chemin, et pourquoi.Une adoption imposée ne dit rien de la valeur.
LivraisonMétriques DORA pour les équipes sur la plateforme et hors de celle-ci ; délai entre la création d’un service et son premier déploiement en production ; durée d’intégration d’un nouvel ingénieur.Les comparaisons entre équipes dont le travail est très différent.
Expérience développeurEnquêtes régulières sur la satisfaction, les frictions perçues et le temps perdu à cause de l’outillage ; entretiens.La lassitude face aux enquêtes ; traitez les résultats comme des signaux, pas comme des notes.
Santé de la plateformeLes SLO propres à la plateforme (disponibilité des pipelines, délai de provisionnement), la charge de support, le coût par équipe.Une plateforme fiable mais inutilisée reste un échec.

Le cadre SPACE, publié dans ACM Queue en 2021 par Nicole Forsgren, Margaret-Anne Storey et des collègues de GitHub, de Microsoft Research et de l’Université de Victoria, avertit que la productivité des développeurs ne peut pas se résumer à un seul chiffre. Il nomme cinq dimensions : la satisfaction et le bien-être, la performance, l’activité, la communication et la collaboration, ainsi que l’efficacité et le flux. Il recommande de mesurer plusieurs dimensions à la fois, dont au moins une mesure perçue comme une enquête, et de ne jamais juger les individus sur des comptages d’activité comme le nombre de commits ou de lignes de code.

Les données sur les plateformes sont encourageantes, mais pas inconditionnelles. Le rapport DORA 2024 Accelerate State of DevOps a constaté que les utilisateurs de plateformes internes de développement déclaraient une productivité individuelle supérieure d’environ 8 % et une performance d’équipe supérieure de 10 %, mais que le débit de livraison logicielle et la stabilité des changements étaient inférieurs de 8 % et 14 %. Le rapport avance des explications possibles, comme des passages de relais supplémentaires et la couche de plateforme qui ajoute elle-même des étapes, et la leçon pour les architectes est de mesurer les résultats de livraison autant que la satisfaction, et de s’attendre à un creux pendant qu’une plateforme mûrit.

Exemple commenté

Exemple commenté : le premier golden path pour un nouveau service de livraison de repas

L’entreprise de livraison de repas compte douze équipes produit. Une enquête et une semaine passée à observer les équipes au travail montrent que créer un nouveau service prend environ trois semaines et quatorze tickets adressés à quatre équipes différentes. Une équipe plateforme de quatre personnes est formée. Les premières équipes produit à avoir besoin d’un nouveau service sont l’équipe Restaurants, qui veut un service de notation des restaurants, et l’équipe Livreurs.

Choisir le cheminInventaire des services existants : 70 % sont des services HTTP sans état en Python ou en Go, avec une base de données PostgreSQL et, souvent, un abonnement à une file d’attente. Cette forme devient le golden path v1 ; tout le reste reste hors piste pour l’instant.
Concevoir avec les utilisateursDeux ingénieurs des équipes Restaurants et Livreurs rejoignent l’équipe plateforme pendant trois semaines (mode collaboration) pour construire le chemin avec elles, et non pour elles.
SommaireDépôt modèle ; le pipeline standard avec déploiement canari ; des réglages Kubernetes avec requêtes, sondes et autoscaling ; un module de base de données avec chiffrement, sauvegardes et étiquettes de coût ; journalisation, traçage et un tableau de bord des SLO ; une entrée de catalogue ; un guide de démarrage.
Garde-fousÉtiquettes de propriétaire et de coût obligatoires ; images signées uniquement ; base de données sans accès public. Tout est vérifié automatiquement ; avertissements pendant un mois avant le blocage.
Premier résultatL’équipe Restaurants crée restaurant-ratings depuis le portail et déploie une version « hello world » en production en 5 heures, contre trois semaines auparavant. Tickets nécessaires : aucun.
MesurerDélai jusqu’au premier déploiement en production, enquête auprès des deux équipes pilotes et métriques DORA pour les services sur le chemin, examinés chaque mois. Trois autres équipes adoptent le chemin volontairement en un trimestre.
Étapes suivantesLes équipes demandent la prise en charge des consommateurs d’événements et des environnements de prévisualisation par pull request ; la feuille de route est ordonnée selon la demande. Une demande de prise en charge d’un langage de niche est refusée pour l’instant et documentée comme hors piste.

La plateforme a commencé par un seul chemin pour le cas le plus courant, construit avec ses premiers utilisateurs, et a été jugée sur leurs résultats plutôt que sur le nombre de fonctionnalités livrées.

L’essentiel du travail a consisté à intégrer des outils existants, à définir leurs valeurs par défaut et à les documenter, pas à écrire de nouveaux logiciels.

Risques et modes de défaillance

Les initiatives de plateforme échouent de manières reconnaissables. La plus courante consiste à construire une plateforme dont personne ne veut : une équipe passe un an à bâtir une plateforme généraliste ambitieuse, la lance, et découvre que les équipes produit ont déjà des solutions qui fonctionnent et pas de temps pour migrer. Commencer petit, avec de vrais utilisateurs et un seul golden path, en est l’antidote. La deuxième est l’équipe d’exploitation renommée : une équipe d’infrastructure est rebaptisée équipe plateforme mais travaille toujours à partir d’une file de tickets, si bien que rien ne change, sauf les intitulés de poste. Si les demandes courantes exigent encore un ticket et une personne, ce n’est pas encore une plateforme.

Les autres risques sont d’imposer l’adoption, ce qui supprime les retours qui maintiennent l’utilité d’une plateforme ; la sur-abstraction, où une couche maison masque si complètement les outils sous-jacents que les équipes ne peuvent ni la déboguer ni l’étendre, et où l’équipe plateforme devient un goulot d’étranglement pour chaque changement ; la négligence de la longue traîne des services créés à partir d’anciens modèles ; et une plateforme devenue point de défaillance unique, dont la panne arrête tous les déploiements. À l’inverse, une petite organisation peut n’avoir besoin d’aucune équipe plateforme : quelques modèles partagés, entretenus par des volontaires, peuvent constituer la plateforme viable la plus fine pendant des années.

Liste de contrôle : lancer une plateforme

  • Des preuves du problèmeMesurez combien de temps prennent aujourd’hui les tâches courantes (nouveau service, nouvelle base de données, premier déploiement) et combien de tickets et d’équipes elles mobilisent.
  • Un responsable produitQuelqu’un porte la feuille de route, parle régulièrement aux utilisateurs et sait dire non.
  • D’abord un seul golden pathChoisissez la forme de service la plus courante et rendez-la excellente de bout en bout avant d’élargir l’offre.
  • Le libre-service, pas les ticketsChaque demande courante sur le chemin aboutit sans approbation humaine ; les exceptions disposent d’une procédure documentée.
  • Des garde-fous en tant que codeDes règles de sécurité, de coût et de fiabilité appliquées automatiquement, avec des messages clairs et une période d’avertissement.
  • Des abstractions transparentesLes équipes peuvent voir les journaux, les métriques, les coûts et les ressources sous-jacentes, et modifier les valeurs par défaut quand c’est justifié.
  • Des mesures de résultatsAdoption, délai jusqu’au premier déploiement, métriques DORA et enquêtes auprès des développeurs, examinés régulièrement et publiés.
  • Un chemin de mise à niveauLes services créés à partir d’anciens modèles reçoivent les améliorations, et les dépréciations s’accompagnent d’un préavis et d’une aide à la migration.

Vérifiez votre compréhension

Quelle est la différence entre un point de validation et un garde-fou ?

Un point de validation exige qu’une personne approuve chaque demande ; un garde-fou est une vérification automatique qui laisse passer immédiatement les demandes conformes et bloque ou signale les autres.

Pourquoi un golden path doit-il être facultatif ?

Pour que les équipes aux besoins inhabituels ne soient pas bloquées, et pour que l’équipe plateforme apprenne, en voyant qui quitte le chemin, s’il est réellement meilleur que les autres options.

Une entreprise installe Backstage, mais créer une base de données exige toujours un ticket et une semaine d’attente. Qu’a-t-elle construit ?

Un portail devant un processus manuel, pas une plateforme ; ce sont les capacités en libre-service derrière le portail qui créent de la valeur.

Pourquoi le cadre SPACE déconseille-t-il de mesurer la productivité des développeurs uniquement au nombre de commits ou de lignes de code ?

Les comptages d’activité ne saisissent qu’une dimension, sont faciles à manipuler et ne disent rien de la satisfaction, de la collaboration, du flux ni de la valeur du résultat.

Suivant · 10.8FinOps et dépendance au fournisseurTraiter le coût comme une qualité architecturale : les phases du FinOps, l’économie unitaire comme le coût par commande, les facteurs de coût courants, les engagements et le spot, l’étiquetage, le showback et le chargeback, et la dépendance au fournisseur comme compromis délibéré assorti d’une stratégie de sortie.Continuer →

Sources et lectures complémentaires

Une question sur cette section ? ArchitectBot, l’assistant d’étude IA du cours, répond d’abord à partir du cours.

Demander : « Nous avons quinze équipes produit qui gèrent chacune leurs propres pipelines et leur propre Terraform. Comment décider de ce que doit être notre premier golden path, et comment saurai-je que la plateforme fonctionne ? »