Home >> Blog >> Backstage: reprendre le contrôle de votre plateforme développeur

Backstage: reprendre le contrôle de votre plateforme développeur

01 juin 2026

By Gaetan Metzger.

Le platform engineering est une trend. L’IA lui a volé la vedette — mais les deux vont de pair : pas de plateforme solide, pas d’IA exploitable en production. Si le sujet vous est nouveau, l’article dédié au platform engineering pose les fondations.

Mettre en place un Internal Developer Portal, c’est faciliter la collaboration entre équipes et réduire drastiquement la charge cognitive des ingénieurs.

C’est quoi Backstage ?

Backstage est un framework open source développé par Spotify en interne pour résoudre exactement ces problèmes à son échelle — des centaines d’équipes, des milliers de services.

Ils savaient dès le départ que chaque équipe a des besoins différents. Et qu’une grande entreprise en a encore plus. C’est pourquoi ils l’ont conçu modulaire et extensible : un core open source sur lequel chaque organisation construit son propre portail.

Spotify a depuis lancé une version managée (Spotify Portal) pour ceux qui ne veulent pas opérer l’infrastructure eux-mêmes. Mais la force de Backstage reste sa capacité à s’adapter à votre contexte — pas l’inverse.

Au-delà de la modularité, Backstage est avant tout une couche d’abstraction. Les briques platform — CI/CD, secrets, provisioning cloud, observabilité — sont souvent puissantes mais difficiles à exploiter pour les équipes produit. Backstage leur offre une interface unifiée : un seul point d’entrée, sans avoir à maîtriser chaque outil sous-jacent.

Un IDP comme Backstage, c’est la cerise sur le gâteau du platform engineering. Tout le travail d’exposition des APIs, de structuration des équipes, d’automatisation des workflows — Backstage lui donne une interface. Il rend visible ce qui est invisible, accessible ce qui est complexe.

Backstage en action

Le chaos sans portail développeur

Vous connaissez ce scénario.

Le chaos sans portail développeur

Ce n’est pas un problème de personnes. C’est un problème de charge cognitive.

Dans les équipes IT, personne ne peut tout savoir. Les systèmes grossissent, les équipes tournent, les contextes changent. Sans structure, chaque information devient une chasse au trésor — et ce coût invisible s’accumule sprint après sprint, jusqu’à ralentir tout le monde.

Un Internal Developer Portal (IDP) règle ce problème à la source : il centralise ce qui existe, qui en est responsable, et comment l’utiliser.

Les 3 piliers : Software Catalog, TechDocs, Scaffolder

Backstage repose sur trois briques fondamentales :

Software Catalog — la carte de votre système.
Chaque service, API, librairie ou pipeline est référencé avec son propriétaire, ses dépendances, son état. Fini le « je sais pas qui gère ça » — la réponse est dans le catalog, en un clic.

Concrètement, ça ressemble à un fichier catalog-info.yaml à la racine de chaque repo :

# Cas minimal — enregistrer un service dans le catalog
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
  name: payment-service
  description: Service de paiement
spec:
  type: service
  lifecycle: production
  owner: team-payments

Un fichier, un commit, et votre service est visible dans le portail. Mais en pratique, on va plus loin :

# Cas réaliste — avec dépendances, liens et TechDocs
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
  name: payment-service
  description: Gère les transactions Stripe et PayPal
  annotations:
    backstage.io/techdocs-ref: dir:.          # active TechDocs sur ce repo
    github.com/project-slug: sokube/payment-service
  tags:
    - payments
    - critical
  links:
    - url: https://grafana.internal/d/payment-dashboard
      title: Dashboard Grafana
      icon: dashboard
spec:
  type: service
  lifecycle: production
  owner: team-payments
  system: checkout-platform
  dependsOn:
    - component:order-service
    - resource:postgres-payments
  providesApis:
    - payment-api

Ce fichier devient la source de vérité du composant : qui en est responsable, de quoi il dépend, quelle API il expose, où est sa doc. Tout ça visible dans le portail, sans réunion, sans ticket.

TechDocs — la documentation là où elle doit être.
La doc vit dans le repo, au format Markdown, versionnée avec le code. Elle s’affiche directement dans Backstage. Plus besoin de fouiller Confluence, de tomber sur une page périmée de 2021.

Scaffolder — l’accélérateur de nouveaux projets.
Des templates as-code pour scaffolder un nouveau service en quelques minutes, avec les bonnes pratiques, les bons secrets, les bonnes configurations — déjà câblés.

Tout ça as code. Versionné. Reviewable. Auditable.

L’architecture de Backstage : frontend, backend, plugins

Backstage est une application Node.js/TypeScript composée de deux parties distinctes — souvent hébergées dans un même dépôt, mais que rien n’empêche de séparer :

packages/
  app/        # frontend React — ce que voient vos équipes
  backend/    # API Express — orchestration, catalog, providers

Le frontend est une application React. Il expose les plugins sous forme de pages et d’onglets. Vous pouvez le personnaliser — routing, vues, tableaux de bord — sans toucher au backend.

Le backend orchestre tout : il lit les catalog-info.yaml, interroge les providers externes (GitHub, GitLab, AWS, PagerDuty…), stocke les entités dans une base PostgreSQL, et sert les données aux plugins frontend via une API interne.

Plugin ecosystem — l’extensibilité sans repartir de zéro

Chaque outil de votre stack peut devenir un onglet dans Backstage. Un plugin, c’est un package npm en deux parties :

  • Plugin frontend : les composants React visibles dans l’UI
  • Plugin backend : l’API qui alimente le frontend (selon le plugin)

L’installation se résume à ajouter les packages npm et à les enregistrer dans packages/app/src/App.tsx (frontend) et packages/backend/src/index.ts (backend).

Si une brique manque, il y a de grandes chances qu’un plugin existe déjà. La bibliothèque de plugins Backstage recense plusieurs centaines de contributions communautaires — Kubernetes, Datadog, PagerDuty, GitHub Actions, Vault, ArgoCD… Votre DSI peut intégrer de nouveaux composants dans Backstage sans redévelopper le portail depuis le début. L’extensibilité n’est pas un bonus — c’est un pilier de l’adoption en entreprise.

Exemple : le plugin Kubernetes

Le plugin Kubernetes permet de voir directement dans Backstage l’état des deployments et pods liés à un service — sans quitter le portail, sans kubectl.

# plugin frontend
yarn --cwd packages/app add @backstage/plugin-kubernetes

# plugin backend
yarn --cwd packages/backend add @backstage/plugin-kubernetes-backend

Configuration dans app-config.yaml :

kubernetes:
  serviceLocatorMethod:
    type: multiTenant
  clusterLocatorMethods:
    - type: config
      clusters:
        - url: https://k8s.internal
          name: production
          authProvider: serviceAccount
          serviceAccountToken: ${K8S_SERVICE_ACCOUNT_TOKEN}
          caData: ${K8S_CA_DATA}

Puis une annotation dans le catalog-info.yaml du service pour lier le composant à ses pods :

metadata:
  annotations:
    backstage.io/kubernetes-label-selector: 'app=payment-service'

Plugin Kubernetes dans Backstage

Résultat : un onglet « Kubernetes » apparaît dans la fiche du service. Les devs voient l’état des pods, les derniers déploiements, les erreurs — sans accès direct au cluster. La même logique s’applique à n’importe quel outil de votre stack : Datadog, ArgoCD, Vault, GitHub Actions. Chaque plugin ajoute un onglet, une vue, une intégration — sans réécrire le portail.

Tout as code : découverte automatique et cycle de vie

Quand on dit que Backstage est « as code », ça ne veut pas dire juste « les fichiers sont dans un repo ». Ça veut dire que Backstage lit vos repos pour se mettre à jour tout seul.

Discovery automatique

Backstage peut scanner une organisation GitHub ou GitLab entière et importer automatiquement tous les catalog-info.yaml qu’il trouve :

# app-config.yaml — configuration Backstage
catalog:
  providers:
    github:
      myOrg:
        organization: sokube
        catalogPath: /catalog-info.yaml   # cherche ce fichier dans chaque repo
        schedule:
          frequency: { minutes: 30 }      # rescan toutes les 30 minutes
          timeout: { minutes: 3 }

Un nouveau repo créé avec un catalog-info.yaml apparaît dans le portail à la prochaine sync. Sans action manuelle. Sans ticket « merci d’ajouter notre service dans le catalog ».

C’est la différence fondamentale avec un CMDB ou un spreadsheet : la source de vérité est dans le repo, pas dans un outil externe qu’il faut alimenter à part.

Cycle de vie des composants

Le champ lifecycle dans le catalog-info.yaml n’est pas cosmétique. Il structure la gouvernance de votre système :

Lifecycle Signification
experimental En cours de développement — pas de garantie de stabilité
production Service actif — SLA engagé, breaking changes proscrits
deprecated À migrer — plus maintenu, date de fin de vie connue
spec:
  type: service
  lifecycle: deprecated   # visible dans le catalog, filtrable, searchable
  owner: team-platform

Les stakeholders peuvent filtrer le catalog par lifecycle — et identifier en un coup d’œil ce qui est en prod, ce qui est en train de mourir, ce qui est encore en évaluation. La gouvernance par le catalog plutôt que par le spreadsheet.

Ce que ça change vraiment en pratique

La visibilité, d’abord. Les managers peuvent voir quels composants sont utilisés, par qui, à quelle fréquence. Ce qui était une boîte noire devient observable.

Ensuite, le cycle de feedback. Un composant exposé dans le catalog peut recevoir des retours directement. Le propriétaire sait si son API est utilisée, si elle pose des problèmes, si elle répond aux besoins. Le cycle de vie d’un service devient vivant — pas figé dans un wiki interne oublié.

Les chiffres parlent d’eux-mêmes : après la mise en place de Backstage, Spotify a mesuré une réduction de 55% du temps d’onboarding de ses ingénieurs. Ce n’est pas un chiffre marketing — c’est le résultat direct d’avoir documenté, centralisé et automatisé ce qui se transmettait auparavant de bouche à oreille.

ce que ça change vraiment en pratique

Le prérequis qu’on oublie : une plateforme exposée en API

C’est le point que beaucoup sous-estiment au démarrage : Backstage ne fonctionne bien que si votre plateforme est exposée en API.

Si vos outils internes — CI/CD, secrets management, provisioning cloud, observabilité — ne sont pas consommables programmatiquement, Backstage restera un beau catalog vide. Un portail sans self-service, c’est juste une page Confluence avec un meilleur design.

Un bouton « Créer un ticket Jira » sur une page Confluence, ce n’est pas du self-service. C’est une file d’attente avec une meilleure UX.

API-driven n’est pas une option. C’est le prérequis.

Et c’est là qu’entre en jeu la Team Topology.

Le framework de Skelton & Pais distingue quatre types d’équipes. Deux sont critiques ici :

  • Les Stream-aligned teams : elles livrent de la valeur métier. Elles ont besoin de consommer la plateforme de façon fluide, sans friction, sans ticket.
  • La Platform team : elle construit et maintient la plateforme interne comme un produit. Avec une API. Avec une documentation. Avec un SLA. Ses clients sont les stream-aligned teams.

Backstage est l’interface entre les deux. C’est le « golden path » que la platform team expose aux équipes produit pour qu’elles s’auto-servent — sans dépendre d’un humain pour chaque action.

Sans platform team structurée, sans plateforme exposée en API, Backstage amplifie le vide plutôt que de le combler. L’outil ne remplace pas l’organisation.

Par où commencer ?

Start small.

L’adoption est le plus grand défi. Backstage peut bousculer les habitudes de travail des équipes — comment elles documentent, comment elles créent des projets, comment elles découvrent les services existants.

Si vous démarrez trop large, vous perdez les gens avant qu’ils voient la valeur.

Commencez par une seule équipe, un seul use case concret — le Software Catalog sur un périmètre limité, par exemple. Montrez la valeur rapidement. Laissez les autres équipes venir à vous une fois convaincues.

Chaque stakeholder converti par l’exemple vaut dix fois plus qu’un memo de direction.

Conclusion

Trois choses à retenir :

  • Un IDP réduit la charge cognitive, facilite la collaboration entre équipes et diminue les tickets ops liés au « je sais pas qui gère ça ».
  • Backstage est un framework, pas un produit fini — sa valeur est proportionnelle à ce que votre platform team y construit.
  • Backstage est un portail de consommation, pas une plateforme standalone. Partir sur un IDP sans avoir une plateforme exposée en API derrière n’a pas de sens.

Et si vous pensez IA : c’est exactement là que Backstage devient stratégique. Une plateforme bien structurée, avec des APIs claires et un portail comme Backstage, est extrêmement propice à une utilisation de l’IA encadrée — des agents capables de provisionner, déployer ou orchestrer en consommant les golden paths définis par votre platform team. Sans cette structure, l’IA reste un outil isolé. Avec elle, c’est un levier de productivité à l’échelle.

Conclusion

  Edit this page