Comment nous aidons une grande entreprise automobile à créer une plateforme interne de développeurs

Nous aidons une grande entreprise automobile à mettre en place un portail interne pour les développeurs (IDP) afin de fournir un catalogue de logiciels centralisé et de mettre de l’ordre dans ses microservices et son infrastructure.

Wir haben eine zentrale Plattform entwickelt, die die Erstellung von Entwicklungsumgebungen auf no-code oder low-code Ebene ermöglicht. Durch die Implementierung und Anpassung des Open-Source-Projekts Backstage, der Integration von Code-Repositories und der Einrichtung von Deployment-Pipelines haben wir die Zeit und Ressourcen, die für das Aufsetzen von Umgebungen erforderlich sind, erheblich reduziert. Jetzt können Entwicklerteams in wenigen Stunden oder sogar Minuten, statt in Wochen oder Monaten, produktive Entwicklungsumgebungen erstellen.

Défis

En raison de la construction historique d’une multitude de possibilités de créer des environnements de développement au sein du groupe, l’un des principaux points noirs était que les environnements devaient être mis en place manuellement dans toutes les équipes de développement – de nombreuses équipes devaient faire face aux mêmes défis pour mettre en place, configurer, entretenir et maintenir les clusters Kubernetes. La nouvelle approche d’une solution centralisée pour mettre en place des systèmes de développement au niveau no-code ou low-code est la solution au problème, elle permet d’économiser du temps et des ressources et de réduire la mise en place d’environnements de développement de semaines, parfois de mois, à quelques minutes ou quelques heures.

Qu'avons-nous fait ?

Nous avons utilisé le projet open source populaire Backstage sur Kubernetes pour les IDP et l’avons adapté en ajoutant des fonctionnalités front-end et back-end, en mettant en œuvre une stratégie de gestion des secrets, en intégrant des référentiels de code et en créant des pipelines de déploiement pour les clusters Kubernetes gérés.

Nous avons mis l’accent sur les meilleures pratiques en matière d’authentification, de sécurité, de mise à niveau et de maintenance, et avons également établi un modèle de contribution pour les plug-ins et les intégrations API. Cela permet aux équipes de développement de l’entreprise automobile d’étendre les avantages de Backstage au sein de leur organisation.

Avantages

  • Pour les responsables de l’ingénierie, la plate-forme permet de maintenir les normes et les meilleures pratiques dans toute l’organisation et peut aider à gérer l’ensemble de l’écosystème technologique, des migrations à la certification des tests.
  • Pour les développeurs, la plateforme facilite la création rapide et simple de composants logiciels de manière standardisée et offre un lieu central pour gérer tous les projets et la documentation.
  • Pour les ingénieurs d’infrastructure, la plateforme permet de créer et de déployer facilement une infrastructure gérée, comme les clusters Kubernetes, les machines virtuelles et les bases de données, qui répondent aux normes de sécurité de l’organisation, ce qui permet de réduire les temps de démarrage du développement de plusieurs mois à quelques minutes.
  • Pour les ingénieurs de la plateforme, la plateforme permet une grande extensibilité et évolutivité grâce à l’intégration facile de nouveaux outils et services (via des plugins) et l’extension des fonctionnalités des services existants.

Pour tous, la plateforme offre une expérience unifiée qui rassemble en un seul endroit tous les outils d’infrastructure, les ressources, les normes, les propriétaires, les contributeurs et les administrateurs.

Aperçu de l’architecture

Le système de la plateforme comprend plusieurs services qui travaillent ensemble pour faciliter la création de composants logiciels et le déploiement déclaratif de l’infrastructure.

Les coulisses

Backstage sert d’interface principale et permet aux utilisateurs de créer des composants logiciels à partir de modèles via un navigateur Web. Il se compose d’un front-end basé sur React et d’une API back-end basée sur Express.js. L’architecture modulaire de Backstage permet une extension facile grâce à des plugins fournis par la communauté ou développés en interne.

ArgoCD

ArgoCD est utilisé dans la plateforme pour les workflows de déploiement basés sur GitOps dans Kubernetes. Il synchronise les manifestes YAML d’un dépôt Git avec un cluster Kubernetes, tout en maintenant la cohérence entre l’état souhaité et l’état réel du cluster.

Crossplane

Crossplane, un plan de contrôle Kubernetes, étend l’API Kubernetes pour gérer les ressources d’infrastructure externes chez des fournisseurs comme Azure, AWS et Google Cloud. Il utilise la boucle de réconciliation Kubernetes pour mettre à jour en permanence l’état des ressources déployées en fonction des manifestes définis.

Qu'avons-nous fait

Nous avons développé une plateforme de développement centrale en tant que MVP, qui permet de créer des environnements de développement au niveau no-code ou low-code. En implémentant et en adaptant le projet open source Backstage, en intégrant des référentiels de code et en mettant en place des pipelines de déploiement, nous avons considérablement réduit le temps et les ressources nécessaires à la mise en place des environnements. Désormais, les équipes de développeurs peuvent créer des environnements de développement productifs en quelques heures, voire quelques minutes, au lieu de plusieurs semaines ou mois.