Le Platform Engineering transforme l'expérience développeur en centralisant les outils, templates et documentation dans un portail unifié. Découvrez comment déployer Backstage.io chez Move2Cloud.
La crise de l'expérience développeur
Dans une organisation qui scale, les développeurs font face à une explosion de la charge cognitive. Chaque équipe a ses propres outils : Jira pour le suivi, Confluence pour la doc, Jenkins ou GitHub Actions pour le CI, SonarQube pour la qualité, Datadog pour la supervision, Vault pour les secrets. Un développeur junior qui rejoint l'entreprise doit apprendre des dizaines d'URL, de credentials et de workflows avant de pouvoir déployer son premier service.
Ce tool sprawl a un coût réel : les études DORA montrent qu'une mauvaise expérience développeur peut réduire la fréquence de déploiement de 40 %. Le Platform Engineering est la réponse organisationnelle à ce problème : créer une équipe platform dédiée qui construit et maintient les outils internes, permettant aux équipes produit de se concentrer sur la valeur métier.
Qu'est-ce qu'un Internal Developer Portal ?
Un Internal Developer Portal (IDP) est le point d'entrée unique pour tout ce dont un développeur a besoin : catalogue de services, documentation, templates de nouveaux projets, métriques de performance des équipes, et accès aux pipelines CI/CD. Backstage.io, créé par Spotify et donné à la CNCF en 2020, est devenu le standard de facto pour construire un IDP.
- Software Catalog : inventaire de tous les services, librairies, APIs et ressources de l'organisation
- Software Templates (Scaffolder) : création de nouveaux projets en quelques clics à partir de templates prédéfinis
- TechDocs : documentation as code générée depuis les dépôts Git et centralisée dans Backstage
- Plugins : intégrations avec GitHub, PagerDuty, Datadog, Kubernetes, Vault, etc.
Architecture de Backstage
Backstage est une application Node.js full-stack composée de deux parties :
backstage-app/
├── packages/
│ ├── app/ # Frontend React (ce que voient les développeurs)
│ └── backend/ # API Node.js + moteur de plugins backend
├── plugins/ # Plugins custom développés en interne
└── app-config.yaml # Configuration principale
Le core de Backstage est extensible via un système de plugins. Chaque plugin peut apporter des pages frontend, des API backend, et des intégrations avec des services tiers. L'écosystème compte aujourd'hui plus de 200 plugins open-source maintenus par la communauté.
Déploiement sur Kubernetes avec Helm
Move2Cloud recommande de déployer Backstage sur Kubernetes via le Helm chart officiel. Voici un exemple de configuration pour un cluster EKS :
# values.yaml pour le chart backstage
backstage:
image:
registry: ghcr.io
repository: votre-org/backstage
tag: "1.28.0"
extraEnvVarsSecrets:
- backstage-secrets # Secret K8s contenant GITHUB_TOKEN, POSTGRES_PASSWORD
appConfig:
app:
baseUrl: https://backstage.votre-entreprise.fr
backend:
baseUrl: https://backstage.votre-entreprise.fr
database:
client: pg
connection:
host: ${POSTGRES_HOST}
port: 5432
user: backstage
password: ${POSTGRES_PASSWORD}
postgresql:
enabled: true
auth:
password: ${POSTGRES_PASSWORD}
ingress:
enabled: true
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
host: backstage.votre-entreprise.fr
tls: true
helm repo add backstage https://backstage.github.io/charts
helm upgrade --install backstage backstage/backstage -f values.yaml --namespace platform --create-namespace
Définir des entités dans le catalog
Chaque service, API ou ressource est décrit par un fichier catalog-info.yaml à la racine du dépôt Git. Backstage découvre automatiquement ces fichiers via ses intégrations GitHub/GitLab.
# catalog-info.yaml
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
name: payment-service
description: Service de paiement gérant les transactions Stripe
annotations:
github.com/project-slug: move2cloud/payment-service
backstage.io/techdocs-ref: dir:.
datadog.com/site: datadoghq.eu
pagerduty.com/service-id: P1234AB
tags:
- payment
- critical
- nodejs
links:
- url: https://runbook.move2cloud.fr/payment
title: Runbook
icon: book
spec:
type: service
lifecycle: production
owner: group:team-payments
providesApis:
- payment-api
dependsOn:
- component:postgres-payment
- resource:aws-sqs-payment-queue
Software Templates : créer un microservice en un clic
Les Software Templates (Scaffolder) permettent aux développeurs de créer un nouveau service pré-configuré en remplissant un formulaire dans l'UI Backstage. Le template génère le dépôt Git, configure le CI/CD, ajoute le catalog-info.yaml, et enregistre le service dans le catalog.
# template.yaml
apiVersion: scaffolder.backstage.io/v1beta3
kind: Template
metadata:
name: nodejs-microservice
title: Node.js Microservice
description: Crée un microservice Node.js avec CI/CD GitHub Actions
spec:
owner: group:platform-team
type: service
parameters:
- title: Informations du service
properties:
name:
title: Nom du service
type: string
pattern: '^[a-z0-9-]+$'
owner:
title: Équipe propriétaire
type: string
ui:field: OwnerPicker
steps:
- id: fetch-template
name: Fetch Template
action: fetch:template
input:
url: ./skeleton
values:
name: ${{ parameters.name }}
owner: ${{ parameters.owner }}
- id: create-repo
name: Create GitHub Repo
action: publish:github
input:
repoUrl: github.com?owner=move2cloud&repo=${{ parameters.name }}
defaultBranch: main
- id: register
name: Register in Catalog
action: catalog:register
input:
repoContentsUrl: ${{ steps['create-repo'].output.repoContentsUrl }}
catalogInfoPath: /catalog-info.yaml
Intégration GitHub pour la découverte automatique
Backstage peut scanner automatiquement toute votre organisation GitHub pour découvrir les fichiers catalog-info.yaml. Configurez l'intégration dans app-config.yaml :
integrations:
github:
- host: github.com
token: ${GITHUB_TOKEN}
catalog:
providers:
github:
move2cloud-org:
organization: move2cloud
catalogPath: /catalog-info.yaml
filters:
branch: main
repository: '.*' # Tous les dépôts
schedule:
frequency: { minutes: 30 }
timeout: { minutes: 3 }
Tech Radar : gouvernance technologique
Le plugin Tech Radar permet à l'équipe platform de communiquer les recommandations technologiques (Adopt/Trial/Assess/Hold) à toute l'organisation, directement dans Backstage. C'est un outil puissant pour standardiser les choix techniques et éviter la prolifération de technologies non supportées.
ROI et métriques DORA
Les entreprises qui ont déployé un IDP basé sur Backstage rapportent des améliorations significatives sur les métriques DORA :
- Deployment Frequency : +60 % grâce aux templates standardisés qui éliminent la configuration manuelle
- Lead Time for Changes : -50 % car les développeurs trouvent immédiatement la documentation et les runbooks
- Time to Onboard : de 2 semaines à 2 jours pour un nouveau développeur
- Cognitive Load : réduction mesurable du nombre d'outils qu'un développeur doit connaître (de 15+ à 1 portail)
Chez Move2Cloud, nous avons accompagné plusieurs clients dans le déploiement de Backstage. L'investissement initial (2-3 semaines pour un MVP) est largement rentabilisé en quelques mois par la réduction du temps perdu à chercher de la documentation ou à configurer de nouveaux projets.
Conclusion
Le Platform Engineering avec Backstage n'est pas un projet technique — c'est un projet organisationnel. Le succès dépend autant de l'adoption par les développeurs que de la qualité technique. Commencez par un MVP avec le catalog et TechDocs, mesurez l'adoption, puis étendez avec les templates et les intégrations. L'équipe platform doit traiter les développeurs comme ses clients et itérer en fonction de leurs retours.
