Date de la publication : 29 juillet 2025

Lecture : 13 min

Accélérez le développement de systèmes embarqués avec GitLab

Découvrez comment les tests matériels automatisés, les compilations standardisées, les workflows collaboratifs, et la conformité intégrée éliminent les goulots d’étranglement dans le développement de micrologiciels.

Les logiciels présents dans les systèmes embarqués, autrefois perçus comme de simples composants techniques, constituent désormais un facteur de différenciation essentiel. Les micrologiciels qui optimisent le fonctionnement de nos véhicules, avions et équipements industriels atteignent aujourd’hui un niveau de complexité remarquable. D'ici fin 2025, chaque véhicule contiendra en moyenne 650 millions de lignes de code, contre 200 millions il y a seulement cinq ans. Dans l’aérospatial, la complexité des logiciels embarqués a presque doublé tous les quatre ans au cours des dernières décennies.

Les approches traditionnelles de développement de systèmes embarqués ralentissent le travail des ingénieurs, qui peinent à gérer efficacement la complexité croissante des composants logiciels des machines modernes, notamment :

Les équipes chargées de développer des systèmes embarqués doivent adopter une nouvelle approche pour faire face à l'augmentation rapide de la taille des dépôts de code.

Découvrez dans cet article quatre façons de tirer parti des capacités d'IA native de la plateforme DevSecOps de GitLab, afin de raccourcir les boucles de rétroaction, favoriser un travail collaboratif et itératif, et rationaliser la gestion de la conformité.

Défi 1 : les goulots d'étranglement lors des tests matériels

Contrairement aux logiciels d'entreprise qui peuvent s'exécuter sur pratiquement n'importe quel serveur cloud, les logiciels embarqués du secteur automobile doivent être testés sur du matériel spécialisé reproduisant fidèlement les environnements de production. Les processus de test HIL (Hardware-In-the-Loop) traditionnels suivent souvent ce workflow :

  1. Un développeur écrit le code d'un système embarqué (par exemple, une unité de commande électronique).
  2. Il sollicite l'accès à des bancs d'essai matériels limités et onéreux (le prix peut varier entre 500 000 $ et 10 millions de dollars chacun).
  3. Il patiente plusieurs jours, voire des semaines, avant d'obtenir cet accès.
  4. Puis il déploie et teste manuellement le code directement sur son poste de travail.
  5. Enfin, il documente les résultats des tests, transmet le matériel à un autre membre de l'équipe de développement pour la suite du projet, et attend de pouvoir effectuer à nouveau d'autres tests matériels.

Ce processus s'avère particulièrement inefficace. Une fois leur code écrit, les développeurs de systèmes embarqués peuvent attendre plusieurs semaines avant de pouvoir le tester sur une cible matérielle. Entre temps, ils sont déjà passés à d'autres tâches, ce qui entraîne un changement de contexte préjudiciable à leur productivité. Pire encore, ils peuvent découvrir au bout de plusieurs semaines qu'une simple erreur de calcul s'est glissée dans leur code.

Solution : allocation automatisée du matériel et intégration continue

Vous pouvez rationaliser les tests matériels grâce à l'automatisation en utilisant le composant CI/CD On-Premises Device Cloud de GitLab. Ce composant permet d'automatiser l'orchestration de ressources matérielles limitées en transformant un processus manuel et fastidieux en un workflow rationalisé et continu.

Le composant On-Premises Device Cloud procède comme suit :

  1. Il crée des pools de ressources matérielles partagées.
  2. Il alloue automatiquement (et exclusivement) du matériel aux tâches de test matériel du pipeline d'un développeur en fonction de la disponibilité.
  3. Il déploie et exécute les tests sans intervention manuelle.
  4. Il collecte les résultats des tests et les partage via des pipelines CI/CD intégrés.
  5. Il libère automatiquement le matériel dans le pool de ressources « disponibles ».

Une fois que vous avez soumis le code, vous recevez les résultats en quelques heures, au lieu de plusieurs jours auparavant, souvent sans jamais toucher physiquement le matériel de test.

Découvrez dans cette vidéo comment le composant CI/CD On-Premises Device Cloud de GitLab permet d'orchestrer à distance l'allocation de matériel partagé pour les tests HIL :

Vous pouvez également adopter des stratégies de test multi-niveaux, qui offrent un compromis optimal entre rapidité d'exécution et qualité des résultats. Pour cela, intégrez les modèles et environnements de test de systèmes embarqués suivants dans vos pipelines automatisés GitLab CI :

  • Software-in-the-Loop (SIL) : tests effectués sur des simulateurs de matériel virtuels pour obtenir plus rapidement les tout premiers retours sur le code.
  • Processor-in-the-Loop (PIL) : tests réalisés sur un processeur proche du contexte final pour obtenir des retours sur le code plus rapidement et à moindre coût.
  • Hardware-in-the-Loop (HIL) : tests sur du matériel complet équivalent à celui de l'environnement de production, utilisés comme bancs d'essai pour vérification à un stade avancé.

En automatisant l'orchestration de ces différents tests dans vos pipelines CI, vous serez en mesure d'identifier les problèmes plus tôt, d'itérer plus rapidement et d'accélérer les délais de mise sur le marché.

Défi 2 : les environnements de compilation incohérents

L'hétérogénéité des environnements de compilation constitue un problème majeur dans le développement de systèmes embarqués. Les équipes chargées de développer des systèmes embarqués exécutent souvent manuellement des compilations sur leurs machines locales avec des configurations, versions de compilateur et dépendances parfois très différentes. Elles intègrent ensuite les binaires issus de leurs compilations locales dans le code source partagé.

Cette approche entraîne plusieurs problèmes :

  • Résultats incohérents : basées sur le même code source, les compilations produisent des résultats différents selon les machines utilisées.
  • Syndrome du « Ça fonctionne sur ma machine » : le code compilé localement échoue dans les environnements partagés.
  • Mauvaise traçabilité : piste d'audit limitée pour connaître l'auteur, la date et le motif de la compilation.
  • Compartimentation des connaissances : seuls quelques experts maîtrisent le processus de compilation.

Cette approche accroît le risque d'erreurs, crée des goulots d'étranglement et peut générer des retards coûteux.

Solution : automatisation standardisée des compilations

Vous pouvez relever ces défis en mettant en œuvre une automatisation standardisée de la compilation au sein de vos pipelines CI/CD dans GitLab. Cette approche garantit des environnements de compilation cohérents, reproductibles et basés sur des conteneurs, éliminant ainsi les variations spécifiques de configuration entre les différentes machines. En combinant cette standardisation avec des scripts de provisionnement Embedded Gateway Runner spécifiques, les conteneurs peuvent s'interfacer avec le matériel pour y déployer du code et surveiller les ports dans le cadre de tests automatisés.

Voici les points clés de cette solution :

  • Environnements gérés par le cycle de vie : définissez vos environnements de simulation de systèmes embarqués complexes sous forme de code, déployez-les automatiquement pour les tests, puis détruisez-les une fois les tests terminés.
  • Conteneurisation : utilisez des conteneurs Docker pour garantir des environnements de compilation homogènes et reproductibles.
  • Gestion automatisée des dépendances : assurez un contrôle et un versionnage rigoureux de toutes les dépendances.
  • Compilations centralisée : exécutez les compilations sur une infrastructure partagée, plutôt que sur des machines locales.

Suivez ce tutoriel et découvrez comment automatiser les compilations de logiciels embarqués dans un pipeline GitLab CI.

En standardisant et en automatisant le processus de compilation, vous vous assurez que chaque compilation suit les mêmes étapes avec des dépendances identiques, produisant ainsi des résultats cohérents, quelle que soit la personne qui l'a initiée. Cette approche améliore non seulement la qualité, mais rend aussi le processus accessible à toute l'équipe, même aux membres ne possédant pas une expertise approfondie dans ce domaine.

Défi 3 : les pratiques de développement cloisonnées

Alors que les équipes de développement ont largement adopté des pratiques collaboratives telles que DevOps, en s'appuyant sur la gestion partagée du code source (SCM) et les systèmes d'intégration et de livraison continues (CI/CD), les développeurs de systèmes embarqués travaillent encore souvent seuls à leur bureau. Cette situation s'explique par plusieurs contraintes techniques légitimes.

Par exemple, la virtualisation matérielle est un pilier de l'automatisation DevOps. Toutefois, le secteur a été plus lent à virtualiser la vaste gamme de processeurs et de cartes spécialisés utilisés dans les systèmes embarqués, en grande partie en raison des difficultés liées à la virtualisation des systèmes de production en temps réel et d'un manque d'incitations économiques. Nous pouvons comparer cela à la virtualisation cloud, qui s'est largement démocratisée et a profité au développement SaaS depuis plus d'une décennie.

Aujourd'hui, de nombreux fournisseurs adoptent désormais la virtualisation afin d'accélérer le développement des systèmes embarqués. Cependant, si les équipes ne parviennent pas à adopter des options de test virtuel, l'effet de silo persistera, avec des impacts négatifs sur l'entreprise, notamment les suivants :

  • Une fragmentation des connaissances : les informations critiques restent dispersées entre différents membres de l'équipe et entre différentes équipes.
  • Un développement redondant : plusieurs équipes résolvent les mêmes problèmes, ce qui crée des incohérences.
  • Une découverte tardive lors des intégrations massives (big-bang) : les problèmes ne sont détectés qu'aux dernières étapes du processus, lorsque plusieurs développeurs intègrent leur code en même temps, rendant la correction des erreurs plus coûteuses.
  • Un ralentissement de l'innovation : les solutions développées dans un domaine ont peu d'impact sur les autres, ce qui entrave le développement de nouvelles idées de produits.

Solution : ingénierie collaborative via une plateforme unifiée

Une étape importante pour briser ces silos consiste à standardiser le développement de systèmes embarqués sur la plateforme DevSecOps unifiée de GitLab. GitLab joue un rôle central dans l’évolution des systèmes embarqués vers des plateformes consolidées et partagées, adaptées aux contraintes des appareils embarqués.

La plateforme GitLab offre notamment les avantages suivants :

  • Une visibilité partagée : l'ensemble du code, des tickets et de la documentation sont accessibles à toutes les équipes.
  • Des workflows collaboratifs : favorisez la revue par les pairs et le partage des connaissances par le biais de merge requests.
  • Des connaissances centralisées : maintenez une source unique de vérité pour tous les artefacts de développement.
  • Une collaboration asynchrone : les équipes sont en mesure de collaborer efficacement, quel que soit leur localisation ou leur fuseau horaire.

La collaboration entre les humains et les agents d'IA est un ingrédient fondamental pour stimuler les innovations orientées client, tant pour les générations nées à l'ère du numérique que pour les marques établies proposant des systèmes embarqués. GitLab facilite cette synergie en favorisant la transparence tout au long du cycle de développement, transformant ainsi le développement de systèmes embarqués en une pratique collaborative plutôt qu'une activité isolée. Les équipes de développement peuvent suivre le travail de leurs collègues, apprendre des expériences collectives et s'appuyer sur des solutions partagées.

Regardez cette présentation d'Embedded World Germany 2025 et découvrez le potentiel des équipes chargées de développer des systèmes embarqués qui collaborent et partagent leur travail en cours en temps réel. La partie démonstration (de 24:42 à 36:51) illustre comment intégrer les tests HIL dans un pipeline GitLab CI afin de favoriser un développement collaboratif efficace.

Plus important encore, en renforçant leur collaboration grâce à l'approche DevSecOps, les équipes parviennent à concevoir des systèmes embarqués totalement novateurs. En effet, la collaboration alimente l'innovation. Par exemple, une étude a démontré que le brainstorming de groupe, lorsqu'il est correctement structuré, génère des idées plus innovantes et créatives que le travail individuel. Dans la course au développement de produits définis par logiciel, le développement collaboratif est donc un facteur clé de succès.

Défi 4 : les processus manuels de conformité à la sécurité fonctionnelle

Dans les secteurs de l'automobile et de l'aérospatiale, les systèmes embarqués doivent respecter des normes strictes de sécurité fonctionnelle, telles que les ISO 26262, MISRA C/C++, DO-178C et DO-254. Les approches traditionnelles de conformité impliquent des revues manuelles, une documentation volumineuse et plusieurs étapes de vérification tardives dans le cycle de développement. Elles créent souvent des goulots d'étranglement lors de la recherche de failles de sécurité. Par exemple, lorsque des scanners spécialisés dans la sécurité et la qualité du code des systèmes embarqués détectent des vulnérabilités, le ticket associé vient s'ajouter à la pile de tickets non résolus. Les développeurs ne peuvent pas intégrer leur code et les équipes de sécurité doivent traiter un important backlog de violations des exigences de conformité. Cette situation ralentit considérablement les délais de mise en conformité et freine l'avancement global du projet.

Voici les principaux défis à relever :

  • Détection tardive des problèmes de conformité : les anomalies sont découvertes une fois le développement terminé.
  • Charge de travail liée à la documentation : effort manuel important pour créer et maintenir des preuves de conformité.
  • Goulots d'étranglement relatifs aux processus : étapes de conformité réalisées de manière séquentielle, qui bloquent la progression du développement.
  • Dépendance à l'expertise : un nombre limité de spécialistes sont sollicités pour les activités de contrôle de la conformité.

En conséquence, les équipes doivent souvent choisir entre vélocité et conformité, un compromis risqué lorsqu'il s'agit de systèmes critiques pour la sécurité.

Solution : un workflow automatisé de contrôle de la conformité en matière de sécurité fonctionnelle

Plutôt que de traiter la sécurité et la conformité comme des étapes de vérification post-développement, vous pouvez codifier les exigences de conformité et les appliquer automatiquement via des frameworks personnalisables dans GitLab. Pour ce faire, en particulier pour les normes de sécurité fonctionnelle, vous pouvez intégrer GitLab à des outils spécialisés, capables d’analyser en profondeur les micrologiciels conformément aux normes en vigueur dans ce domaine. Parallèlement, GitLab propose des contrôles de conformité automatisés, des pistes d'audit complètes et un contrôle rigoureux des merge requests : autant de fonctionnalités essentielles pour prendre en charge un programme de conformité logicielle continue robuste.

Voici les composants de cette approche intégrée :

  • Compliance-as-Code : définissez les exigences de conformité sous forme de contrôles automatisés.
  • Intégration d'outils spécialisés : connectez des outils tels que CodeSonar à la plateforme DevSecOps pour valider les exigences de conformité propres au secteur automobile.
  • Vérification continue de la conformité : évaluez la conformité tout au long du cycle de développement.
  • Collecte automatisée des preuves : rassemblez les artefacts de conformité comme un sous-produit du développement.

Découvrez dans cette vidéo comment tirer parti des frameworks de conformité personnalisés dans GitLab afin de créer vos propres politiques de conformité adaptées aux normes en vigueur (par exemple, ISO 26262) et comment les appliquer automatiquement à vos projets dans GitLab.

En contrôlant la conformité en amont et en l'intégrant naturellement dans vos workflows de développement existants, vous pouvez maintenir les normes de sécurité sans compromettre la vélocité. Les contrôles automatisés détectent les problèmes à un stade précoce, lorsqu'ils sont plus faciles et moins coûteux à résoudre, tandis que la collecte continue de preuves réduit la charge de travail liée à la gestion de la documentation.

Accélérez la livraison de vos logiciels avec les systèmes embarqués

Le développement de systèmes embarqués connaît une transformation rapide. Les équipes qui s'en tiennent à des processus manuels et des workflows isolés seront de plus en plus à la traîne, tandis que celles qui adoptent des pratiques automatisées et collaboratives dessineront l'avenir des systèmes intelligents définis par logiciel.

Pour vous lancer, explorez notre atelier DevOps dédié aux systèmes embarqués et commencez à automatiser vos workflows de développement de systèmes embarqués avec GitLab. Vous pouvez également regarder cette présentation par le Field Chief Cloud Architect de GitLab pour découvrir comment les entreprises leader intègrent les tests matériels dans leurs workflows d'intégration continue afin d'accélérer la livraison de leurs systèmes embarqués.

Votre avis nous intéresse

Cet article de blog vous a plu ou vous avez des questions ou des commentaires ? Partagez vos réflexions en créant un sujet dans le forum de la communauté GitLab.
Share your feedback

Plus de 50 % des entreprises du classement Fortune 100 font confiance à GitLab

Commencez à livrer des logiciels de meilleurs qualité plus rapidement

Découvrez comment la plateforme DevSecOps intelligente

peut aider votre équipe.