<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://about.gitlab.com/blog</id>
    <title>GitLab</title>
    <updated>2025-11-07T19:24:39.440Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <author>
        <name>The GitLab Team</name>
    </author>
    <link rel="alternate" href="https://about.gitlab.com/blog"/>
    <link rel="self" href="https://about.gitlab.com/fr-fr/atom.xml"/>
    <subtitle>GitLab Blog RSS feed</subtitle>
    <icon>https://about.gitlab.com/favicon.ico</icon>
    <rights>All rights reserved 2025</rights>
    <entry>
        <title type="html"><![CDATA[Qu’est-ce que MLOps ?]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/what-is-mlops/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/what-is-mlops/"/>
        <updated>2025-11-07T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p><strong>Le MLOps (Machine Learning Operations) désigne l’ensemble des pratiques
qui permettent de déployer, surveiller et maintenir des modèles de machine
learning en production, de façon fiable et durable.</strong></p>
<p>Mettre en production un modèle n’est pas qu’une question d’entraînement. Entre la préparation des données, le déploiement, le suivi des performances et la maintenance, les équipes se heurtent à une complexité qui dépasse largement le simple développement. Résultat : des délais qui s’allongent, des coûts qui explosent, une fiabilité qui s’effondre.</p>
<p><strong>En résumé : le MLOps est au machine learning ce que le <a href="https://about.gitlab.com/fr-fr/topics/devops/" title="Qu'est-ce que le DevOps ?">DevOps</a> est au développement logiciel, c'est-à-dire une approche structurée qui automatise les workflows, améliore la collaboration entre les équipes data science et d’ingénierie, et garantit la continuité des modèles en production.</strong></p>
<p>En organisant tout le cycle de vie des modèles, de la conception à l’amélioration continue, le MLOps permet aux organisations de tirer un maximum de valeur de leurs projets d’IA et d’inscrire ces derniers dans la durée.</p>
<blockquote>
<p><strong><a href="https://about.gitlab.com/fr-fr/free-trial/devsecops/?utm_medium=blog&amp;utm_source=blog&amp;utm_campaign=eg_emea_x_trial_x_fr_blog_fr">→ Essayez GitLab Ultimate et GitLab Duo Enterprise gratuitement.</a></strong></p>
</blockquote>
<h2>Définition et rôle du MLOps</h2>
<p>Le terme <strong>MLOps</strong> vient de la contraction de <em>Machine Learning et Operations</em>. Il désigne l’ensemble des pratiques, outils et méthodes qui permettent de gérer le cycle de vie complet des modèles de machine learning, depuis leur conception jusqu’à leur exploitation en production.</p>
<p>L’idée centrale est de <strong>rapprocher deux univers souvent séparés</strong> : celui des <strong>Data Scientists</strong>, qui développent et entraînent les modèles, et celui des <strong>équipes d'ingénierie</strong>, qui doivent les déployer, les surveiller et les maintenir. En créant ce lien, le MLOps assure une continuité entre l’expérimentation et l’utilisation réelle.</p>
<p>Son rôle dépasse donc la simple automatisation. Le MLOps vise à garantir la fiabilité des modèles dans le temps, à fluidifier la collaboration entre équipes et à donner aux organisations un cadre pour <a href="https://about.gitlab.com/fr-fr/the-source/ai/6-strategies-to-help-developers-accelerate-ai-adoption/">exploiter le machine learning de manière industrielle et durable</a>.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1762517964/cwgub5rfekc0wzcms012.png" alt="Cartographie du concept MLOps"></p>
<h2>Pourquoi le MLOps est-il devenu indispensable ?</h2>
<p>Le machine learning s’est imposé bien au-delà de la recherche. Les cas d’usage se multiplient : détection de fraude en temps réel, recommandations personnalisées, maintenance prédictive, assistants génératifs. Ces modèles ne restent pas au stade expérimental : ils doivent tourner en production, souvent avec des exigences de latence strictes et sous des contraintes fortes.</p>
<p>Or, les difficultés apparaissent rapidement. Les <strong>cycles de déploiement s’allongent</strong>, les modèles se dégradent dès que les données évoluent, et les résultats deviennent difficiles à auditer. Sans optimisation, les coûts d’infrastructure s’envolent. Ces freins sont désormais bien connus des équipes.</p>
<p>Le MLOps apporte une réponse structurée à ces problèmes. Il standardise le <strong>déploiement</strong>, le <strong>suivi</strong> et la <strong>gouvernance</strong> des modèles. Il permet aussi de préparer l’avenir : intégrer l’AutoML, gérer des modèles génératifs, se conformer aux nouvelles réglementations comme l’AI Act (règlement européen sur l’intelligence artificielle).</p>
<p>Pour beaucoup d’organisations, l’adoption du MLOps marque une étape de <strong>maturité</strong>. Elle conditionne la capacité à transformer des prototypes en actifs pérennes et à inscrire l’IA dans une stratégie d’entreprise crédible.</p>
<h2>Quels sont les avantages du MLOps ?</h2>
<p>Le MLOps ne se résume pas à une méthode : c’est un changement de culture qui rend le machine learning <strong>plus rapide, plus fiable et plus scalable</strong> à chaque étape du cycle de vie du développement logiciel.</p>
<h3>1. Des équipes enfin alignées</h3>
<p>Le MLOps supprime les silos entre Data Scientists, développeurs et ingénieurs Ops. En partageant les mêmes pipelines et le même code source, chacun visualise les mêmes métriques et parle le même langage. Les modèles passent de la R&amp;D à la production sans rupture ni perte d’information.</p>
<h3>2. Un passage en production sans friction</h3>
<p>Grâce à l’automatisation CI/CD, les étapes d’entraînement, de test et de déploiement s’enchaînent sans intervention manuelle. Ce qui prenait des semaines se fait en quelques heures, avec des workflows reproductibles et contrôlés via des plateformes intégrées comme GitLab.</p>
<h3>3. Des modèles traçables et reproductibles</h3>
<p>Chaque version de modèle, de jeu de données et de code est archivée. En cas de dérive, il est possible de rejouer une expérience, d’identifier la cause ou de restaurer une version stable. Cette traçabilité transforme le machine learning en processus vérifiable et durable.</p>
<h3>4. Une supervision continue en production</h3>
<p>Le MLOps ne s’arrête pas au déploiement. Les performances sont surveillées en continu pour détecter les dérives. Des outils comme Prometheus ou Grafana peuvent être intégrés à GitLab afin d’alerter les équipes ou déclencher un réentraînement automatique.</p>
<h3>5. Une gouvernance intégrée par conception</h3>
<p>Le respect des exigences de sécurité, de conformité et d’auditabilité fait partie du pipeline. Documentation automatique, contrôle des accès et journaux d’audit garantissent la transparence et la conformité réglementaire sans effort supplémentaire.</p>
<h2>Principes et bonnes pratiques du MLOps</h2>
<p>Le MLOps ne se limite pas à des concepts. C’est aussi un ensemble de pratiques précises qui transforment un modèle expérimental en un service fiable et durable. Ces pratiques couvrent toute la chaîne logicielle : développement, déploiement, suivi et gouvernance.</p>
<h3>Automatisation des workflows (CI/CD/CT)</h3>
<p>Un projet de machine learning classique enchaîne plusieurs étapes répétitives :</p>
<ol>
<li>
<p>Préparation des données</p>
</li>
<li>
<p>Entraînement</p>
</li>
<li>
<p>Tests</p>
</li>
<li>
<p>Packaging</p>
</li>
<li>
<p>Déploiement</p>
</li>
</ol>
<p>Réalisées manuellement, elles s’avèrent lentes et fragiles. L’automatisation transforme ce parcours en une chaîne continue et prévisible.</p>
<p>Avec des <strong><a href="https://about.gitlab.com/fr-fr/topics/ci-cd/cicd-pipeline/" title="Qu'est-ce qu'un pipeline CI/CD ?">pipelines CI/CD</a></strong>, chaque modification de code ou de données déclenche automatiquement les étapes nécessaires : entraînement, validation, déploiement. Les modèles passent en production plus vite, avec moins d’erreurs.</p>
<p><strong><a href="https://about.gitlab.com/fr-fr/topics/ci-cd/" title="Qu'est-ce que le CI/CD ?">GitLab CI/CD</a></strong>, déjà largement adopté dans le développement logiciel, constitue un socle naturel pour orchestrer ces pipelines MLOps.</p>
<p><strong>Le CT (Continuous Training)</strong> complète le CI/CD en automatisant le réentraînement des modèles. Dès qu'une dérive est détectée ou qu'un seuil de performance est franchi, un nouveau cycle d'entraînement peut être déclenché automatiquement. Cette pratique maintient les modèles alignés avec l'évolution des données sans intervention manuelle.</p>
<p><strong>Exemple</strong> : ce fichier YAML minimaliste illustre un pipeline ML typique orchestré sur GitLab CI/CD :</p>
<ul>
<li>
<p>Ingestion et préparation des données,</p>
</li>
<li>
<p>Entraînement et sauvegarde du modèle,</p>
</li>
<li>
<p>Tests et évaluation,</p>
</li>
<li>
<p>Déploiement automatisé en production.</p>
</li>
</ul>
<pre><code class="language-yaml">
image: python:3.9


before_script: 
  - pip install --no-cache-dir -r requirements.txt 

stages:
  - prepare
  - train
  - test
  - deploy

prepare_data:
  stage: prepare
  script:
    - python scripts/prepare_data.py
  artifacts:
    paths:
      - data/processed/
    expire_in: 7 days

train_model:
  stage: train
  script:
    - python scripts/train.py --data data/processed/
  artifacts:
    paths:
      - models/model.pkl
    expire_in: 30 days

test_model:
  stage: test
  script:
    - pytest tests/
    - python scripts/evaluate.py models/model.pkl

deploy_model:
  stage: deploy
  script:
    - bash scripts/deploy.sh models/model.pkl
  when: on_success
</code></pre>
<h3>Gestion des versions (données, modèles, code)</h3>
<p>Sans gestion rigoureuse des versions, il est impossible de savoir sur quelles données un modèle a été entraîné ou de revenir à un état antérieur en cas de dérive.</p>
<p>Le MLOps généralise le <strong>versionnage systématique</strong>. Chaque jeu de données (dataset), chaque modèle et chaque pipeline est archivé et relié au code correspondant. GitLab, en s’appuyant sur <a href="https://about.gitlab.com/fr-fr/blog/2024/10/08/what-is-git/" title="Qu'est-ce que Git ?">Git</a>, apporte cette <a href="https://about.gitlab.com/fr-fr/topics/version-control/" title="Qu'est-ce que le contrôle de version ?">logique de gestion des versions</a> nativement. Étendue aux workflows ML, elle garantit une traçabilité complète de bout en bout.</p>
<p>Note : le <a href="https://docs.gitlab.com/user/project/ml/model_registry/">registre de modèles de GitLab</a> permet de versionner et de cataloguer les modèles ML aux côtés du code source, créant ainsi une source unique de vérité pour l'ensemble du projet.</p>
<h3>Validation et qualité des données et modèles</h3>
<p>Un modèle performant dans un environnement de test peut échouer en production. Pour éviter ce décalage, le MLOps introduit des validations à plusieurs niveaux.</p>
<ul>
<li>
<p><strong>Qualité des données</strong> : détection des valeurs aberrantes, cohérence entre jeux d’entraînement et de validation, suivi de la complétude.</p>
</li>
<li>
<p><strong>Robustesse des modèles</strong> : tests de performance, vérification des biais, évaluation sur des scénarios métiers représentatifs.</p>
</li>
</ul>
<p>Ces contrôles intégrés dans le pipeline réduisent le risque de déployer des modèles fragiles ou biaisés.</p>
<h3>Monitoring et détection de la dérive</h3>
<p>Un modèle n’est jamais figé. Les données évoluent, les comportements changent, et ses performances se dégradent avec le temps.</p>
<p>Le MLOps intègre un <strong>monitoring continu</strong> des métriques techniques et métiers. Il détecte les dérives statistiques, génère des alertes et peut même déclencher un réentraînement automatisé. Cette boucle prolonge la durée de vie des modèles et maintient leur alignement avec les besoins opérationnels.</p>
<h3>Ingénierie des données</h3>
<p>Beaucoup de projets échouent non pas à cause des modèles, mais à cause de <strong>données instables ou mal structurées</strong>. C’est pourquoi l’ingénierie des données est une composante essentielle du MLOps.</p>
<p>Elle repose sur plusieurs pratiques : définir des contrats de données clairs entre ceux qui produisent et ceux qui utilisent les données, surveiller en continu la qualité et la disponibilité des flux de données, et choisir le bon mode de traitement - batch pour les volumes massifs, streaming pour le temps réel. Ces fondations garantissent que les modèles s’appuient sur des données fiables et stables.</p>
<p>Un composant clé de cette démarche est le Feature Store, qui centralise et versionne les caractéristiques (features) utilisées par les modèles. Il garantit la cohérence entre l'entraînement et la production, évite la duplication et accélère le développement de nouveaux modèles.</p>
<h3>LLMOps pour les modèles génératifs</h3>
<p>Au-delà des modèles traditionnels, les modèles génératifs introduisent des défis inédits : prompts évolutifs, coûts d’inférence élevés, évaluation de la qualité plus complexe.</p>
<p>Le <strong>LLMOps</strong> transpose les principes du MLOps à ce contexte. Il inclut la gestion des versions de prompts, l’intégration des retours utilisateurs et le suivi détaillé des coûts d’exécution. Dans certains environnements, une seule application peut générer des coûts d’inférence de plusieurs milliers d’euros par jour : garder la maîtrise de ces dépenses devient un impératif stratégique.</p>
<h2>Cycle de vie d’un projet MLOps</h2>
<p>Le MLOps ne se résume pas à des principes. C’est avant tout une manière d’organiser le cycle de vie d’un projet de machine learning, depuis la préparation des données jusqu’à l’amélioration continue en production. Chaque étape est reliée aux autres et gagne en efficacité grâce à une approche structurée.</p>
<h3>Collecte et préparation des données</h3>
<p>La donnée est le point de départ de tout projet de machine learning. Pourtant, elle est aussi l’une de ses principales sources de difficulté. Plusieurs études montrent que la préparation des données peut mobiliser entre 50 % et 80 % du temps des Data Scientists, selon la qualité des sources et le degré d’automatisation disponible.</p>
<p>Le MLOps formalise ce travail avec des pipelines d’ingestion automatisés, des contrats de données entre équipes et des validations systématiques (complétude, cohérence, détection d’anomalies). Ces mécanismes réduisent les erreurs et sécurisent les étapes suivantes.</p>
<p>Cette base solide optimise les étapes d’entraînement avec les meilleures conditions possibles.</p>
<h3>Entraînement des modèles</h3>
<p>Une fois les données prêtes, l’objectif n’est pas seulement d’obtenir de bonnes métriques mais aussi de garantir la <strong>reproductibilité</strong> des résultats.</p>
<p>Le MLOps renforce cette étape avec deux leviers :</p>
<ul>
<li>
<p>le <strong>versionnage systématique</strong> des données, du code et des modèles ;</p>
</li>
<li>
<p>l’<strong>automatisation des expériences</strong> via des pipelines.</p>
</li>
</ul>
<p>Chaque essai est documenté, chaque paramètre enregistré. Les équipes peuvent comparer objectivement les résultats et identifier rapidement les configurations les plus prometteuses.</p>
<h3>Mise en production</h3>
<p>Un modèle performant en environnement de développement n’a pas d’impact tant qu’il n’est pas utilisé. La mise en production est donc une étape clé, mais souvent la plus délicate.</p>
<p>Le MLOps simplifie ce passage grâce à l’automatisation : packaging standardisé, tests intégrés, déploiement reproductible. Là où une mise en production pouvait nécessiter plusieurs semaines de coordination, elle peut désormais être réalisée en quelques jours.</p>
<p>Là encore, <strong>GitLab CI/CD</strong> offre une base solide pour orchestrer ces déploiements continus, en s’appuyant sur des outils déjà familiers aux <a href="https://about.gitlab.com/fr-fr/topics/devops/build-a-devops-team/" title="Equipes DevOps">équipes DevOps</a>.</p>
<h3>Suivi des performances et amélioration continue</h3>
<p>Une fois en ligne, le modèle est confronté à des données vivantes. Ses performances évoluent, parfois à la baisse.</p>
<p>Certaines équipes dépassent le simple monitoring en implémentant un <strong>réentraînement automatisé</strong> dès qu’un seuil de dégradation des performances est franchi. Cette boucle d’amélioration continue assure que le modèle reste pertinent et aligné avec les besoins du métier.</p>
<h2>Les rôles dans un projet MLOps</h2>
<p>Un projet MLOps ne repose pas sur une seule équipe mais sur la complémentarité de plusieurs profils. Chacun joue un rôle clé dans la conception, le déploiement et la maintenance des modèles.</p>
<h3>Data Scientists</h3>
<p>Les Data Scientists restent les architectes des modèles. Leur rôle est d’<strong>explorer les données</strong>, de concevoir les algorithmes et de tester différentes approches. Ils définissent aussi les métriques qui guideront l’évaluation des performances.</p>
<p>Dans une démarche MLOps, leur mission évolue. Les notebooks deviennent reproductibles, les scripts s’intègrent dans des pipelines, et les modèles sont versionnés. Ce changement de cadre évite que leurs travaux ne restent bloqués au stade de prototype et facilite leur passage en production.</p>
<h3>Data Engineers et équipes DevOps</h3>
<p>Les modèles n’ont de valeur que s’ils peuvent être exploités. Les Data Engineers et les équipes DevOps jouent un rôle central pour transformer les expérimentations en solutions robustes.</p>
<ul>
<li>
<p>Les <strong>Data Engineers</strong> construisent et maintiennent les pipelines d’ingestion, s’assurent de la qualité et de la disponibilité des flux de données, et posent les fondations de la gouvernance des données.</p>
</li>
<li>
<p>Les <strong>équipes DevOps</strong> orchestrent les déploiements, automatisent les tests et surveillent les environnements. Elles appliquent au machine learning les pratiques qui ont déjà révolutionné le développement logiciel : le CI/CD, le monitoring, la gestion des accès.</p>
</li>
</ul>
<p>Avec des plateformes comme <strong>GitLab</strong>, ces équipes disposent d’outils déjà éprouvés pour intégrer leurs workflows MLOps sans multiplier les outils et plateformes.</p>
<h3>Coordination avec les équipes métiers</h3>
<p>Un modèle ne se juge pas seulement à la précision de ses prédictions. Il doit aussi générer un impact visible pour l’organisation. C’est là que les équipes métiers entrent en jeu.</p>
<p>Elles définissent les <strong>indicateurs clés de succès</strong>, apportent leur expertise terrain et valident la pertinence des modèles dans des contextes concrets. Dans une démarche MLOps, cette collaboration devient permanente plutôt que ponctuelle. Les retours alimentent l’évaluation, influencent les priorités et guident les décisions de réentraînement.</p>
<p>Sans cette boucle de validation, même un modèle techniquement performant peut manquer sa cible et échouer à apporter de la valeur réelle.</p>
<h2>Quelles sont les erreurs fréquentes à éviter ?</h2>
<p>Même avec une démarche MLOps structurée, certains écueils reviennent régulièrement. Ils ralentissent les projets et compromettent leur valeur en production.</p>
<h3>Trop d’outils sans cadre clair</h3>
<p>Utiliser des outils spécialisés peut sembler une bonne idée : un pour l’ingestion, un autre pour l’entraînement, un troisième pour le monitoring, etc. Mais à mesure que la pile technologique s’étoffe, la complexité explose. Les coûts augmentent et la visibilité se réduit.</p>
<p>Le MLOps repose au contraire sur une <strong>vision unifiée</strong>. Les pipelines doivent s’appuyer sur des briques cohérentes, idéalement regroupées au sein de plateformes intégrées comme <strong>GitLab</strong>, qui limitent la fragmentation et assurent une traçabilité de bout en bout.</p>
<h3>Absence de métriques métiers</h3>
<p>Un modèle peut obtenir de très bons scores techniques tout en restant inutile pour l’organisation. L’absence d’indicateurs métiers conduit à déployer des modèles performants en apparence, mais <strong>déconnectés des besoins réels</strong>. Le suivi des métriques business (taux de fraude détecté, satisfaction client, temps de traitement gagné) doit compléter les métriques classiques du machine learning.</p>
<h3>Données instables et dette technique</h3>
<p>Sans pipelines de données robustes, les modèles héritent de jeux instables ou non représentatifs. À court terme, cela crée des résultats imprévisibles. À long terme, la multiplication des correctifs <strong>génère une dette technique</strong> qui alourdit chaque évolution. Le MLOps impose des pratiques d’ingénierie des données et une supervision continue pour maintenir des flux de données fiables et éviter cet effet boule de neige.</p>
<h2>MLOps vs DevOps : quelles différences ?</h2>
<p>Le MLOps s’inspire directement de l’approche DevOps. Les deux disciplines partagent une même philosophie : rapprocher le développement et les opérations, réduire les délais et fiabiliser les déploiements grâce à l’automatisation. Mais leurs applications divergent dès que l’on touche aux modèles de machine learning.</p>
<h3>Points communs</h3>
<p>Les deux approches reposent sur la même boîte à outils : <strong>pipelines CI/CD, monitoring et gestion des versions</strong>. Dans les deux cas, le but reste identique : <strong>livrer rapidement des artefacts fiables en production.</strong></p>
<h3>Ce qui les différencie</h3>
<p>La différence fondamentale vient de la <strong>nature des artefacts</strong>. En DevOps, nous déployons des applications statiques. En MLOps, nous déployons des <strong>modèles issus de données mouvantes</strong>.</p>
<p>Cette spécificité entraîne cinq conséquences majeures :</p>
<ul>
<li>
<p>nécessité de <strong>versionner des données et des modèles</strong>, pas seulement le code ;</p>
</li>
<li>
<p>intégration de <strong>validations métiers</strong> en plus des tests techniques ;</p>
</li>
<li>
<p><strong>surveillance continue des performances</strong>, car un modèle se dégrade dans le temps ;</p>
</li>
<li>
<p><strong>nature expérimentale</strong> : le même code peut produire des résultats différents selon les données et les paramètres utilisés, nécessitant un tracking systématique de chaque expérience ;</p>
</li>
<li>
<p><strong>optimisation itérative des hyperparamètres</strong> (learning rate, architecture, etc.) qui doivent être explorés, comparés et versionnés pour identifier la meilleure configuration.</p>
</li>
</ul>
<h3>La place du MLOps par rapport à DataOps et ModelOps</h3>
<p>Le MLOps ne vit pas en vase clos. Il se situe à la croisée de deux autres disciplines : le <strong>DataOps</strong>, centré sur la qualité et la gouvernance des données, et le <strong>ModelOps</strong>, focalisé sur la gestion et le déploiement des modèles.</p>
<p>En combinant ces deux dimensions, le MLOps prend en charge <strong>l’ensemble du cycle : de la fiabilité des données jusqu’à l’industrialisation des modèles.</strong></p>
<h2>Tendances à suivre</h2>
<p>Le MLOps évolue rapidement, porté par l’industrialisation de l’IA et l’émergence de nouvelles contraintes techniques et réglementaires. Plusieurs tendances structurent déjà les pratiques des prochaines années.</p>
<h3>Serverless MLOps et MLOps distribué</h3>
<p>L’adoption croissante du <strong>serverless</strong> simplifie l’exécution des pipelines ML : les ressources s’adaptent automatiquement à la charge, réduisant coûts et complexité. Parallèlement, le <strong>MLOps distribué à la périphérie (edge)</strong> prend de l’ampleur, notamment dans l’IoT et les applications embarquées. Les modèles s’exécutent directement au plus près des données, avec moins de latence et plus de réactivité.</p>
<h3>Nouvelles exigences de gouvernance et de régulation</h3>
<p>Avec l’<strong><a href="https://www.europarl.europa.eu/topics/fr/article/20230601STO93804/loi-sur-l-ia-de-l-ue-premiere-reglementation-de-l-intelligence-artificielle">AI Act européen</a></strong> entré en vigueur en 2024, la conformité devient un enjeu stratégique. Les organisations doivent prouver la traçabilité, l’explicabilité et la robustesse de leurs modèles. Le MLOps devient un levier essentiel pour intégrer dès aujourd’hui ces obligations, plutôt que de subir des blocages lors d’un audit ou d’un lancement produit.</p>
<h2>Ressources et outils pratiques</h2>
<p>Le MLOps ne s’arrête pas aux concepts. Il prend forme dans des workflows, des métriques et des règles de gouvernance que les équipes peuvent mettre en œuvre dans leurs projets.</p>
<h3>Checklist pour lancer un pipeline MLOps</h3>
<p>Mettre en place un pipeline MLOps ne s’improvise pas. Voici une checklist pour démarrer dans de bonnes conditions :</p>
<ul>
<li>
<p>Définir les objectifs métiers et les indicateurs clés de performance (KPI) ;</p>
</li>
<li>
<p>Préparer des pipelines de données avec des règles de validation automatisées ;</p>
</li>
<li>
<p>Versionner le code, les données et les modèles ;</p>
</li>
<li>
<p>Intégrer entraînement, tests et déploiement dans une chaîne CI/CD ;</p>
</li>
<li>
<p>Prévoir un monitoring continu des performances et de la dérive ;</p>
</li>
<li>
<p>Documenter et suivre chaque étape pour la gouvernance et la conformité.</p>
</li>
</ul>
<h3>Exemples de métriques à suivre en production</h3>
<p>Un modèle ne peut être piloté sans indicateurs. Les métriques à surveiller couvrent à la fois les aspects techniques et métiers :</p>
<ul>
<li>
<p><strong>Aspects techniques</strong> : précision, rappel, F1-score, latence, taux d’erreur ;</p>
</li>
<li>
<p><strong>Aspects métiers</strong> : taux de fraude détectée, réduction des coûts opérationnels, satisfaction client ;</p>
</li>
<li>
<p><strong>Aspects opérationnels</strong> : consommation de ressources, coût par prédiction, empreinte énergétique.</p>
</li>
</ul>
<p>Le suivi de ces métriques permet d’anticiper la dérive, d’ajuster les modèles et de prouver leur valeur ajoutée.</p>
<h2>Conclusion : l’importance du MLOps pour industrialiser l’IA</h2>
<p>De nombreux projets de machine learning échouent non pas à cause des modèles eux-mêmes, mais parce qu’ils ne franchissent pas le cap de la production. Trop souvent, ils restent confinés aux notebooks, difficiles à maintenir et incapables de s’adapter à des données changeantes. Le MLOps est né pour combler cet écart.</p>
<p>En automatisant les étapes critiques, en assurant la traçabilité des données et des modèles et en intégrant un suivi continu, il transforme des expérimentations isolées en <strong>actifs durables</strong>. Il ne s’agit plus seulement de tester une idée, mais de bâtir un système capable de créer de la valeur au fil du temps.</p>
<p>L’adoption du MLOps n'est pas qu'une approche technique : c’est un <strong>levier stratégique</strong>. Il accélère le passage de l’expérimentation au déploiement, réduit les coûts d’itération et donne aux métiers la confiance nécessaire pour utiliser l’IA à grande échelle.</p>
<p>Pour aller plus loin, les organisations ont besoin d’outils qui favorisent cette approche intégrée. Des plateformes comme <strong>GitLab</strong>, déjà au cœur des pratiques DevOps, offrent une base solide pour orchestrer les pipelines, gérer les versions et rapprocher les équipes. Le MLOps devient alors non seulement une méthode, mais une infrastructure de confiance pour industrialiser l’intelligence artificielle.</p>
<h2>GitLab, un socle naturel pour le MLOps</h2>
<p>Mettre en œuvre une démarche MLOps ne consiste pas à accumuler des outils, mais à créer une chaîne cohérente reliant développement, données et production. GitLab offre précisément cette continuité : un environnement unique où les équipes peuvent versionner le code, orchestrer les pipelines CI/CD, monitorer les modèles et documenter chaque étape du cycle de développement logiciel. En intégrant les pratiques MLOps dans une plateforme déjà familière aux équipes DevOps, les organisations évitent la complexité d’une infrastructure fragmentée et accélèrent la transformation de leurs projets de machine learning en solutions opérationnelles.</p>
<h2>FAQ sur le MLOps</h2>
<h3>Quelle est la différence entre MLOps et DevOps ?</h3>
<p>Le DevOps s’applique au développement logiciel classique, où l’artefact final est une application statique. Le MLOps reprend cette logique d’automatisation et de collaboration, mais l’adapte aux spécificités du machine learning. La différence majeure : un modèle n’est pas seulement du code, c’est aussi des données qui évoluent dans le temps. Le MLOps ajoute donc le versionnage des jeux de données (datasets) et des modèles, la validation métier et le suivi continu des performances.</p>
<h3>Quels outils utiliser pour mettre en place le MLOps ?</h3>
<p>Un écosystème varié existe : plateformes de CI/CD, solutions de monitoring, outils de versioning de données ou de gestion de modèles. L’enjeu est moins d’accumuler des briques que d’assurer leur intégration. Des plateformes comme GitLab, déjà adoptées pour le DevOps et le DevSecOps, offrent une base unifiée qui facilite l’automatisation, la collaboration et la traçabilité dans un cadre MLOps.</p>
<h3>Comment gérer la dérive d’un modèle en production ?</h3>
<p>La dérive survient lorsque les données en production ne ressemblent plus à celles utilisées pour l’entraînement, entraînant une baisse de performance. Le MLOps prévoit un monitoring continu des métriques, des alertes en cas d’écart et parfois des mécanismes de réentraînement automatique. La clé est de définir dès le départ les seuils critiques et les métriques métiers à surveiller.</p>
<h3>Comment mesurer le succès d’une démarche MLOps ?</h3>
<p>Le succès ne se limite pas aux performances techniques des modèles. Il se mesure aussi par :</p>
<ul>
<li>
<p>La <strong>réduction du temps</strong> nécessaire pour passer de l’expérimentation à la production ;</p>
</li>
<li>
<p>La <strong>stabilité et la traçabilité</strong> des modèles déployés ;</p>
</li>
<li>
<p>L’<strong>impact métier réel</strong>, via des indicateurs comme le gain de productivité, la baisse des coûts ou l’amélioration de l’expérience client.</p>
</li>
</ul>
<p>Une démarche MLOps réussie combine donc efficacité opérationnelle et création de valeur mesurable.</p>
<blockquote>
<p><strong><a href="https://about.gitlab.com/fr-fr/free-trial/devsecops/?utm_medium=blog&amp;utm_source=blog&amp;utm_campaign=eg_emea_x_trial_x_fr_blog_fr">→ Essayez GitLab Ultimate et GitLab Duo Enterprise gratuitement.</a></strong></p>
</blockquote>
]]></content>
        <author>
            <name>GitLab France Team</name>
            <uri>https://about.gitlab.com/blog/authors/gitlab-france team</uri>
        </author>
        <published>2025-11-07T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Rust : développement sécurisé avec GitLab]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/secure-rust-development-with-gitlab/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/secure-rust-development-with-gitlab/"/>
        <updated>2025-11-06T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Rust s'est imposé comme l'un des langages de programmation les plus appréciés grâce à ses performances,
sa mémoire sécurisée et ses fonctionnalités attractives. Alors que l'adoption de Rust continue de croître,
de nombreux développeurs recherchent des plateformes CI/CD robustes pour prendre en charge leurs projets Rust.</p>
<p>Pour les équipes de développement qui utilisent Rust, l'attrait de GitLab va bien au-delà du simple hébergement de code. La plateforme offre
des capacités <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/" title="Qu'est-ce que le CI/CD ?">CI/CD</a> robustes qui s'alignent parfaitement avec l'accent mis par Rust sur la sécurité, les performances et la fiabilité. GitLab facilite la création de dépôts et l'utilisation de conteneurs Docker prêts à l'emploi
pour exécuter des jobs CI personnalisés. Les équipes peuvent facilement configurer des tests automatisés, des compilations multiplateformes et la génération de documentation. L'approche intégrée de la plateforme DevSecOps résonne avec la philosophie de Rust qui consiste à fournir des outils complets prêts à l'emploi.</p>
<h2>À propos de l'application de démonstration</h2>
<p>Nous nous intéressons à l'impact des taux hypothécaires sur les paiements mensuels et à la difficulté d'acheter une maison dans le contexte actuel, c'est pourquoi nous avons décidé d'écrire un <a href="https://gitlab.com/gitlab-da/tutorials/security-and-governance/devsecops/rust/mortgage-calculator">calculateur de prêt hypothécaire</a> en Rust, que nous utiliserons comme exemple tout au long de ce tutoriel. N'hésitez pas à <a href="https://docs.gitlab.com/user/project/import/repo_by_url/">importer ce projet</a> pour mieux suivre la démonstration.</p>
<p>Le calculateur de prêt hypothécaire aidera les utilisateurs à calculer les paiements mensuels d'un prêt hypothécaire, qui incluent le capital, les intérêts, les taxes foncières, l'assurance, l'assurance du prêt hypothécaire privée et les frais d'association de propriétaires. Il fournit une interface graphique moderne et intuitive au moyen du framework <a href="https://www.egui.rs/">egui</a>, ainsi qu'une interface de ligne de commande pour l'exécuter dans le terminal.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1756314538/l5bjnzqvpoyikuyxpx2a.png" alt="Interface graphique du calculateur de prêt hypothécaire"></p>
<p>Cette application contient un fichier <a href="https://gitlab.com/gitlab-da/tutorials/security-and-governance/devsecops/rust/mortgage-calculator/-/blob/main/.gitlab-ci.yml?ref_type=heads"><code>.gitlab-ci.yml</code></a> qui génère un pipeline, lequel va construire, tester, empaqueter, analyser et déployer le logiciel. Nous examinerons cette définition du pipeline en détail dans les sections ci-dessous.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1756314540/llmsfoaupedhkem0hjqp.png" alt="Pipeline du calculateur de prêt hypothécaire"></p>
<h2>Compilation et test des applications Rust</h2>
<p>Le système CI/CD basé sur Docker de GitLab excelle dans les workflows de développement Rust, car il fournit une base robuste
pour la compilation, les tests et les vérifications de qualité du code. Les mécanismes de mise en cache de la plateforme
sont particulièrement précieux pour les projets Rust, qui peuvent avoir des temps de compilation longs en raison des
processus approfondis d'optimisation et de vérification de sécurité du langage.</p>
<h3>Compilation</h3>
<p>Les excellentes capacités de compilation croisée de Rust combinées au système CI/CD flexible de GitLab
créent une solution puissante pour construire des applications sur plusieurs plateformes. Cette combinaison est particulièrement utile pour les applications Rust qui doivent fonctionner sur divers systèmes d'exploitation et architectures sans impacter les performances ou nécessiter du code spécifique à la plateforme.</p>
<p><strong>Remarque :</strong> vous pouvez en apprendre davantage sur le fichier <code>.gitlab-ci.yml</code> en consultant la <a href="https://docs.gitlab.com/ci/yaml/">référence dédiée à la syntaxe YAML CI/CD</a>.</p>
<pre><code class="language-yaml"># Cache configuration to speed up builds by reusing dependencies
cache:
  key: $CI_COMMIT_REF_SLUG                               # Use branch name as cache key
  paths:
    - .cargo/                                            # Cache Cargo registry and git dependencies
    - target/                                            # Cache compiled artifacts

# Base template for Rust jobs - shared configuration
.rust-template:
  image: rust:$RUST_VERSION-slim                         # Use slim Rust image for faster downloads
  before_script:
    # Install system dependencies required for building the Rust application
    - apt-get update &amp;&amp; apt-get install -y pkg-config libssl-dev libgtk-3-dev libxcb-shape0-dev libxcb-xfixes0-dev

# Template for cross-compilation build jobs
.build-template:
  extends: .rust-template                                # Inherit from rust-template
  stage: build                                           # Execute during build stage
  script:
    - rustup target add $TARGET                          # Add the target platform for cross-compilation
    - cargo build --release --target $TARGET             # Build optimized release binary for target platform

# Build for Linux x86_64 (primary target platform)
build-linux:
  extends: .build-template                               # Use build template configuration
  variables:
    TARGET: x86_64-unknown-linux-gnu                     # Linux 64-bit target
  artifacts:
    paths:
      - target/$TARGET/release/mortgage-calculator       # Save the compiled binary
    expire_in: 1 week                                    # Keep artifacts for 1 week
  allow_failure: false                                   # This build must succeed

# Build for Windows x86_64 (cross-compilation)
build-windows:
  extends: .build-template                               # Use build template configuration
  variables:
    TARGET: x86_64-pc-windows-gnu                        # Windows 64-bit target
  artifacts:
    paths:
      - target/$TARGET/release/mortgage-calculator       # Save the compiled binary
    expire_in: 1 week                                    # Keep artifacts for 1 week
  allow_failure: true                                    # Allow this build to fail (cross-compilation can be tricky)

# Build for macOS x86_64 (cross-compilation)
build-macos:
  extends: .build-template                               # Use build template configuration
  variables:
    TARGET: x86_64-apple-darwin                          # macOS 64-bit target
  artifacts:
    paths:
      - target/$TARGET/release/mortgage-calculator       # Save the compiled binary
    expire_in: 1 week                                    # Keep artifacts for 1 week
  allow_failure: true
</code></pre>
<p>Cette configuration GitLab CI définit trois jobs de compilation qui compilent de manière croisée une application
de calculateur de prêt hypothécaire Rust pour différentes plateformes :</p>
<ul>
<li><code>build-linux</code> crée un binaire Linux x86_64 (requis pour réussir)</li>
<li><code>build-windows</code> crée des binaires Windows (autorisés à échouer)</li>
<li><code>build-macos</code> crée des binaires macOS x86_64 (autorisés à échouer)</li>
</ul>
<p>Toutes les compilations utilisent des templates partagés pour la mise en cache des dépendances et des environnements de compilation cohérents.</p>
<h3>Tests</h3>
<p>GitLab CI/CD simplifie les tests de code grâce à son système de pipeline intégré qui déclenche automatiquement
les suites de tests chaque fois qu'un push du code est effectué vers le dépôt. Les développeurs peuvent définir plusieurs types de tests (tests unitaires, tests d'intégration, linting et vérifications de formatage) dans un seul fichier de configuration <code>.gitlab-ci.yml</code>. Chaque test s'exécute dans des conteneurs Docker isolés pour garantir des environnements cohérents.</p>
<pre><code class="language-yaml">  # Run unit tests
test:unit:
  extends: .rust-template                                # Use Rust template configuration
  stage: test                                            # Execute during test stage
  script:
    - cargo test --verbose                               # Run all unit tests with verbose output

# Run integration tests using the compiled binary
test:integration:
  extends: .rust-template                                # Use Rust template configuration
  stage: test                                            # Execute during test stage
  script:
    # Test the compiled binary with sample inputs and verify expected output
    - target/x86_64-unknown-linux-gnu/release/mortgage-calculator --cli calculate --property-value 350000 --down-payment 70000 --interest-rate 5.0 | grep -q &quot;TOTAL MONTHLY PAYMENT&quot;
  needs:
    - build-linux                                        # Depends on Linux build job completing

# Run Clippy linter for code quality checks
test:clippy:
  extends: .rust-template                                # Use Rust template configuration
  stage: test                                            # Execute during test stage
  script:
    - rustup component add clippy                        # Install Clippy linter
    - cargo clippy -- -D warnings                       # Run Clippy and treat warnings as errors
  allow_failure: true                                    # Allow linting failures (can be improved over time)

# Check code formatting
test:format:
  extends: .rust-template                                # Use Rust template configuration
  stage: test                                            # Execute during test stage
  script:
    - rustup component add rustfmt                       # Install Rust formatter
    - cargo fmt -- --check                              # Check if code is properly formatted
  allow_failure: true                                    # Allow formatting failures (can be improved over time)
</code></pre>
<p>Cette configuration GitLab CI crée quatre jobs de test qui valident l'application de calculateur de prêt hypothécaire Rust :</p>
<ul>
<li><code>test:unit</code> exécute les tests unitaires</li>
<li><code>test:integration</code> exécute le binaire Linux compilé avec des intrants d'exemple pour vérifier la fonctionnalité</li>
<li><code>test:clippy</code> effectue le linting de la qualité du code (autorisé à échouer)</li>
<li><code>test:format</code> vérifie la conformité du formatage du code (autorisé à échouer)</li>
</ul>
<h2>Registres de paquets et de conteneurs</h2>
<p>Le <a href="https://docs.gitlab.com/user/packages/package_registry/">registre de paquets</a> de GitLab fournit une solution sécurisée au partage de bibliothèques internes et de code propriétaire au sein des organisations. Cette fonctionnalité est essentielle pour les entreprises et équipes qui doivent maintenir des artefacts et continuer à utiliser l'écosystème Rust au sens large.</p>
<p>Le registre prend en charge les <a href="https://docs.gitlab.com/user/packages/generic_packages/">artefacts génériques</a> avec des contrôles d'accès granulaires en fonction des permissions de projet de GitLab. Les équipes peuvent donc partager des bibliothèques en toute sécurité entre les projets ainsi que respecter la protection de la propriété intellectuelle et les exigences de conformité.</p>
<p>De plus, nous pouvons conteneuriser notre application et stocker les images de conteneur dans
le <a href="https://docs.gitlab.com/user/packages/container_registry/">registre des conteneurs</a> intégré de GitLab.</p>
<h3>Publication vers le registre de paquets GitLab</h3>
<p>Cette section de notre <code>.gitlab-ci.yml</code> démontre comment packager et publier des applications Rust
sous forme d'archives tar vers le registre de paquets génériques de GitLab au moyen de l'automatisation CI/CD.</p>
<pre><code class="language-yaml"># Package application as tar archive
package:tar:
  image: alpine/curl:8.12.1                             # Lightweight image with curl for uploading
  stage: package                                         # Execute during package stage
  variables:
    PACKAGE_NAME: mortgage-calculator.tar.gz             # Name of the archive file
  script:
    # Create tar archive of the Linux binary
    - tar -czvf $PACKAGE_NAME target/x86_64-unknown-linux-gnu/release/mortgage-calculator
    # Upload archive to GitLab Package Registry using API
    - |
      curl -v --location --header &quot;JOB-TOKEN: $CI_JOB_TOKEN&quot; \
      --upload-file $PACKAGE_NAME \
      &quot;$CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/tar/$CI_COMMIT_BRANCH/$PACKAGE_NAME&quot;
  artifacts:
    paths:
      - target/x86_64-unknown-linux-gnu/release/mortgage-calculator  # Save binary
      - mortgage-calculator.tar.gz                      # Save archive
    expire_in: 1 week                                    # Keep artifacts for 1 week
  needs:
    - build-linux                                        # Depends on Linux build completing
</code></pre>
<p>Cette configuration GitLab CI définit un job d'empaquetage <code>package:tar</code> qui crée une archive tar compressée
du binaire de calculateur de prêt hypothécaire Linux et l'importe vers le registre de paquets de GitLab, et sauvegarde à la fois le binaire et l'archive comme artefacts de pipeline.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1756314541/uqnejcipnge3r1dngotm.png" alt="Registre de paquets"></p>
<h3>Publication vers le registre de conteneurs GitLab</h3>
<p>Le bloc de code ci-dessous montre le processus de création de Dockerfiles et de publication d'images Docker vers le registre de conteneurs de GitLab avec un ajout de tags et une authentification appropriés.</p>
<pre><code class="language-yaml"># Package application as Docker image
package:docker:
  image: docker:24.0                                     # Use Docker image for building containers
  stage: package                                         # Execute during package stage
  services:
    - docker:24.0-dind                                   # Docker-in-Docker service for building images
  before_script:
    # Login to GitLab Container Registry
    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
  script:
    - docker build -t $DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG .  # Build Docker image with commit SHA tag
    - docker tag $DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG $DOCKER_IMAGE_NAME:latest  # Also tag as latest
    - docker push $DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG  # Push tagged image to registry
    - docker push $DOCKER_IMAGE_NAME:latest             # Push latest image to registry
</code></pre>
<p>Cette configuration GitLab CI définit un job d'empaquetage Docker <code>package:docker</code> qui crée une image Docker de l'application de calculateur de prêt hypothécaire, ajoute les tags « commit SHA » et « latest », puis pousse les deux versions avec un tag vers le registre de conteneurs de GitLab.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1756314537/nlodhvdnpqccf0cryfqu.png" alt="Registre de conteneurs"></p>
<h2>Scanning de sécurité</h2>
<p>Le scanning de sécurité GitLab fournit une protection complète qui va au-delà des garanties de sécurité mémoire intégrées de Rust. Bien que Rust prévienne de nombreuses vulnérabilités de sécurité courantes au moment de la compilation, les applications ont encore besoin de protection contre les vulnérabilités des dépendances, les blocs de code non sécurisés et les problèmes de sécurité logiques.</p>
<p>Les tests statiques de sécurité des applications ([SAST])(https://docs.gitlab.com/user/application_security/sast/) de la plateforme s'intègrent parfaitement avec la chaîne d'outils de Rust et fournissent une analyse de sécurité automatisée dans le pipeline CI/CD. Cette approche proactive détecte les problèmes de sécurité avant qu'ils n'arrivent en production afin de répondre à la fois aux exigences de conformité et aux pratiques de développement sécurisé.</p>
<p>Les fonctionnalités de sécurité complètes de GitLab, y compris les tests SAST, l'analyse des dépendances et la détection des secrets peuvent facilement être implémentées via des modèles, comme illustré ci-dessous.</p>
<p><strong>Remarque :</strong>  une configuration supplémentaire est requise pour <a href="https://docs.gitlab.com/user/application_security/sast/#scan-a-rust-application">activer les tests SAST pour Rust</a>.</p>
<pre><code class="language-yaml"># Include GitLab's security scanning templates for DevSecOps
include:
  - template: Jobs/SAST.gitlab-ci.yml                    # Static Application Security Testing
  - template: Jobs/Dependency-Scanning.latest.gitlab-ci.yml  # Scan dependencies for vulnerabilities
  - template: Jobs/Container-Scanning.gitlab-ci.yml      # Scan Docker containers for vulnerabilities
  - template: Jobs/SAST-IaC.gitlab-ci.yml               # Infrastructure as Code security scanning
  - template: Jobs/Secret-Detection.gitlab-ci.yml        # Detect secrets in source code
</code></pre>
<p>Les scanners de sécurité peuvent être configurés de manière similaire à n'importe quel job sur GitLab :</p>
<pre><code class="language-yaml"># Configure Semgrep SAST scanning for Rust files
semgrep-sast:
  rules:
    - if: $CI_COMMIT_BRANCH                              # Run on any branch
      exists:
        - &quot;**/*.rs&quot;                                      # Only if Rust files exist
  variables:
    SAST_EXCLUDED_PATHS: &quot;.cargo/**&quot;                     # Exclude Cargo cache from scanning

# Scan Docker container for security vulnerabilities
container_scanning:
  stage: container-security                              # Execute during container-security stage
  variables:
    CS_IMAGE: $DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG      # Image to scan
    CS_DOCKERFILE_PATH: Dockerfile                       # Path to Dockerfile for context
  needs:
    - package:docker                                     # Depends on Docker image being built
</code></pre>
<p>Lorsque des vulnérabilités sont détectées dans une merge request (MR), vous pouvez toutes les afficher et utiliser les informations fournies pour les résoudre ou les rejeter.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1756314544/gcicke3ltvbcv57mr8zr.png" alt="Affichage des vulnérabilités dans la MR"></p>
<p>Vous pouvez également ajouter des <a href="http://docs.gitlab.com/user/application_security/policies/">stratégies de sécurité</a> pour exiger une approbation avant que du code vulnérable puisse être fusionné, ou pour forcer l'exécution des scanners indépendamment de ce qui se trouve dans le <code>.gitlab-ci.yml</code>.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1756314538/c95nwocol03lonrr6r4n.png" alt="Politique d'approbation des merge requests"></p>
<p>Vous pouvez trier toutes les vulnérabilités trouvées dans votre branche par défaut au moyen du <a href="https://docs.gitlab.com/user/application_security/vulnerability_report/">rapport de vulnérabilités</a> :</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1756314544/b0nctigbv1ddpzizkp9x.png" alt="Rapport de vulnérabilités"></p>
<h2>Documentation avec GitLab Pages</h2>
<p><a href="https://docs.gitlab.com/user/project/pages/">GitLab Pages</a> fournit une excellente plateforme pour héberger la documentation Rust, car il s'intègre parfaitement avec la génération de documentation intégrée de Cargo. Ce workflow puissant génère et déploie la documentation API, les guides de projet et les exemples automatiquement à chaque modification de code.</p>
<p>La combinaison de <code>cargo doc</code> et GitLab Pages permet aux équipes de maintenir une documentation à jour sans intervention manuelle afin que la documentation soit synchronisée avec les modifications de code. Cette fonctionnalité est particulièrement utile pour les projets Rust où une documentation complète est essentielle pour comprendre les API complexes et les contrats de sécurité.</p>
<h3>Déploiement automatisé de la documentation</h3>
<p>Le code ci-dessous montre la configuration CI/CD nécessaire pour générer et déployer automatiquement la documentation Rust au moyen de <code>cargo doc</code> et GitLab Pages.</p>
<pre><code class="language-yaml"># Generate and publish documentation using GitLab Pages
build-documentation:
  extends: .rust-template                                # Use Rust template configuration
  stage: build                                           # Execute during build stage
  variables:
    GIT_SUBMODULE_STRATEGY: recursive                    # Clone submodules recursively if needed
  pages: true                                            # Enable GitLab Pages deployment
  script:
    - cargo doc --no-deps                                # Generate documentation without dependencies
    - mv target/doc public                               # Move docs to public directory for Pages
  artifacts:
    paths:
      - public                                           # GitLab Pages serves from public directory
  rules:
    - if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH     # Only run on default branch (main/master)
  environment:
    name: documentation                                  # Environment name for tracking
    url: $CI_PAGES_URL/mortgage_calculator/index.html   # Documentation URL
  allow_failure: true                                    # Allow documentation build to fail
</code></pre>
<p>Une fois le job terminé, vous pouvez consulter la documentation déployée en accédant à l'<a href="https://docs.gitlab.com/ci/environments/">environnement GitLab</a> où il a été déployé.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1756314541/aofa6wwjugeyeshuwg9r.png" alt="Environnement Pages"></p>
<p>De cette manière, vous pouvez gérer plusieurs versions de la documentation dans différents environnements. La documentation sera déployée de manière cohérente avec les données de sortie de <code>cargo doc</code> :</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1756314541/go0tmljjzoxq5bujsdbv.png" alt="Compilation de GitLab Pages"></p>
<h2>Déploiement dans tous les environnements</h2>
<p>L'une des plus grandes forces de GitLab est son approche indépendante de l'infrastructure pour le déploiement. Que votre organisation fonctionne sur des serveurs traditionnels sur site, sur des plateformes cloud modernes, sur des environnements hybrides ou sur une infrastructure edge computing, le système CI/CD de GitLab peut déployer des applications Rust de manière harmonieuse dans n'importe quel environnement cible.</p>
<p>La flexibilité de déploiement de GitLab découle de son approche axée sur les conteneurs et de son écosystème d'intégration étendu. La plateforme prend en charge le déploiement sur presque toutes les infrastructures capables d'exécuter des conteneurs, des machines virtuelles ou des applications sur serveur physique dédié. Cette polyvalence est particulièrement utile pour les applications Rust, qui doivent souvent fonctionner dans des environnements allant des systèmes embarqués avec des ressources limitées aux clusters cloud haute performance.</p>
<h3>Déploiement dans Kubernetes</h3>
<p>GitLab simplifie les déploiements dans Kubernetes avec une intégration de cluster intégrée et des images Docker préconfigurées qui incluent des outils essentiels comme Helm et kubectl. Les équipes de développement n'ont alors plus besoin de configurer des environnements de déploiement complexes.</p>
<pre><code class="language-yaml"># Deploy application to Kubernetes cluster
deploy:kubernetes:
  stage: deploy                                          # Execute during deploy stage
  image: registry.gitlab.com/gitlab-org/cluster-integration/helm-install-image:helm-3.10.0-kube-1.24.6-alpine-3.15  # Image with Helm and kubectl
  variables:
    HELM_HOST: &quot;localhost:44134&quot;                         # Helm host configuration
    HELM_DEPLOY_NAME: mortgage-calc-$CI_COMMIT_REF_NAME  # Deployment name based on branch
    HELM_DEPLOY_NAMESPACE: calc-app                      # Kubernetes namespace for deployment
    KUBE_CONTEXT: $CI_PROJECT_PATH:rust-mortgage-calculator  # Kubernetes context to use
  script:
    - kubectl config use-context $KUBE_CONTEXT          # Set the kubectl context
    # Deploy using Helm with custom values and Docker image
    - helm upgrade --install $HELM_DEPLOY_NAME chart -f chart/values.yaml
      --namespace $HELM_DEPLOY_NAMESPACE
      --create-namespace
      --set image=$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG
      --set calc.name=$HELM_DEPLOY_NAME
  needs:
    - package:docker                                     # Depends on Docker image being available
</code></pre>
<p>Cette configuration GitLab CI définit un job de déploiement <code>deploy:kubernetes</code> qui utilise Helm pour déployer l'application de calculateur de prêt hypothécaire sur un cluster Kubernetes, avec la création ou la mise à niveau du déploiement dans un espace de nommage dédié avec l'image Docker construite dans l'étape d'empaquetage précédente.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1756314538/bgmbh4qyfxcnnlqvsitc.png" alt="Données de sortie Kubernetes"></p>
<h2>Fonctionnalités d'IA de GitLab Duo</h2>
<p>Les fonctionnalités d'IA de <a href="https://about.gitlab.com/fr-fr/gitlab-duo/">GitLab Duo</a> offrent des avantages significatifs pour le développement Rust grâce à des suggestions de code intelligentes et des explications spécifiquement adaptées à la syntaxe et aux modèles uniques du langage. Rust est l'un des <a href="https://docs.gitlab.com/user/project/repository/code_suggestions/supported_extensions/#supported-languages-by-ide">langages directement pris en charge</a> de la plateforme GitLab pour chaque IDE et garantit une complétion et une génération de code de haute qualité qui comprend le modèle de propriété de Rust, les principes de sécurité mémoire et les modèles idiomatiques.</p>
<h3>Suggestions de code de GitLab Duo</h3>
<p>La capacité de GitLab Duo à fournir des suggestions de code en contexte pendant l'écriture aide les équipes de développement à naviguer plus efficacement dans la syntaxe parfois complexe de Rust, à réduire la courbe d'apprentissage pour les nouveaux venus et à accélérer la productivité des développeurs expérimentés.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1756314538/uvy6hmzvyd0mnqeic9tq.png" alt="Suggestions de code"></p>
<h3>GitLab Duo Chat</h3>
<p><a href="https://about.gitlab.com/fr-fr/blog/gitlab-duo-chat-gets-agentic-ai-makeover/">GitLab Duo Chat</a> complète les suggestions de code : il offre une assistance conversationnelle pour expliquer les sections de code Rust, déboguer les erreurs du compilateur et fournir des conseils sur les meilleures pratiques. Cette aide est particulièrement précieuse dans le développement Rust où les messages d'erreur du compilateur, bien qu'utiles, peuvent parfois surcharger les équipes de développement habituées à d'autres langages.</p>
<p>L'IA peut aider à interpréter les messages d'erreur détaillés de Rust et suggérer des corrections afin d'accélérer le processus de développement en réduisant le temps passé à déchiffrer les problèmes de compilation.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1756314537/depxztu1h89bez3ylwk3.png" alt="GitLab Duo Chat"></p>
<p>GitLab Duo Chat peut également être utilisé directement depuis le rapport de vulnérabilités pour fournir des explications sur un élément détecté. La fonctionnalité d'<a href="https://about.gitlab.com/fr-fr/the-source/ai/understand-and-resolve-vulnerabilities-with-ai-powered-gitlab-duo/">explication des vulnérabilités</a> de GitLab Duo représente une avancée significative qui renforce la sécurité des applications pour les équipes de développement. Plutôt que de simplement signaler des problèmes potentiels avec des codes d'erreur peu clairs ou du jargon technique, l'IA décompose la nature de chaque vulnérabilité, son impact potentiel et les étapes de remédiation en termes que les développeurs de tous niveaux peuvent rapidement comprendre.</p>
<p>Cette démocratisation des connaissances en sécurité accélère le processus de remédiation, réduit les allers-retours entre les équipes de sécurité et de développement et aide les organisations à livrer du code plus sécurisé plus rapidement :</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1756405091/rrcenbfazhhulmrp99yx.png" alt="Explication de vulnérabilité 1"></p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1756405094/b3o4lkexyn9lp41ib8ye.png" alt="Explication de vulnérabilité 2"></p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1756405095/y56wq8j5tg10t4dgbgfq.png" alt="Explication de vulnérabilité 3"></p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1756405090/mpc1mst4ydijpqdtlljm.png" alt="Explication de vulnérabilité 4"></p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<p>Avec GitLab Duo, vous avez également accès à <a href="https://docs.gitlab.com/user/gitlab_duo_chat/agentic_chat/">GitLab Duo Agentic Chat</a>, un assistant de développement intelligent pour les applications Rust, qui offre une aide contextuelle tout au long du cycle de développement. Les équipes de développement peuvent tirer parti de son interface conversationnelle pour générer des extraits de code Rust et générer automatiquement des structures de code pour de nouveaux projets Rust avec des configurations <code>Cargo.toml</code> adaptées, entre autres.</p>
<h3>Résolution des vulnérabilités avec GitLab Duo</h3>
<p>La fonctionnalité de <a href="https://docs.gitlab.com/user/application_security/vulnerabilities/#vulnerability-resolution">résolution des vulnérabilités</a> de GitLab Duo utilise l'IA pour générer automatiquement des corrections de code spécifiques pour les problèmes de sécurité détectés qui réduisent le temps de remédiation de plusieurs heures à quelques minutes. L'IA analyse les coding patterns vulnérables et propose des correctifs précis adaptés au contexte, au langage de programmation et aux dépendances du projet tout en maintenant la fonctionnalité du code et le style.</p>
<p>Cette automatisation est particulièrement efficace pour les vulnérabilités courantes comme l'injection SQL et le cross-site scripting, car elle permet aux équipes de développement de maintenir leur vélocité tout en améliorant significativement leur posture de sécurité sans perturber le workflow de développement.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1756405090/blpwclp68igekkecbyna.png" alt="Exemple de remédiation de GitLab Duo 1"></p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1756405090/avvncsspwyirtk14jdbe.png" alt="Exemple de remédiation de GitLab Duo 2"></p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<h3>Revue de code de GitLab Duo</h3>
<p>La <a href="https://docs.gitlab.com/user/project/merge_requests/duo_in_merge_requests/#have-gitlab-duo-review-your-code">revue de code alimentée par l'IA</a> de GitLab Duo améliore le processus de développement grâce à des commentaires intelligents et automatisés dans les merge requests avant toute intervention de réviseurs humains. L'IA analyse les modifications de code pour détecter les bogues potentiels, les vulnérabilités de sécurité, les problèmes de performance et l'adhérence aux normes de codage. De plus, elle fournit des suggestions contextuelles et des explications qui aident les équipes à détecter les problèmes tôt.</p>
<p>En renforçant les revues humaines traditionnelles avec des informations d'IA cohérentes et immédiates, cette fonctionnalité réduit la charge sur les développeurs seniors, accélère le cycle de revue et garantit que les vérifications de qualité de base sont appliquées de manière cohérente à toutes les contributions de code. La qualité du code est ainsi améliorée, et les réviseurs humains peuvent se concentrer sur l'architecture et la logique métier de plus haut niveau.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1756405090/hewxrp2f22mf2fe4daaa.png" alt="Revue de code de GitLab Duo 1"></p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1756405091/qbw1gi0l4ngysnyjwoy8.png" alt="Revue de code de GitLab Duo 2"></p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<p>Ce ne sont là que quelques-unes des fonctionnalités IA qui peuvent être utilisées pour vous permettre de livrer des logiciels Rust plus sécurisés plus rapidement que jamais. Pour en savoir plus sur toutes les fonctionnalités d'IA de GitLab, consultez la <a href="https://about.gitlab.com/fr-fr/gitlab-duo/">page de solution GitLab Duo</a>.</p>
<h2>Rust : l'avantage de GitLab</h2>
<p>GitLab fournit une plateforme de développement complète en synergie avec l'approche globale de Rust :</p>
<p><strong>Workflow intégré :</strong></p>
<ul>
<li><strong>Plateforme unique :</strong> code, CI/CD, sécurité et déploiement en un seul endroit</li>
<li><strong>Optimisation pour Rust :</strong> compilations basées sur Docker parfaites pour la chaîne d'outils Rust</li>
<li><strong>Sécurité d'abord :</strong> analyse de sécurité intégrée</li>
<li><strong>Niveau entreprise :</strong> infrastructure évolutive pour les grandes équipes</li>
</ul>
<p><strong>Avantages de performance :</strong></p>
<ul>
<li><strong>Mise en cache efficace :</strong> accélération des temps de compilation plus longs de Rust</li>
<li><strong>Compilations parallèles :</strong> optimisation de l'efficacité de GitLab Runner</li>
<li><strong>Gestion des artefacts :</strong> distribution de binaires rationalisée</li>
</ul>
<p><strong>Expérience développeur :</strong></p>
<ul>
<li><strong>Outils familiers :</strong> outils Rust standard (Cargo, Clippy, rustfmt)</li>
<li><strong>Retour visuel :</strong> tableaux de bord et rapports complets</li>
<li><strong>Automatisation :</strong> réduction des coûts de déploiement et de test manuels</li>
<li><strong>IA GitLab Duo :</strong> livraison de logiciels plus sécurisés plus rapidement avec l'IA tout au long du cycle du développement logiciel</li>
</ul>
<p>Les capacités de la plateforme GitLab complètent parfaitement les avantages de Rust pour créer un écosystème où la sécurité, la performance et la productivité des développeurs convergent. Les applications Rust sur GitLab représentent la pointe du développement logiciel et sont alimentées par une plateforme qui comprend et améliore l'expérience de développement Rust.</p>
<p>Pour en savoir plus sur les avantages de GitLab, inscrivez-vous pour un <a href="https://about.gitlab.com/fr-fr/free-trial/">essai gratuit de GitLab Ultimate avec Duo Enterprise</a>.</p>
]]></content>
        <author>
            <name>Fernando Diaz</name>
            <uri>https://about.gitlab.com/blog/authors/fernando-diaz</uri>
        </author>
        <published>2025-11-06T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Tutoriel : sécurisez vos environnements air-gapped]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/tutorial-security-scanning-in-air-gapped-environments/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/tutorial-security-scanning-in-air-gapped-environments/"/>
        <updated>2025-11-04T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Les environnements air-gapped désignent des réseaux ou systèmes informatiques physiquement
isolés de tout réseau non sécurisé, comme l'Internet public ou certains réseaux
locaux non protégés. Cette isolation vise à renforcer la sécurité, car elle protège les données sensibles et les infrastructures critiques contre les cyberattaques externes.</p>
<p>Elle présente les avantages suivants :</p>
<ul>
<li>
<p><strong>Une sécurité renforcée</strong> : totalement déconnectés des réseaux externes,
les environnements air-gapped réduisent considérablement les risques d'attaques à distance, d'infections par des logiciels malveillants et
d'accès non autorisé aux données, un impératif pour les systèmes et
données les plus critiques.</p>
</li>
<li>
<p><strong>Une protection des données</strong> : l'air-gapping constitue une barrière quasi infranchissable contre
l'exfiltration de données, puisqu'aucune connexion directe ne peut être exploitée par des attaquants
pour dérober des informations.</p>
</li>
<li>
<p><strong>Une résilience des infrastructures critiques</strong> : pour les systèmes qui pilotent des infrastructures
vitales (centrales électriques, stations de traitement des eaux ou installations
militaires), l'air-gapping empêche les cyberattaques susceptibles d'avoir des conséquences majeures.</p>
</li>
<li>
<p><strong>Une conformité réglementaire</strong> : de nombreux frameworks réglementaires imposent l'utilisation d'environnements air-gapped
pour certains types de données sensibles ou de systèmes critiques, notamment dans les secteurs
public, médical et financier.</p>
</li>
<li>
<p><strong>Une protection contre les logiciels malveillants</strong> : dépourvus de connexion réseau, ces systèmes sont naturellement protégés contre les infections
provenant de logiciels malveillants ou les attaques par ransomware via Internet.</p>
</li>
</ul>
<p>Même isolés, les systèmes air-gapped ne sont pas totalement à l'abri des
failles de sécurité. D'où l'importance des scannings de sécurité réguliers pour les détecter
avant qu'elles ne soient exploitées. Dans cet article, vous découvrirez les différents types de
scanners de sécurité proposés par GitLab, ainsi que la manière de les ajouter ou de les mettre à jour dans un
environnement à connectivité limitée.</p>
<blockquote>
<p><strong><a href="https://about.gitlab.com/fr-fr/free-trial/devsecops/?utm_medium=blog&amp;utm_source=blog&amp;utm_campaign=eg_emea_x_trial_x_fr_blog_fr">→ Essayez GitLab Ultimate et GitLab Duo Enterprise gratuitement.</a></strong></p>
</blockquote>
<h2>Scanners de sécurité GitLab dans les environnements air-gapped</h2>
<p>GitLab propose une gamme complète de scanners de sécurité couvrant l'ensemble du
cycle de vie des applications. Les scanners compatibles avec les environnement air-gapped
sont les suivants :</p>
<ul>
<li>
<p><a href="https://docs.gitlab.com/ee/user/application_security/sast/index.html#running-sast-in-an-offline-environment">Test statique de sécurité des applications
(SAST)</a></p>
</li>
<li>
<p><a href="https://docs.gitlab.com/ee/user/application_security/dast/browser/configuration/offline_configuration.html">Test dynamique de sécurité des applications
(DAST)</a></p>
</li>
<li>
<p><a href="https://docs.gitlab.com/ee/user/application_security/secret_detection/pipeline/index.html#offline-configuration">Détection
des secrets</a></p>
</li>
<li>
<p><a href="https://docs.gitlab.com/ee/user/application_security/container_scanning/index.html#running-container-scanning-in-an-offline-environment">Analyse
des conteneurs</a></p>
</li>
<li>
<p><a href="https://docs.gitlab.com/ee/user/application_security/dependency_scanning/index.html#offline-environment">Analyse
des dépendances</a></p>
</li>
<li>
<p><a href="https://docs.gitlab.com/ee/user/application_security/api_fuzzing/configuration/offline_configuration.html">Test de l'API
par injection de données aléatoires</a></p>
</li>
<li>
<p><a href="https://docs.gitlab.com/ee/user/compliance/license_scanning_of_cyclonedx_files/index.html#running-in-an-offline-environment">Analyse
des licences</a></p>
</li>
</ul>
<p>Par défaut, les instances GitLab Self-Managed effectuent un pull des images du scanner de sécurité
depuis le registre de conteneurs public GitLab (registry.gitlab.com) avant de les stocker dans le <a href="https://docs.gitlab.com/ee/user/packages/container_registry/">registre de conteneurs
local</a>. L'exemple
ci-dessous illustre ce flux à travers l'exécution d'un pipeline qui
analyse les secrets d'un <a href="https://gitlab.com/gitlab-da/tutorials/security-and-governance/owasp/juice-shop">projet
de démonstration</a> :</p>
<pre><code class="language-yaml">
include:
  - template: Jobs/Secret-Detection.gitlab-ci.yml
</code></pre>
<p>Lorsque le job s'exécute sur une instance GitLab connectée à Internet, il
s'effectue correctement :</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099328/Blog/Content%20Images/Blog/Content%20Images/pass-1_aHR0cHM6_1750099328577.png" alt="GitLab Runner avec un accès Internet qui effectue correctement un pull depuis le registre
externe"></p>
<p>&lt;center&gt;&lt;i&gt;GitLab Runner avec un accès Internet qui effectue correctement un pull depuis le
registre externe&lt;/i&gt;&lt;/center&gt;</p>
<p>&lt;br&gt;&lt;/br&gt;</p>
<p>En revanche, si l'accès Internet est désactivé sur la machine virtuelle hébergeant GitLab, le job
<code>secret-detection</code> ne parviendra pas à télécharger l'image de conteneur et provoquera son échec :</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099328/Blog/Content%20Images/Blog/Content%20Images/fail-1_aHR0cHM6_1750099328577.png" alt="GitLab Runner sans accès Internet qui ne parvient pas à effectuer un pull depuis le registre
externe"></p>
<p>&lt;center&gt;&lt;i&gt;GitLab Runner sans accès Internet qui ne parvient pas à effectuer un pull depuis le
registre externe&lt;/i&gt;&lt;/center&gt;</p>
<p>&lt;br&gt;&lt;/br&gt;</p>
<p>Sinon, en définissant la politique de pull d'image de nos GitLab Runners sur
<code>if-not-present</code> plutôt que <code>always</code>, nous pouvons charger la version mise en cache du scanner localement, à condition qu'il ait déjà été exécuté avec un accès à Internet en réutilisant l'image stockée dans notre registre Docker
local :</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099329/Blog/Content%20Images/Blog/Content%20Images/pass-2_aHR0cHM6_1750099328579.png" alt="GitLab Runner sans accès Internet qui effectue correctement un pull depuis le cache
du registre
interne"></p>
<p>&lt;center&gt;&lt;i&gt;GitLab Runner sans accès Internet qui effectue correctement un pull depuis le
cache du registre interne&lt;/i&gt;&lt;/center&gt;</p>
<p>&lt;br&gt;&lt;/br&gt;</p>
<h3>Configuration des prérequis pour des scannings hors ligne</h3>
<p>L'exécution des scanners de sécurité dans un environnement air-gapped nécessite les
éléments suivants :</p>
<ul>
<li>
<p>Un <a href="https://about.gitlab.com/fr-fr/pricing/ultimate/">abonnement
GitLab Ultimate</a></p>
</li>
<li>
<p>Une <a href="https://about.gitlab.com/fr-fr/pricing/licensing-faq/cloud-licensing/">licence cloud
hors ligne</a></p>
</li>
<li>
<p>Un cluster GitLab Self-Managed</p>
</li>
</ul>
<p>Vous pouvez suivre ce tutoriel sur n'importe quelle instance
GitLab Self-Managed EE (même celles qui ne sont pas air-gapped) afin d'apprendre à transférer et à
exécuter des images dans un environnement air-gapped. Dans ce tutoriel, nous vous expliquerons comment charger les images des scanners sur une instance GitLab EE hébergée sur
une machine virtuelle (MV) Google Compute, où nous avons bloqué toute sortie <code>EGRESS</code> en
mettant en place des règles de pare-feu :</p>
<pre><code class="language-bash">
# egress firewall rule to block all outbound traffic to the internet

$ gcloud compute firewall-rules create deny-internet-egress \
    --direction=EGRESS \
    --priority=1000 \
    --network=default \
    --action=DENY \
    --rules=all \
    --destination-ranges=0.0.0.0/0 \
    --target-tags=no-internet

# Create an allow rule for internal traffic with higher priority

$ gcloud compute firewall-rules create allow-internal-egress \
    --direction=EGRESS \
    --priority=900 \
    --network=default \
    --action=ALLOW \
    --rules=all \
    --destination-ranges=10.0.0.0/8,192.168.0.0/16,172.16.0.0/12 \
    --target-tags=no-internet

# Apply tag to VM

$ gcloud compute instances add-tags YOUR_VM_NAME \
    --zone=YOUR_ZONE \
    --tags=no-internet
</code></pre>
<p>Ensuite, une fois que nous avons accédé à notre MV via SSH, vous pouvez constater que nous ne pouvons
pas nous connecter à registry.gitlab.com :</p>
<pre><code class="language-bash">
# showing I can't access the gitlab container registry

$ ping registry.gitlab.com

PING registry.gitlab.com (35.227.35.254) 56(84) bytes of data.

^C

--- registry.gitlab.com ping statistics ---

3 packets transmitted, 0 received, 100% packet loss, time 2031ms

</code></pre>
<p><strong>Remarque :</strong> nous autorisons toujours l'Ingress afin de pouvoir copier des fichiers et des SSH dans la
machine.</p>
<h2>Charger des scanners de sécurité dans les environnements air-gapped</h2>
<p>Pour exécuter les différents scanners de sécurité dans des environnements air-gapped, GitLab
Runner doit pouvoir récupérer les images de conteneur des scanners depuis le registre de conteneurs intégré
de GitLab. Ces images doivent donc
être préalablement téléchargées et empaquetées dans un environnement
disposant d'un accès à l'Internet public. Le processus de chargement des scanners de sécurité
dans un environnement air-gapped se déroule en trois étapes :</p>
<ol>
<li>
<p>Télécharger et empaqueter les images de conteneurs depuis l'Internet public.</p>
</li>
<li>
<p>Transférer les images vers l'environnement hors ligne.</p>
</li>
<li>
<p>Charger les images transférées dans le registre de conteneurs hors ligne.</p>
</li>
</ol>
<p>Voyons maintenant comment configurer la détection des secrets de GitLab dans un environnement
air-gapped.</p>
<h3>Télécharger et empaqueter les images de conteneurs depuis l'Internet public</h3>
<p>Commençons par télécharger l'image de conteneur dédiée à la détection des secrets et par l'enregistrer dans
notre registre de conteneurs local. D'autres images de scanners sont disponibles dans la
<a href="https://docs.gitlab.com/ee/user/application_security/offline_deployments/">documentation GitLab
sur les déploiements hors ligne</a>.
Dans cet exemple, nous utilisons Podman Desktop pour effectuer le téléchargement, mais vous pouvez tout aussi bien utiliser
Docker Desktop ou tout autre outil équivalent.</p>
<ol>
<li>Effectuez un pull de l'image de détection des secrets de GitLab.</li>
</ol>
<pre><code class="language-bash">
$ podman pull registry.gitlab.com/security-products/secrets:6

Trying to pull registry.gitlab.com/security-products/secrets:6...

Getting image source signatures

Copying blob
sha256:999745130ac045f2b1c29ecce088b43fc4a95bbb82b7960fb7b8abe0e3801bf8

Copying blob
sha256:a4f7c013bb259c146cd8455b7c3943df7ed84b157e42a2348eef16546d8179b1

Copying blob
sha256:1f3e46996e2966e4faa5846e56e76e3748b7315e2ded61476c24403d592134f0

Copying blob
sha256:400a41f248eb3c870bd2b07073632c49f1e164c8efad56ea3b24098a657ec625

Copying blob
sha256:9090f17a5a1bb80bcc6f393b0715210568dd0a7749286e3334a1a08fb32d34e6

Copying blob
sha256:c7569783959081164164780f6c1b0bbe1271ee8d291d3e07b2749ae741621ea3

Copying blob
sha256:20c7ca6108f808ad5905f6db4f7e3c02b21b69abdea8b45abfa34c0a2ba8bdb5

Copying blob
sha256:e8645a00be64d77c6ff301593ce34cd8c17ffb2b36252ca0f2588009a7918d2e

Copying config
sha256:0235ed43fc7fb2852c76e2d6196601968ae0375c72a517bef714cd712600f894

Writing manifest to image destination

WARNING: image platform (linux/amd64) does not match the expected platform
(linux/arm64)

0235ed43fc7fb2852c76e2d6196601968ae0375c72a517bef714cd712600f894


$ podman images

REPOSITORY                                                  TAG
IMAGE ID      CREATED      SIZE

registry.gitlab.com/security-products/secrets               6
0235ed43fc7f  4 hours ago  85.3 MB

</code></pre>
<ol start="2">
<li>Enregistrez l'image sous forme d'archive compressée (fichier tarball).</li>
</ol>
<pre><code class="language-bash">
$ podman save -o secret-detection.tar
registry.gitlab.com/security-products/secrets:6

$ chmod +r secret-detection.tar

$ ls -al secret-detection.tar

-rw-r--r--@ 1 fern  staff  85324800 Jan 10 10:25 secret-detection.tar

</code></pre>
<p>Vous pouvez également utiliser le <a href="https://docs.gitlab.com/ee/user/application_security/offline_deployments/#using-the-official-gitlab-template">template
GitLab officiel</a>
dans un environnement connecté à Internet pour télécharger les images de conteneurs
nécessaires aux scanners de sécurité, puis les enregistrer en tant qu'artefacts de job ou effectuer un push
vers le registre de conteneurs du projet où s'exécute le pipeline.</p>
<h3>Transférer les images vers un environnement hors ligne</h3>
<p>Transférons maintenant le tarball vers notre environnement air-gapped.
Plusieurs méthodes sont possibles selon vos besoins :</p>
<ul>
<li>
<p>Transfert de supports physiques</p>
</li>
<li>
<p>Diodes de données</p>
</li>
<li>
<p>Systèmes de protection</p>
</li>
<li>
<p>Solutions interdomaines (CDS)</p>
</li>
</ul>
<p>Nous allons utiliser le protocole SCP (Secure Copy Protocol) pour copier directement le tarball sur notre machine virtuelle sans
accès sortant, mais qui autorise l'Ingress. Cette procédure est présentée à titre de
démonstration uniquement. Avant toute mise en œuvre réelle, vérifiez toujours les
politiques de sécurité et les protocoles officiels de transfert de votre entreprise pour les environnements air-gapped.</p>
<h4>Vérifier que l'image n'est pas mise en cache</h4>
<p>Avant de transférer le fichier, nous allons supprimer les images Docker liées à la détection des secrets présentes sur notre instance
GitLab afin d'éliminer toute version mise en cache :</p>
<pre><code class="language-bash">
$ docker images

REPOSITORY
TAG              IMAGE ID       CREATED        SIZE

registry.gitlab.com/security-products/secrets
6                0235ed43fc7f   9 hours ago    84.8MB

registry.gitlab.com/security-products/secrets
&lt;none&gt;           16d88433af61   17 hours ago   74.9MB


$ docker image rmi 16d88433af61 -f

Untagged:
registry.gitlab.com/security-products/secrets@sha256:f331da6631d791fcd58d3f23d868475a520f50b02d64000e2faf1def66c75d48

Deleted:
sha256:16d88433af618f0b405945031de39fe40b3e8ef1bddb91ca036de0f5b32399d7

Deleted:
sha256:1bb06f72f06810e95a70039e797481736e492201f51a03b02d27db055248ab6f

Deleted:
sha256:a5ef2325ce4be9b39993ce301f8ed7aad1c854d7ee66f26a56a96967c6606510

Deleted:
sha256:f7cdac818a36d6c023763b76a6589c0db7609ca883306af4f38b819e62f29471

Deleted:
sha256:5eabf4d47287dee9887b9692d55c8b5f848b50b3b7248f67913036014e74a0e9

Deleted:
sha256:51b7cb600604c0737356f17bc02c22bac3a63697f0bf95ba7bacb5b421fdb7da

Deleted:
sha256:1546193b011d192aa769a15d3fdd55eb4e187f201f5ff7506243abb02525dc06

Deleted:
sha256:1ea72408d0484c3059cc0008539e6f494dc829caa1a97d156795687d42d9cb57

Deleted:
sha256:1313ee9da7716d85f63cfdd1129f715e9bbb6c9c0306e4708ee73672b3e40f26

Deleted:
sha256:954ebfd83406f0dfed93eb5157ba841af5426aa95d4054174fff45095fd873a1


$ docker image rmi 0235ed43fc7f -f

Untagged: registry.gitlab.com/security-products/secrets:6

Deleted:
sha256:0235ed43fc7fb2852c76e2d6196601968ae0375c72a517bef714cd712600f894

Deleted:
sha256:f05f85850cf4fac79e279d93afb6645c026de0223d07b396fce86c2f76096c1f

Deleted:
sha256:7432b0766b885144990edd3166fbabed081be71d28d186f4d525e52729f06b1f

Deleted:
sha256:2c6e3361c2ee2f43bd75fb9c7c12d981ce06df2d51a134965fa47754760efff0

Deleted:
sha256:7ad7f7245b45fbe758ebd5788e0ba268a56829715527a9a4bc51708c21af1c7f

Deleted:
sha256:3b73a621115a59564979f41552181dce07f3baa17e27428f7fff2155042a1901

Deleted:
sha256:78648c2606a7c4c76885806ed976b13e4d008940bd3d7a18b52948a6be71b60d

Deleted:
sha256:383d4a6dc5be9914878700809b4a3925379c80ab792dfe9e79d14b0c1d6b5fad

</code></pre>
<p>Ensuite, nous allons relancer le job pour afficher l'erreur :</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099328/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750099328580.png" alt="GitLab Runner sans accès Internet qui ne parvient pas à effectuer le pull d'une image depuis le
cache
du registre"></p>
<p>&lt;center&gt;&lt;i&gt;GitLab Runner sans accès Internet qui ne parvient pas à effectuer le pull d'une image depuis le
cache du registre interne&lt;/i&gt;&lt;/center&gt;</p>
<h4>Transférer le fichier SCP vers l'instance GitLab</h4>
<p>Depuis notre ordinateur local, nous allons transférer le fichier vers notre instance GitLab à l'aide du protocole SCP, comme
suit :</p>
<pre><code class="language-bash">
$ gcloud compute scp secret-detection.tar INSTANCE:~ --zone=ZONE

secret-detection.tar
100%   81MB  21.5MB/s   00:03

</code></pre>
<h3>Charger les images transférées dans le registre de conteneurs hors ligne</h3>
<p>Ensuite, nous allons nous connecter à notre MV via SSH et charger l'image Docker :</p>
<pre><code class="language-bash">
$ gcloud compute ssh INSTANCE --zone=ZONE


$ sudo docker load -i secret-detection.tar

c3c8e454c212: Loading layer
[==================================================&gt;]  2.521MB/2.521MB

51e93afaeedc: Loading layer
[==================================================&gt;]  32.55MB/32.55MB

e8a25e39bb30: Loading layer
[==================================================&gt;]  221.2kB/221.2kB

390704968493: Loading layer
[==================================================&gt;]  225.8kB/225.8kB

76cf57e75f63: Loading layer
[==================================================&gt;]  17.64MB/17.64MB

c4c7a681fd10: Loading layer
[==================================================&gt;]  4.608kB/4.608kB

f0690f406157: Loading layer
[==================================================&gt;]  24.01MB/24.01MB

Loaded image: registry.gitlab.com/security-products/secrets:6

</code></pre>
<h3>Exécuter les scanners</h3>
<p>Nous allons <a href="https://docs.gitlab.com/ee/ci/pipelines/#run-a-pipeline-manually">relancer le pipeline
manuellement</a>
afin que le scanner fasse l'objet d'un pull depuis le cache. Une fois l'exécution du pipeline terminée,
vous constatez que le job de détection des secrets n'émet plus d'erreur :</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099328/Blog/Content%20Images/Blog/Content%20Images/image7_aHR0cHM6_1750099328581.png" alt="GitLab Runner sans accès Internet qui effectue correctement un pull depuis
le cache du registre interne après le chargement de
l'image"></p>
<p>&lt;center&gt;&lt;i&gt;GitLab Runner sans accès Internet qui effectue correctement un pull depuis
le cache du registre interne après le chargement de l'image&lt;/center&gt;&lt;/i&gt;</p>
<p>&lt;br&gt;&lt;/br&gt;</p>
<p>Si vous souhaitez effectuer un pull de l'image depuis un autre emplacement ou utiliser un autre système de tags pour vos
images, vous pouvez modifier la configuration comme suit :</p>
<pre><code class="language-yaml">
include:
  - template: Jobs/Secret-Detection.gitlab-ci.yml

variables:
  SECURE_ANALYZERS_PREFIX: &quot;localhost:5000/analyzers&quot;
</code></pre>
<p>Pour en savoir plus, consultez la <a href="https://docs.gitlab.com/ee/user/application_security/offline_deployments/">documentation
sur les environnements hors ligne</a>.</p>
<h3>Afficher les résultats du scanner</h3>
<p>Une fois que le scanner a terminé son analyse sur la branche par défaut, il génère automatiquement un
rapport de vulnérabilités qui
présente l'ensemble des problèmes identifiés.</p>
<p>Pour accéder à ce rapport, ouvrez l'onglet latéral et
sélectionnez <strong>Sécurisation &gt; Rapport de vulnérabilités</strong> :</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099328/Blog/Content%20Images/Blog/Content%20Images/vulnerability_report_aHR0cHM6_1750099328581.png" alt="Rapport de vulnérabilités GitLab avec les résultats
de la détection des secrets"></p>
<p>&lt;center&gt;&lt;i&gt;Rapport de vulnérabilités GitLab avec les résultats de la détection des secrets&lt;/i&gt;&lt;/center&gt;</p>
<p>&lt;br&gt;&lt;/br&gt;</p>
<p>Le rapport de vulnérabilités du projet fournit :</p>
<ul>
<li>
<p>Le nombre total de vulnérabilités par niveau de gravité</p>
</li>
<li>
<p>Des filtres pour les attributs de vulnérabilité les plus courants</p>
</li>
<li>
<p>Les détails de chaque vulnérabilité, présentés sous forme de tableau</p>
</li>
<li>
<p>Un horodatage indiquant la dernière mise à jour, y compris un lien vers le dernier
pipeline</p>
</li>
</ul>
<p>Dans notre exemple, le scanner de détection de secrets
a détecté deux vulnérabilités. En cliquant sur l'une d'elles, nous accédons à sa
page dédiée :</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099329/Blog/Content%20Images/Blog/Content%20Images/insights_aHR0cHM6_1750099328582.png" alt="Page de vulnérabilité GitLab avec des
informations clés"></p>
<p>&lt;center&gt;&lt;i&gt;Page de vulnérabilité GitLab avec des informations clés&lt;/center&gt;&lt;/i&gt;</p>
<p>&lt;br&gt;&lt;/br&gt;</p>
<p>La page consacrée aux vulnérabilités fournit des informations clés
qui permettent de les trier et d'identifier les mesures correctives à appliquer, à
savoir :</p>
<ul>
<li>
<p>Sa description</p>
</li>
<li>
<p>La date de détection</p>
</li>
<li>
<p>Son statut actuel</p>
</li>
<li>
<p>Les actions disponibles pour y remédier</p>
</li>
<li>
<p>Les tickets liés à cette vulnérabilité</p>
</li>
<li>
<p>Le log des actions effectuées sur cette vulnérabilité</p>
</li>
<li>
<p>Le nom du fichier et le numéro de ligne de la vulnérabilité (si disponible)</p>
</li>
<li>
<p>Sa gravité</p>
</li>
</ul>
<h2>En savoir plus</h2>
<p>Pour en savoir plus sur GitLab et l'exécution de scanners de sécurité dans des environments
air-gapped, consultez les ressources suivantes :</p>
<ul>
<li>
<p><a href="https://about.gitlab.com/fr-fr/pricing/ultimate/">GitLab Ultimate</a></p>
</li>
<li>
<p><a href="https://about.gitlab.com/fr-fr/solutions/application-security-testing/">Solutions de sécurité de conformité
GitLab</a></p>
</li>
<li>
<p><a href="https://docs.gitlab.com/ee/user/application_security/offline_deployments/">Documentation GitLab
sur les déploiements hors ligne</a></p>
</li>
<li>
<p><a href="https://docs.gitlab.com/ee/user/application_security/">Documentation GitLab
sur la sécurité des applications</a></p>
</li>
</ul>
<blockquote>
<p><strong><a href="https://about.gitlab.com/fr-fr/free-trial/devsecops/?utm_medium=blog&amp;utm_source=blog&amp;utm_campaign=eg_emea_x_trial_x_fr_blog_fr">→ Essayez GitLab Ultimate et GitLab Duo Enterprise gratuitement.</a></strong></p>
</blockquote>
]]></content>
        <author>
            <name>Fernando Diaz</name>
            <uri>https://about.gitlab.com/blog/authors/fernando-diaz</uri>
        </author>
        <published>2025-11-04T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Qu’est-ce qu’un IDE ?]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/what-is-an-ide/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/what-is-an-ide/"/>
        <updated>2025-10-31T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Bâtir des logiciels requiert de nombreuses ressources : des idées, des ressources humaines, du temps et des bons outils. Depuis les années 1980, l’Integrated Development Environment (l’environnement intégré de développement, plus communément appelé IDE) simplifie la programmation de logiciels. Cet environnement de développement intègre différents outils essentiels aux équipes de développement comme les éditeurs de code, les compilateurs, des systèmes de débogage ou encore l’auto-complétion.</p>
<p>Alors concrètement, qu’est-ce qu’un IDE ? Quelles sont ses fonctionnalités et quels sont les principaux IDE existants ? Découvrez comment un IDE booste la productivité des équipes et quels sont les paramètres à prendre en compte pour choisir le vôtre.</p>
<blockquote>
<p><strong><a href="https://about.gitlab.com/fr-fr/free-trial/devsecops/?utm_medium=blog&amp;utm_source=blog&amp;utm_campaign=eg_emea_x_trial_x_fr_blog_fr">→ Essayez GitLab Ultimate et GitLab Duo Enterprise gratuitement.</a></strong></p>
</blockquote>
<h2>IDE : définition</h2>
<p>Un environnement de développement intégré (IDE) est une application logicielle qui fournit aux équipes de développement une plateforme centralisée dans laquelle elles peuvent écrire, tester et déboguer du code. L’IDE permet aux équipes de se concentrer davantage sur les aspects créatifs et la résolution de problèmes liés au codage. En plus d'améliorer la productivité des équipes, l’IDE rationalise le processus de codage en permettant aux équipes de livrer un code de meilleure qualité tout en accélérant le cycle de développement logiciel.</p>
<h2>Quels sont les principaux types d’IDE ?</h2>
<p>Chaque projet est unique et requiert des fonctionnalités précises. Tous les IDE ont leurs particularités, comme le langage de programmation, le formatage ou l’interface.</p>
<p>Voici les différents types d’environnements de développement intégrés :</p>
<ul>
<li><strong>Traditionnels</strong> : ce type d’IDE est installé sur une machine locale.</li>
<li><strong>Hébergés dans le cloud</strong> : cet environnement permet aux équipes de développement de coder directement depuis un navigateur et d’accéder au code à distance instantanément. Les IDE hébergés dans le cloud permettent d’éviter les problèmes de compatibilité grâce à la standardisation des environnements entre les membres de l’équipe.</li>
<li><strong>Spécifiques au langage</strong> : certains IDE sont destinés à un seul langage de programmation, par exemple, des IDE Java (Jcreator), des IDE Python (idle) ou des IDE C/C++ (C-Free).</li>
<li><strong>Multilingues</strong> : ce type d’environnement prend en charge plusieurs langages de programmation. Ces IDE sont pratiques pour les débutants qui retrouvent toutes les fonctionnalités dont ils ont besoin pour développer leurs compétences sans avoir à utiliser plusieurs logiciels. Les IDE multilingues les plus populaires sont Visual Studio, IntelliJ IDEA et Eclipse avec toutes les fonctionnalités nécessaires et une configuration facile pour les mises à jour et les extensions.</li>
<li><strong>Développement mobile</strong> : ces IDE sont conçus pour le développement d’applications mobiles. Ils intègrent des plugins nécessaires comme le chat en temps réel ou le gestionnaire de fichiers adapté.</li>
<li><strong>Spécialisés</strong> : certains IDE sont spécifiques à des secteurs d'activité comme les jeux-vidéos, les systèmes embarqués ou le développement web.</li>
</ul>
<h2>Quelles sont les fonctionnalités indispensables d’un IDE ?</h2>
<p>Voici six principales caractéristiques d’un IDE pour simplifier le travail des équipes de développement et gagner du temps sur vos projets.</p>
<h3>Éditeur de code</h3>
<p>L’IDE comprend des fonctionnalités avancées d'édition de texte comme le formatage du code, le surlignage de la syntaxe et l’auto-complétion. Cet environnement permet aux équipes d’éviter les erreurs humaines et d’accélérer le processus de rédaction du code pour se focaliser sur la réflexion, la créativité et la résolution des problématiques.</p>
<h3>Gestion de projet</h3>
<p>La programmation à plusieurs entraîne son lot de difficultés dans la gestion et le stockage des données. Les environnements de développement intégré permettent d’organiser les fichiers et gérer la structure de chaque projet. Ainsi, toutes les parties prenantes peuvent accéder à la partie du code recherchée avec efficacité.</p>
<h3>Compilation</h3>
<p>Avec les IDE, les équipes de développement ont la possibilité de compiler ou d’exécuter le code directement depuis cet environnement de développement intégré. Cela permet de centraliser davantage les fonctionnalités nécessaires aux équipes pour programmer. De plus, l’entreprise réduit également ses coûts en limitant le nombre de logiciels mis à disposition des équipes.</p>
<h3>Débogage</h3>
<p>Le débogage désigne le processus de correction des erreurs détectées lors des tests. Les IDE permettent d’identifier les bogues en inspectant ligne par ligne le code lorsqu’il est exécuté. Grâce à cette fonctionnalité, les équipes peuvent analyser et corriger les erreurs présentes dans leur code rapidement et ainsi gagner un temps précieux.</p>
<h3>Intégration du contrôle de version</h3>
<p>L'intégration du <a href="https://about.gitlab.com/fr-fr/topics/version-control/" title="Qu'est-ce que le contrôle de version ?">contrôle de version</a> permet aux équipes de gérer facilement les différentes versions apportées au code directement depuis leur environnement de travail. Depuis l’IDE, elles peuvent facilement revenir à une version précédente, résoudre les conflits dans un environnement centralisé et consulter l’historique des modifications.</p>
<h2>Comment un IDE améliore-t-il la productivité des équipes ?</h2>
<p>Toutes les fonctionnalités évoquées précédemment apportent des améliorations au sein des équipes de développement. Avec des outils conçus pour l’efficacité, elles peuvent se focaliser sur la résolution des problèmes dans le code et gagnent ainsi en productivité.</p>
<h3>Un processus de travail optimisé</h3>
<p>Les IDE intègrent de nombreuses fonctionnalités de développement au sein d’une même interface. Cette centralisation réduit les sauts répétitifs d’une application à une autre, permettant ainsi aux équipes de gagner du temps et maintenir leur concentration.</p>
<h3>L’efficacité du code</h3>
<p>Les fonctionnalités de complétion du code, de modification automatique et de débogage aident les équipes à programmer plus rapidement, en commettant moins d’erreurs. Elles gagnent du temps lors de la programmation, mais également lors de la phase de débogage.</p>
<h3>Les outils de débogage</h3>
<p>Les outils de débogage intégrés permettent d’identifier rapidement les problématiques liées au code. De cette manière, les IDE réduisent considérablement le temps nécessaire à la résolution de bogues en comparaison avec l’utilisation d’un outil externe.</p>
<h3>La gestion de projet</h3>
<p>Les IDE fournissent les outils permettant d’organiser et de parcourir l’ensemble du code source. Ces environnements simplifient la gestion de projets complexes et permettent aux équipes de développement de localiser rapidement le code dont elles ont besoin.</p>
<h3>Les tâches automatisées</h3>
<p>De nombreux IDE offrent des fonctionnalités pour automatiser les tâches répétitives comme formater, tester et déployer du code. Cette automatisation libère du temps aux équipes pour se concentrer sur les aspects plus importants de leur travail.</p>
<h2>Comment choisir son IDE ?</h2>
<p>Les entreprises ont le choix parmi des dizaines d’IDE. Pour choisir celui qui conviendra le mieux à vos projets de développement logiciel, prenez en compte les critères suivants :</p>
<ul>
<li>la compatibilité avec le langage de programmation et le framework utilisés</li>
<li>le dynamisme de la communauté d’utilisateurs</li>
<li>la richesse des ressources disponibles</li>
<li>l’intégration avec vos autres outils</li>
<li>la taille et la complexité du projet</li>
<li>la performance de la plateforme</li>
<li>la disponibilité inter-plateforme</li>
<li>la personnalisation de l’outil</li>
<li>la facilité de prise en main</li>
<li>l’ergonomie de l’interface</li>
<li>le coût</li>
</ul>
<p>Identifiez vos principaux critères et comparez les IDE disponibles en fonction de vos besoins. Choisissez ensuite l’outil le plus adapté à vos besoins, votre projet et celui que vos équipes aiment utiliser.</p>
<p>Consultez <a href="https://docs.gitlab.com/user/project/web_ide/">notre documentation</a> pour en savoir plus sur le Web IDE de GitLab.</p>
<h2>Découvrez le Web IDE de GitLab</h2>
<p>Le <a href="https://about.gitlab.com/fr-fr/solutions/delivery-automation/#web-ide">Web IDE de GitLab</a> est un éditeur de code avancé permettant aux utilisateurs de la plateforme DevSecOps de programmer, relire et modifier du code. Cette interface est conçue pour faciliter le workflow des équipes souhaitant travailler sur leurs projets sans quitter l’environnement de développement GitLab.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1761924521/z7uqzsjgw0e0tlmav8fj.png" alt="Web IDE de GitLab" title="Web IDE de GitLab "></p>
<p>Codez directement depuis votre navigateur avec un IDE comprenant toutes les fonctionnalités dont vous avez besoin dont celles de <a href="https://about.gitlab.com/fr-fr/gitlab-duo/" title="Qu'est-ce que GitLab Duo ?">GitLab Duo</a>. Le Web IDE permet d’accéder à tous vos fichiers, d’y apporter des modifications et de les valider directement depuis l’interface de GitLab. Avec l’explorateur de fichiers, le contrôle de version et l’ajout d’onglets supplémentaires, le Web IDE de GitLab offre un environnement idéal pour toutes les équipes de développement.</p>
<p>Testez notre Web IDE dès maintenant !</p>
<blockquote>
<p><strong><a href="https://about.gitlab.com/fr-fr/free-trial/devsecops/?utm_medium=blog&amp;utm_source=blog&amp;utm_campaign=eg_emea_x_trial_x_fr_blog_fr">→ Essayez GitLab Ultimate et GitLab Duo Enterprise gratuitement.</a></strong></p>
</blockquote>
]]></content>
        <author>
            <name>GitLab France Team</name>
            <uri>https://about.gitlab.com/blog/authors/gitlab-france team</uri>
        </author>
        <published>2025-10-31T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Modernisez rapidement vos applications Java avec GitLab Duo combiné à Amazon Q]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/modernize-java-applications-quickly-with-gitlab-duo-with-amazon-q/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/modernize-java-applications-quickly-with-gitlab-duo-with-amazon-q/"/>
        <updated>2025-10-30T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Dans Java, la mise à niveau des applications vers des versions plus récentes prises en charge est généralement fastidieuse et chronophage. Les équipes de développement doivent consacrer d'innombrables heures aux API dépréciées, aux bibliothèques mises à jour et aux nouvelles fonctionnalités du langage. Dans de nombreux cas, des réécritures de code importantes sont nécessaires. Résultat : une simple mise à niveau se transforme en un projet de plusieurs semaines qui empêche la création de nouvelles fonctionnalités.</p>
<p><a href="https://about.gitlab.com/fr-fr/gitlab-duo/duo-amazon-q/">GitLab Duo combiné à Amazon Q</a> change entièrement ce paradigme grâce à l'automatisation alimentée par l'IA. Des tâches qui nécessitaient autrefois des semaines peuvent désormais être accomplies en quelques minutes, avec une traçabilité complète et des merge requests prêtes à être examinées qui maintiennent votre application tout en exploitant les fonctionnalités modernes de Java.</p>
<h2>Tutoriel : modernisez votre application Java</h2>
<p>Voyons comment vous pouvez moderniser une application Java 8 vers Java 17.</p>
<p><strong>Création du ticket</strong></p>
<p>Tout d'abord, créez un ticket dans votre projet GitLab avec une description de votre objectif de modernisation. Vous n'avez pas besoin de préciser les détails de version, car GitLab Duo combiné à Amazon Q est capable de détecter que votre application est actuellement construite avec Java 8 et doit être mise à niveau. Indiquez simplement que vous souhaitez refactoriser votre code vers Java 17 dans le titre et la description du ticket.</p>
<p><strong>Lancement de la transformation</strong></p>
<p>Une fois votre ticket créé, faites appel à GitLab Duo combiné à Amazon Q au moyen de la commande <code>/q transform</code> dans un commentaire au sein du ticket. Cette simple commande déclenche un processus automatisé qui analysera l'ensemble de votre code source, créera un plan de mise à niveau complet et générera tous les changements de code nécessaires.</p>
<p><strong>Analyse et mise en œuvre automatisées</strong></p>
<p>En coulisses, Amazon Q analyse votre code source Java 8 pour comprendre la structure, les dépendances et les modèles d'implémentation de votre application. Il identifie les fonctionnalités dépréciées, détermine quelles constructions Java 17 peuvent remplacer le code existant et crée une merge request avec toutes les mises à jour nécessaires. Cette transformation met à jour non seulement vos fichiers de code source, y compris l'interface de ligne de commande (CLI), l'interface utilisateur graphique (GUI) et les classes de modèle, mais aussi vos fichiers de configuration de compilation comme <code>pom.xml</code> avec les paramètres et dépendances Java 17.</p>
<p><strong>Examen et vérification</strong></p>
<p>La merge request générée offre une vue complète de tous les changements. Vous pouvez examiner comment votre code a été modernisé avec les fonctionnalités du langage Java 17 et vérifier que tous les tests réussissent encore. Avec cette approche, toutes les fonctionnalités sont préservées, et votre application fonctionne comme d'habitude, simplement avec un code amélioré et plus moderne.</p>
<h2>Pourquoi utiliser GitLab Duo combiné à Amazon Q ?</h2>
<p>Tirer parti de GitLab Duo combiné à Amazon Q pour la modernisation des applications présente de nombreux avantages pour les équipes de développement :</p>
<p><strong>Réduction du temps</strong> : les tâches qui requièrent habituellement des semaines d'effort de développement sont réduites à quelques heures ou minutes. Votre équipe peut ainsi se concentrer sur la création de nouvelles fonctionnalités plutôt que sur la gestion de la dette technique.</p>
<p><strong>Risque minimisé</strong> : le processus d'analyse et de transformation automatisé réduit le risque d'erreur humaine qui accompagne souvent les migrations manuelles de code. Chaque changement peut être tracé et revu grâce au workflow de merge request de GitLab.</p>
<p><strong>Piste d'audit complète</strong> : chaque transformation est documentée grâce au <a href="https://about.gitlab.com/fr-fr/topics/version-control/" title="Qu'est-ce que le contrôle de version ?">contrôle de version</a> de GitLab. Les changements (et leurs explications) sont clairement indiqués à des fins de conformité et de dépannage.</p>
<p><strong>Sécurité de niveau entreprise</strong> : l'intégration tire parti des fonctionnalités de sécurité de bout en bout de GitLab et de l'infrastructure cloud robuste d'AWS pour garantir la protection de votre code et de vos données tout au long du processus de modernisation.</p>
<p>Envie de découvrir GitLab Duo combiné à Amazon Q ? Regardez notre vidéo de démonstration pour en savoir plus sur le processus complet de modernisation Java :
&lt;!-- blank line --&gt;
&lt;figure class=&quot;video_container&quot;&gt;
&lt;iframe src=&quot;https://www.youtube.com/embed/qGyzG9wTsEo?si=47JnSb6flOgZAJcR&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt; &lt;/iframe&gt;
&lt;/figure&gt;
&lt;!-- blank line --&gt;</p>
<blockquote>
<p>Pour en savoir plus sur GitLab Duo combiné à Amazon Q, consultez notre <a href="https://about.gitlab.com/fr-fr/gitlab-duo/duo-amazon-q/">site web</a> ou contactez votre représentant GitLab.</p>
</blockquote>
<h2>En savoir plus</h2>
<ul>
<li>
<p><a href="https://about.gitlab.com/fr-fr/blog/agentic-ai-guides-and-resources/">Guides et ressources sur l'IA agentique</a></p>
</li>
<li>
<p><a href="https://about.gitlab.com/fr-fr/blog/gitlab-duo-with-amazon-q-devsecops-meets-agentic-ai/">GitLab Duo combiné à Amazon Q : quand le DevSecOps rencontre l’IA agentique</a></p>
</li>
<li>
<p><a href="https://about.gitlab.com/fr-fr/blog/agentic-ai-guides-and-resources/#gitlab-duo-with-amazon-q-tutorials">Plus de tutoriels avec GitLab Duo combiné à Amazon Q</a></p>
</li>
</ul>
]]></content>
        <author>
            <name>Cesar Saavedra</name>
            <uri>https://about.gitlab.com/blog/authors/cesar-saavedra</uri>
        </author>
        <published>2025-10-30T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[GitLab Duo Agent Platform prend désormais en charge le MCP]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/duo-agent-platform-with-mcp/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/duo-agent-platform-with-mcp/"/>
        <updated>2025-10-29T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>L'intelligence artificielle (IA) accélère le développement : elle génère du code,
débogue et automatise les tâches répétitives. Cependant, seule, elle reste limitée à ses
données d'entraînement ou aux sources publiques, alors que les équipes de développement doivent souvent utiliser
leurs outils internes : suivi de projet, tableaux de bord, bases de données ou fichiers hébergés
sur Figma ou documents Google Drive.</p>
<p>Désormais intégré à <a href="https://about.gitlab.com/fr-fr/blog/gitlab-18-3-expanding-ai-orchestration-in-software-engineering/">GitLab Duo Agent Platform</a>, le Model Context Protocol (<a href="https://about.gitlab.com/topics/ai/model-context-protocol/">MCP</a>) permet à l'IA d'accéder en toute sécurité à ces outils internes pour une aide complète, directement accessibles dans les workflows.</p>
<blockquote>
<p><strong><a href="https://about.gitlab.com/fr-fr/free-trial/devsecops/?utm_medium=blog&amp;utm_source=blog&amp;utm_campaign=eg_emea_x_trial_x_fr_blog_fr">→ Essayez GitLab Ultimate et GitLab Duo Enterprise gratuitement.</a></strong></p>
</blockquote>
<h2>Qu'est-ce que le MCP ?</h2>
<p>Introduit pour la première fois par Anthropic en 2024, le MCP est une norme ouverte qui connecte l'IA aux données et aux outils externes. Il fonctionne comme un canal bidirectionnel sécurisé : les clients MCP (applications d'IA, agents IA autonomes ou outils de développement) envoient des requêtes de données ou d'actions, tandis que les serveurs MCP répondent avec des informations fiables et autorisées issues de leurs sources connectées.</p>
<p>Les serveurs MCP agissent comme des passerelles sécurisées vers divers systèmes : ils peuvent se connecter à des bases de données, des API, des systèmes de fichiers, des services cloud ou d'autres outils externes pour collecter et transmettre des données. Les agents et outils d'IA, lorsqu'ils utilisent le MCP, ne se limitent plus aux informations sur lesquelles ils ont été entraînés. Ils peuvent accéder à des informations en temps réel et exécuter des actions concrètes (par exemple, reprogrammer des réunions ou vérifier la disponibilité dans un calendrier), tout en garantissant des contrôles rigoureux en matière de sécurité, de confidentialité et d'audit.</p>
<h2>Utilisation du MCP vs des appels API</h2>
<p>L'IA peut déjà appeler directement les API des systèmes. Alors, pourquoi utiliser le MCP ? Le passage par le MCP s'impose, car chaque API possède ses propres mécanismes d'authentification, formats de données et comportements. L'IA devrait donc recourir à des connecteurs spécifiques pour chaque système et les mettre à jour en permanence à mesure que les API évoluent, ce qui rendrait les intégrations directes complexes et propices aux erreurs. Le MCP résout ce problème : il offre une interface standardisée et sécurisée qui gère automatiquement l'authentification, les autorisations et la conversion des données. Les outils d'IA peuvent ainsi se connecter de manière fiable à n'importe quel système, avec des intégrations rapides, stables et sécurisées.</p>
<h2>Prise en charge du MCP par GitLab</h2>
<p>Avec l'intégration du MCP, <a href="https://about.gitlab.com/fr-fr/blog/gitlab-duo-chat-gets-agentic-ai-makeover/">GitLab Duo Agentic Chat</a> franchit une nouvelle étape : l'IA n'est plus isolée, mais pleinement connectée aux outils que les équipes de développement utilisent quotidiennement. Ces dernières peuvent interagir en langage naturel avec l'ensemble de leurs outils, sans jamais quitter leur environnement de développement intégré (IDE) favori. GitLab Duo Agent Platform leur apporte une assistance complète sans casser leur rythme ni perturber leur concentration.</p>
<p>GitLab offre une prise en charge complète du MCP par le biais de deux workflows complémentaires :</p>
<ul>
<li>
<p><strong><a href="https://docs.gitlab.com/user/gitlab_duo/model_context_protocol/mcp_clients/">Client MCP</a> :</strong> GitLab Duo Agent Platform sert de client MCP et permet à ses fonctionnalités d'accéder à divers outils et services externes.</p>
</li>
<li>
<p><strong><a href="https://docs.gitlab.com/user/gitlab_duo/model_context_protocol/mcp_server/">Serveur MCP</a> :</strong> GitLab agit aussi comme serveur MCP : des outils d'IA comme Claude Desktop, Cursor et d'autres applications compatibles peuvent ainsi se connecter en toute sécurité à votre instance GitLab.</p>
</li>
</ul>
<h2>Démonstration interactive du workflow client MCP</h2>
<p><strong>Imaginez un lundi matin classique :</strong> le service de paiement de votre entreprise renvoie soudainement des erreurs de délai d'attente dépassé. Les clients ne peuvent plus finaliser leurs achats, et vous devez rapidement en trouver la cause. En temps normal, vous ouvrez Jira pour consulter le ticket d'incident, vous parcourez Slack à la recherche de mises à jour, puis vous vérifiez les tableaux de bord Grafana pour repérer d'éventuels pics d'erreurs. Grâce à la prise en charge du MCP dans GitLab, vous pouvez désormais effectuer toutes ces actions en langage naturel, directement depuis le chat intégré à votre IDE. Le MCP met en corrélation les données de tous vos systèmes et vous offre instantanément une vue d'ensemble, sans que vous deviez quitter votre workflow de développement.</p>
<p>Découvrez cette fonctionnalité par vous-même grâce à notre <a href="https://gitlab.navattic.com/mcp">démonstration interactive</a> qui reproduit le scénario du service de paiement décrit ci-dessus. Cliquez sur l'image ci-dessous pour lancer la démo.</p>
<p><a href="https://gitlab.navattic.com/mcp"><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1758206468/osf0wkwe1l45oc6zjdhr.png" alt="Démonstration du MCP"></a></p>
<h2>Configuration du client MCP dans GitLab</h2>
<p>Pour commencer à poser des questions en langage naturel dans <a href="https://docs.gitlab.com/user/gitlab_duo_chat/agentic_chat/">GitLab Duo Agentic Chat</a> ou dans le <a href="https://docs.gitlab.com/user/duo_agent_platform/flows/software_development/">flow de développement logiciel</a>, vous devez configurer le MCP dans votre environnement de développement. Voici comment procéder :</p>
<ul>
<li>
<p><strong>Activer l'aperçu des fonctionnalités</strong> : dans les paramètres de votre groupe, accédez à <strong>GitLab Duo</strong> dans la barre latérale gauche, puis cochez la case « Activer les fonctionnalités expérimentales et bêta de GitLab Duo » dans la section <strong>Aperçu des fonctionnalités</strong>.</p>
</li>
<li>
<p><strong>Activer le MCP pour votre groupe</strong> : activez la prise en charge du MCP dans les paramètres de votre groupe GitLab pour que les fonctionnalités de GitLab Duo puissent se connecter à des systèmes externes.</p>
</li>
<li>
<p><strong>Configurer les serveurs MCP</strong> : définissez les serveurs MCP au format JSON dans un fichier <code>mcp.json</code>. Créez ce fichier à cet emplacement :</p>
<ul>
<li><strong>Windows :</strong> <code>C:\Users\&lt;username&gt;\AppData\Roaming\GitLab\duo\mcp.json</code></li>
<li><strong>Autres systèmes d'exploitation :</strong> <code>~/.gitlab/duo/mcp.json</code></li>
</ul>
</li>
</ul>
<p>Pour des configurations spécifiques à un workspace, consultez la section <a href="https://docs.gitlab.com/user/gitlab_duo/model_context_protocol/mcp_clients/#create-workspace-configuration">Configuration du workspace</a>.</p>
<pre><code class="language-json">
{
  &quot;mcpServers&quot;: {
    &quot;server-name&quot;: {
      &quot;type&quot;: &quot;stdio&quot;,
      &quot;command&quot;: &quot;path/to/server&quot;,
      &quot;args&quot;: [&quot;--arg1&quot;, &quot;value1&quot;],
      &quot;env&quot;: {
        &quot;ENV_VAR&quot;: &quot;value&quot;
      }
    },
    &quot;http-server&quot;: {
      &quot;type&quot;: &quot;http&quot;,
      &quot;url&quot;: &quot;http://localhost:3000/mcp&quot;
    },
    &quot;sse-server&quot;: {
      &quot;type&quot;: &quot;sse&quot;,
      &quot;url&quot;: &quot;http://localhost:3000/mcp/sse&quot;
    }
  }
}

</code></pre>
<ul>
<li>Installer et configurer votre IDE : assurez-vous que VSCodium ou VS Code est installé, ainsi que l'extension GitLab Workflow (version 6.28.2 ou ultérieure pour une prise en charge de base du MCP, version 6.35.6 ou ultérieure pour une prise en charge complète).</li>
</ul>
<p>Pour des instructions détaillées étape par étape, des exemples de configuration et des conseils de dépannage, consultez la <a href="https://docs.gitlab.com/user/gitlab_duo/model_context_protocol/mcp_clients/">documentation sur les clients MCP de GitLab</a>.</p>
<h2>Exemple de projet</h2>
<p>En complément de cette démonstration, nous mettons à disposition le projet qui a servi de <strong>base</strong>. Vous pouvez l'utiliser pour reproduire le même flow dans votre propre environnement et expérimenter concrètement les capacités du MCP de GitLab.</p>
<p>Ce projet illustre le fonctionnement du MCP dans une configuration d'entreprise simulée, à l'aide de données fictives provenant de Jira, Slack et Grafana pour modéliser un scénario de réponse aux incidents. Le fichier <code>mcp.json</code> inclus montre comment se connecter à un serveur MCP local (<code>enterprise-data-v2</code>) et, en option, comment étendre cette configuration aux services AWS pour une intégration cloud.</p>
<pre><code class="language-json">
{
  &quot;mcpServers&quot;: {
    &quot;enterprise-data-v2&quot;: {
      &quot;type&quot;: &quot;stdio&quot;, 
      &quot;command&quot;: &quot;node&quot;,
      &quot;args&quot;: [&quot;src/server.js&quot;],
      &quot;cwd&quot;: &quot;/path/to/your/project&quot;
    },
    &quot;aws-knowledge&quot;: {
      &quot;type&quot;: &quot;stdio&quot;,
      &quot;command&quot;: &quot;npx&quot;,
      &quot;args&quot;: [&quot;mcp-remote&quot;, &quot;https://knowledge-mcp.global.api.aws&quot;]
    },
    &quot;aws-console&quot;: {
      &quot;type&quot;: &quot;stdio&quot;,
      &quot;command&quot;: &quot;npx&quot;, 
      &quot;args&quot;: [&quot;@imazhar101/mcp-aws-server&quot;],
      &quot;env&quot;: {
        &quot;AWS_REGION&quot;: &quot;YOUR_REGION&quot;,
        &quot;AWS_PROFILE&quot;: &quot;default&quot;
      }
    }
  }
}

</code></pre>
<blockquote>
<p><strong>Remarque de sécurité :</strong> le composant <code>aws-console</code> utilise un paquet de serveur MCP développé par la communauté (<code>@imazhar101/mcp-aws-server</code>) pour l'intégration avec AWS qui n'a pas été vérifié de manière indépendante.
Il est exclusivement destiné à des fins de démonstration et de formation. Pour une utilisation en environnement de production, évaluez soigneusement les paquets ou privilégiez des solutions officielles.</p>
<p>En outre, configurez vos identifiants AWS à l'aide de profils d'interface de ligne de commande AWS (AWS CLI) ou de rôles Identity and Access Management (IAM), plutôt que de les coder en dur dans le fichier de configuration. Le SDK AWS détectera automatiquement les identifiants présents dans votre environnement, ce qui constitue l'approche recommandée pour garantir une bonne gouvernance et assurer la conformité aux politiques de sécurité de niveau entreprise.</p>
</blockquote>
<p>Pour commencer, <a href="https://gitlab.com/gitlab-da/use-cases/ai/gitlab-duo-agent-platform/mcp/gitlab-duo-mcp-demo.git">clonez le projet</a>, installez les dépendances avec <code>npm install</code>, puis démarrez le serveur MCP local avec <code>npm start</code>. Créez un fichier <code>~/.gitlab/duo/mcp.json</code> avec la configuration ci-dessus, mettez à jour le chemin d'accès du fichier pour qu'il corresponde à votre configuration locale et redémarrez VS Code pour charger la configuration MCP. Vous pouvez également ajouter vos identifiants AWS pour activer une intégration cloud en direct.</p>
<p>Vous pouvez cloner le projet ici : <a href="https://gitlab.com/gitlab-da/use-cases/ai/gitlab-duo-agent-platform/mcp/gitlab-duo-mcp-demo.git">démo MCP de GitLab Duo</a>.</p>
<h2>Exemples de prompts à tester avec le projet de démonstration</h2>
<p>Une fois le projet configuré, vous pouvez explorer vos données et outils directement depuis GitLab Duo Agentic Chat dans votre IDE. Voici plusieurs prompts à tester :</p>
<ul>
<li>« What tools can you access through MCP? »</li>
</ul>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203432/xmahjenvoa82ov3kttqx.png" alt="What tools can you access through MCP?"></p>
<ul>
<li>« Show me recent Slack discussions about the database issues. »</li>
</ul>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203432/wdwp5xzq6umeanb1xwbq.png" alt="Discussion Slack sur les outils accessibles via le MCP"></p>
<h2>Capacités du serveur MCP de GitLab</h2>
<p>Jusqu'à présent, nous avons vu comment GitLab Duo Agent Platform agit comme un client MCP, en se connectant à des serveurs MCP externes. Penchons-nous maintenant sur les capacités du serveur MCP de GitLab.</p>
<p>Le serveur MCP de GitLab permet à des outils d'IA comme Cursor ou Claude Desktop de se connecter en toute sécurité à votre instance GitLab et d'interagir avec vos données de développement en langage naturel. L'authentification repose sur le mécanisme d'enregistrement dynamique des clients OAuth 2.0, ce qui permet aux outils d'IA de s'enregistrer automatiquement et d'accéder à vos données GitLab avec les autorisations appropriées.</p>
<p>Actuellement, le serveur prend en charge les actions suivantes :</p>
<ul>
<li><strong>Tickets</strong> : pour consulter les détails ou créer de nouveaux tickets</li>
<li><strong>Merge requests</strong> : pour afficher les détails, les validations et les modifications de fichiers</li>
<li><strong>Pipelines</strong> : pour répertorier les jobs et les pipelines associés aux merge requests</li>
<li><strong>Informations sur le serveur</strong> : pour vérifier la version du serveur MCP</li>
</ul>
<p>Pour obtenir la liste complète des outils et des fonctionnalités disponibles, consultez la <a href="https://docs.gitlab.com/user/gitlab_duo/model_context_protocol/mcp_server/#available-tools-and-capabilities">documentation sur le serveur MCP</a>.</p>
<h2>Démonstration interactive du serveur MCP de GitLab</h2>
<p>Découvrez le serveur MCP de GitLab grâce à notre <a href="https://gitlab.navattic.com/gitlab-mcp-server">démonstration interactive</a>.</p>
<p>Elle vous guide pas à pas dans la configuration de Cursor avec le serveur MCP et l'utilisation de Cursor Chat pour vous connecter en toute sécurité à votre instance GitLab. Vous découvrirez comment afficher des tickets, en créer de nouveaux ou encore consulter les merge requests, le tout en langage naturel, sans jamais quitter votre environnement de développement.</p>
<p><a href="https://gitlab.navattic.com/gitlab-mcp-server"><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203431/y2zdd71miiw0pkwd0a5a.png" alt="Démonstration du serveur MCP"></a></p>
<h3>Comment configurer le serveur MCP dans votre outil d'IA</h3>
<p><strong>Prérequis :</strong></p>
<ul>
<li>
<p>Assurez-vous que <strong>Node.js</strong> et <strong>npm</strong> sont installés.</p>
</li>
<li>
<p>Vérifiez que tout le monde peut accéder à <code>npx</code> en exécutant <code>npx --version</code> dans votre terminal.</p>
</li>
</ul>
<ol>
<li>
<p><strong>Activer les feature flags</strong></p>
<ul>
<li>Activez <code>mcp_server</code> et <code>oauth_dynamic_client_registration</code> dans votre instance GitLab.</li>
</ul>
</li>
<li>
<p><strong>Ajouter la configuration du serveur MCP de GitLab à votre outil d'IA</strong></p>
<ul>
<li>Ajoutez l'entrée correspondant au serveur MCP au fichier de configuration de votre outil (<code>mcp.json</code> pour Cursor, <code>claude_desktop_config.json</code> pour Claude Desktop) :</li>
</ul>
</li>
</ol>
<pre><code class="language-json">{
  &quot;mcpServers&quot;: {
    &quot;GitLab&quot;: {
      &quot;command&quot;: &quot;npx&quot;,
      &quot;args&quot;: [
        &quot;mcp-remote&quot;,
        &quot;https://&lt;your-gitlab-instance&gt;/api/v4/mcp&quot;,
        &quot;--static-oauth-client-metadata&quot;,
        &quot;{\&quot;scope\&quot;: \&quot;mcp\&quot;}&quot;
      ]
    }
  }
}
</code></pre>
<h3>Enregistrement et authentification</h3>
<p>Lors de la première connexion, l'outil d'IA va :</p>
<ul>
<li>
<p>S'enregistrer automatiquement en tant qu'application OAuth</p>
</li>
<li>
<p>Demander l'autorisation pour la portée mcp</p>
</li>
</ul>
<h3>Autorisation dans le navigateur</h3>
<p>Lors de la connexion, le client MCP ouvrira automatiquement votre navigateur par défaut pour finaliser le flux OAuth. Examinez et approuvez la requête d'accès dans GitLab afin d'autoriser la connexion et d'obtenir un token d'accès sécurisé pour interagir avec l'API.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203431/szkjoqkdxstdbdh4eirv.png" alt="Demande d'accès"></p>
<h3>Utilisation du serveur MCP</h3>
<p>Dès que votre outil d'IA est connecté au serveur MCP, vous pouvez interagir en langage naturel avec vos données GitLab (tickets, merge requests, pipelines), le tout sans quitter votre IDE. Par exemple :</p>
<ul>
<li>
<p><code>Get details for issue 42 in project 123</code></p>
</li>
<li>
<p><code>Create a new issue titled &quot;Fix login bug&quot; with description about password special characters</code></p>
</li>
<li>
<p><code>Show me all commits in merge request 15 from the gitlab-org/gitlab project</code></p>
</li>
<li>
<p><code>What files were changed in merge request 25?</code></p>
</li>
<li>
<p><code>Show me all jobs in pipeline 12345</code></p>
</li>
</ul>
<blockquote>
<p>Cette fonctionnalité est expérimentale, contrôlée par un feature flag et n'est pas encore destinée à une utilisation en production.</p>
</blockquote>
<p>Pour des instructions détaillées étape par étape, des exemples de configuration et des conseils de dépannage, consultez la <a href="https://docs.gitlab.com/user/gitlab_duo/model_context_protocol/mcp_server/">documentation sur les serveurs MCP de GitLab</a>.</p>
<h2>Résumé</h2>
<p>Avec le MCP, GitLab Duo Agent Platform fait un pas de plus vers une intégration intelligente et fluide de l'IA dans vos workflows de développement. Avec la prise en charge du MCP, GitLab agit à la fois comme un client et un serveur :</p>
<ul>
<li>
<p><strong>Client MCP :</strong> GitLab Duo Agent Platform peut accéder en toute sécurité aux données et outils de systèmes externes et apporte un contexte complet directement dans l'IDE.</p>
</li>
<li>
<p><strong>Serveur MCP :</strong> des outils d'IA externes comme Cursor ou Claude Desktop peuvent interagir directement avec votre instance GitLab pour consulter les données de projet et exécuter des actions, le tout dans un cadre sécurisé et conforme à vos politiques de confidentialité.</p>
</li>
</ul>
<p>Cette prise en charge bidirectionnelle réduit le changement de contexte, accélère les workflows de développement et permet à l'IA de fournir une assistance pertinente à travers l'ensemble de vos outils.</p>
<h2>À vous de jouer</h2>
<p><a href="https://about.gitlab.com/fr-fr/gitlab-duo/agent-platform/">Testez la version bêta de GitLab Duo Agent Platform</a> et découvrez toutes les capacités du MCP.</p>
]]></content>
        <author>
            <name>Itzik Gan Baruch</name>
            <uri>https://about.gitlab.com/blog/authors/itzik-gan baruch</uri>
        </author>
        <published>2025-10-29T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[GitLab transforme les cycles de test des systèmes embarqués]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/how-gitlab-transforms-embedded-systems-testing-cycles/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/how-gitlab-transforms-embedded-systems-testing-cycles/"/>
        <updated>2025-10-28T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Les équipes de développement des systèmes embarqués connaissent bien ce cycle : elles écrivent du code, attendent des jours ou des semaines pour le tester sur un banc de test matériel, découvrent des bogues, les corrigent, puis attendent à nouveau. Les environnements de test virtuels promettent un retour plus rapide, mais la plupart des implémentations créent de nouveaux problèmes tels que la multiplication des environnements et l'augmentation des coûts.</p>
<p>Les environnements de cycle de vie gérés de GitLab permettent de résoudre ces défis liés aux tests virtuels. Grâce à l'automatisation des environnements virtuels, GitLab accélère les cycles de développement des systèmes embarqués sans configuration complexe ni augmentation des coûts.</p>
<blockquote>
<p><strong><a href="https://about.gitlab.com/fr-fr/free-trial/devsecops/?utm_medium=blog&amp;utm_source=blog&amp;utm_campaign=eg_emea_x_trial_x_fr_blog_fr">→ Essayez GitLab Ultimate et GitLab Duo Enterprise gratuitement.</a></strong></p>
</blockquote>
<h2>Défis posés par les tests virtuels</h2>
<p>Les environnements de test virtuels sont des configurations matérielles simulées qui reproduisent le comportement des systèmes embarqués dans des conditions réelles. De plus, ils offrent la possibilité de réduire les goulots d'étranglement matériels. Les équipes peuvent tester un micrologiciel sur des processeurs simulés, exécuter des tests Model-in-the-Loop (MIL) dans MATLAB/Simulink ou vérifier le logiciel sur des systèmes embarqués virtuels sans attendre l'accès au matériel physique.</p>
<p>Cependant, les équipes implémentent souvent les environnements virtuels au moyen de deux approches courantes, qui entraînent des défis non viables.</p>
<h3>Première approche : environnements de cycle de vie des pipelines</h3>
<p><strong>Les environnements de cycle de vie des pipelines recréent l'ensemble de la configuration de test pour chaque exécution <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/" title="Qu'est-ce qu'un pipeline CI/CD ?">CI/CD</a>.</strong> Lorsque des modifications de code déclenchent votre pipeline CI/CD, le système provisionne l'infrastructure, installe les simulations logicielles et configure tout depuis le début avant d'exécuter les tests.</p>
<p>Cette approche fonctionne pour des scénarios simples, mais perd en efficacité à mesure que la complexité augmente. Prenons par exemple les tests Software-in-the-Loop (SIL) dans un environnement virtuel complexe. Chaque exécution de pipeline nécessite une recréation complète de l'environnement avec provisionnement des processeurs virtuels, installations des chaînes d'outils et configurations cibles. <strong>Ces processus peuvent prendre un temps considérable.</strong></p>
<p>De plus, à mesure que les systèmes embarqués nécessitent des configurations matérielles virtuelles plus sophistiquées, les <strong>coûts de provisionnement augmentent rapidement.</strong></p>
<p>Pour éviter les coûts liés aux configurations et les délais, de nombreuses équipes se tournent vers des environnements avec une longue durée de vie qui persistent entre les exécutions de tests, mais ces derniers présentent des inconvénients.</p>
<h3>Seconde approche : environnements avec une longue durée de vie</h3>
<p><strong>Les environnements avec une longue durée de vie sont persistants</strong> pour éviter une reconstruction constante. Les équipes de développement commencent par demander ces environnements aux équipes informatiques ou <a href="https://about.gitlab.com/fr-fr/topics/devops/" title="Qu'est-ce que le DevOps ?">DevOps</a>. Ils doivent ensuite attendre leur approbation, puis ont besoin que quelqu'un provisionne manuellement l'infrastructure. Ces environnements sont liés à des développeurs ou équipes plutôt qu'à des modifications de code spécifiques, et ils prennent en charge le travail de développement continu sur plusieurs projets.</p>
<p>Bien que cette approche élimine les coûts de reconstruction, <strong>elle multiplie les environnements</strong>, qui s'accumulent sans date de fin claire. Les coûts d'infrastructure augmentent à mesure que les environnements consomment des ressources.</p>
<p>Les environnements avec une longue durée de vie souffrent également d'une <strong>dégradation de configuration</strong> : les environnements conservent des paramètres, des données en cache ou des versions logicielles de tests précédents qui peuvent affecter les résultats ultérieurs. Un test qui devrait échouer finit par réussir en raison des données persistantes issues des tests précédents.</p>
<p>En fin de compte, la gestion des environnements avec une longue durée de vie est un processus manuel qui ralentit la vélocité de développement et augmente les coûts opérationnels.</p>
<p><strong>GitLab propose une troisième approche</strong> : les « environnements de cycle de vie gérés », qui offrent les avantages des deux premières approches, sans les inconvénients.</p>
<h2>Solution : les environnements de cycle de vie gérés</h2>
<p>Les environnements de cycle de vie gérés de GitLab associent les configurations de test virtuelles aux merge requests (<a href="https://docs.gitlab.com/user/project/merge_requests/">MR</a>) plutôt qu'aux exécutions de pipeline ou aux équipes de développement. Ils peuvent être considérés comme des « environnements de test MR gérés ». Lorsque vous créez une merge request pour une nouvelle fonctionnalité, GitLab orchestre automatiquement le provisionnement des environnements de test virtuels nécessaires, qui sont maintenus tout au long du processus de développement de la fonctionnalité.</p>
<h3>Avantages clés</h3>
<ul>
<li>
<p><strong>Environnements persistants sans reconstruction :</strong> le même environnement virtuel gère plusieurs exécutions de pipeline pendant que vous itérez sur votre fonctionnalité. Que vous exécutiez des tests MIL dans MATLAB/Simulink ou des tests SIL sur des processeurs embarqués spécialisés, l'environnement reste configuré et prêt.</p>
</li>
<li>
<p><strong>Nettoyage automatique :</strong> lorsque vous fusionnez votre fonctionnalité et supprimez la branche, GitLab déclenche automatiquement le nettoyage de l'environnement pour éliminer la multiplication des environnements.</p>
</li>
<li>
<p><strong>Source unique de vérité :</strong> la merge request enregistre tous les résultats de compilation, les résultats des tests et les métadonnées des environnements en un seul endroit. Les membres de l'équipe peuvent suivre les progrès et collaborer sans jongler entre différents outils ou feuilles de calcul.</p>
</li>
</ul>
<p>Regardez cette vidéo pour découvrir comment les environnements de cycle de vie gérés fonctionnent en pratique :</p>
<p>&lt;figure class=&quot;video_container&quot;&gt; &lt;iframe src=&quot;https://www.youtube.com/embed/9tfyVPK5DuI?si=Kj_xXNo02bnFBDhy&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt; &lt;/iframe&gt; &lt;/figure&gt;</p>
<p>GitLab automatise l'ensemble du workflow de test. Chaque fois que vous exécutez des tests de micrologiciel, GitLab orchestre les tests dans l'environnement virtuel adéquat, enregistre les résultats et fournit une visibilité complète sur chaque exécution de pipeline. Cette approche transforme les tests virtuels complexes d'un processus manuel sujet aux erreurs en workflows automatisés et fiables.</p>
<p><strong>Résultat :</strong> les équipes profitent d'environnements réutilisables sans coûts incontrôlés. Elles augmentent l'efficacité et maintiennent des configurations de test propres et isolées pour chaque fonctionnalité.</p>
<p>Découvrez une démonstration des environnements de cycle de vie gérés avec un test de micrologiciel sur du matériel virtuel :</p>
<p>&lt;figure class=&quot;video_container&quot;&gt; &lt;iframe src=&quot;https://www.youtube.com/embed/iWdY-kTlpH4?si=D6rpoulr9sv6Sl6E&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt; &lt;/iframe&gt; &lt;/figure&gt;</p>
<h2>Impact métier</h2>
<p>Les environnements de cycle de vie gérés de GitLab entraînent des améliorations mesurables dans les workflows de développement de systèmes embarqués. Les équipes qui exécutent des tests MIL dans MATLAB/Simulink et des tests SIL sur des processeurs spécialisés comme Infineon AURIX ou les systèmes BlackBerry QNX n'ont plus à gérer des reconstructions constantes d'environnements ou la multiplication incontrôlée des environnements. Ces configurations de test virtuelles complexes persistent tout au long du développement des fonctionnalités et exécutent un nettoyage automatique une fois terminées. Leurs avantages sont nombreux :</p>
<ul>
<li>Cycles de développement produit plus rapides</li>
<li>Délai de mise sur le marché plus court</li>
<li>Coûts d'infrastructure réduits</li>
<li>Assurance qualité supérieure</li>
</ul>
<blockquote>
<p><strong><a href="https://about.gitlab.com/fr-fr/free-trial/devsecops/?utm_medium=blog&amp;utm_source=blog&amp;utm_campaign=eg_emea_x_trial_x_fr_blog_fr">→ Essayez GitLab Ultimate et GitLab Duo Enterprise gratuitement.</a></strong></p>
</blockquote>
]]></content>
        <author>
            <name>Matt DeLaney</name>
            <uri>https://about.gitlab.com/blog/authors/matt-delaney</uri>
        </author>
        <author>
            <name>Darwin Sanoy</name>
            <uri>https://about.gitlab.com/blog/authors/darwin-sanoy</uri>
        </author>
        <published>2025-10-28T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Comment GitLab Duo Agent Platform révolutionne le DataOps]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/how-gitlab-duo-agent-platform-transforms-dataops/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/how-gitlab-duo-agent-platform-transforms-dataops/"/>
        <updated>2025-10-27T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Créer manuellement des modèles dbt est un processus fastidieux qui peut prendre des heures. Si aucune transformation majeure n'est requise, il ne s'agit pas de la partie la plus stimulante du travail des Data Engineers.</p>
<p>Imaginez pouvoir automatiser ce processus dans son intégralité. Dans ce guide pratique, nous vous montrons précisément comment <a href="https://about.gitlab.com/fr-fr/gitlab-duo/agent-platform/">GitLab Duo Agent Platform</a> peut générer des modèles dbt complets en quelques minutes seulement, avec une structure, des tests et de la documentation.</p>
<blockquote>
<p><strong><a href="https://about.gitlab.com/fr-fr/free-trial/devsecops/?utm_medium=blog&amp;utm_source=blog&amp;utm_campaign=eg_emea_x_trial_x_fr_blog_fr">→ Essayez GitLab Ultimate et GitLab Duo Enterprise gratuitement.</a></strong></p>
</blockquote>
<h2>Exemple pratique</h2>
<p>Notre équipe marketing souhaite gérer et optimiser efficacement ses investissements publicitaires. Reddit étant l'une des plateformes publicitaires utilisées, nous extrayons donc les données de l'API Reddit Ads vers notre <a href="https://handbook.gitlab.com/handbook/enterprise-data/platform/">plateforme de données</a> d'entreprise Snowflake.</p>
<p>GitLab possède trois couches de stockage :</p>
<ol>
<li>
<p>Couche <code>raw</code> : premier emplacement pour les données non traitées issues de sources externes, elles ne sont pas encore prêtes pour une utilisation métier.</p>
</li>
<li>
<p>Couche <code>prep</code>: première couche de transformation avec les modèles sources, les données ne sont toujours pas prêtes pour une utilisation générale.</p>
</li>
<li>
<p>Couche <code>prod</code> : données finales transformées prêtes pour l'utilisation métier et les rapports Tableau.</p>
</li>
</ol>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1758030995/zo7vespktzfdtdtiauz7.png" alt="Schéma des couches de stockage"></p>
<p>Dans ce guide, les données sont déjà dans la couche <code>raw</code> grâce à notre solution d'extraction Fivetran, et nous allons générer les modèles dbt qui gèrent les données de la couche <code>prep</code> jusqu'à la couche <code>prod</code>.</p>
<p>Sans avoir à écrire une seule ligne de code dbt nous-mêmes, nous aurons à la fin de ce guide :</p>
<ul>
<li>
<p><strong>Des modèles sources</strong> dans la couche <code>prep</code></p>
</li>
<li>
<p><strong>Des modèles workspace</strong> dans la couche <code>prod</code></p>
</li>
<li>
<p><strong>Des configurations dbt complètes</strong> pour les 13 tables (soit 112 colonnes) du jeu de données Reddit Ads</p>
</li>
<li>
<p><strong>Des requêtes de test</strong> pour valider les résultats</p>
</li>
</ul>
<p>Le processus complet prendra moins de 10 minutes, comparé aux heures habituellement nécessaires du processus manuel.</p>
<p>Voici les étapes à suivre :</p>
<h2>1. Préparer la structure des données</h2>
<p>Avant que GitLab Duo ne puisse générer nos modèles, il doit comprendre la structure complète des tables. La clé est d'exécuter une requête sur le schéma d'informations de Snowflake, car nous étudions actuellement comment connecter GitLab Duo via Model Context Protocol (<a href="https://about.gitlab.com/fr-fr/topics/ai/model-context-protocol/">MCP</a>) à notre instance Snowflake :</p>
<pre><code class="language-sql">SELECT 
    table_name,
    column_name,
    data_type,
    is_nullable,
    CASE 
        WHEN is_nullable = 'NO' THEN 'PRIMARY_KEY'
        ELSE NULL 
    END as key_type
FROM raw.information_schema.columns
WHERE table_schema = 'REDDIT_ADS'
ORDER BY table_name, ordinal_position;
</code></pre>
<p>Cette requête contient :</p>
<ul>
<li>
<p>Tous les noms de tables et colonnes</p>
</li>
<li>
<p>Les types de données pour une structure de modèle appropriée</p>
</li>
<li>
<p>Les contraintes nullables</p>
</li>
<li>
<p>L'identification des clés primaires (colonnes non-nullables dans ce jeu de données)</p>
</li>
</ul>
<p><strong>Conseil de pro :</strong> dans le jeu de données Reddit Ads, toutes les colonnes non-nullables servent de clés primaires, il s'agit là d'un modèle récurrent. Nous avons validé ce modèle en vérifiant des tables comme <code>ad_group</code>, qui possèdent deux colonnes non-nullables (<code>account_id</code> et <code>id</code>) toutes deux marquées comme clés primaires. L'exécution de cette requête a renvoyé 112 lignes de métadonnées que nous avons exportées dans un fichier CSV pour la génération de modèles. Bien que cette étape manuelle fonctionne bien aujourd'hui, nous étudions une intégration directe de GitLab Duo avec notre plateforme de données via MCP pour automatiser entièrement ce processus.</p>
<h2>2. Configurer GitLab Duo</h2>
<p>Il existe deux façons d'interagir avec <a href="https://docs.gitlab.com/fr/user/get_started/getting_started_gitlab_duo/">GitLab Duo</a> :</p>
<ol>
<li>
<p><strong>La fonction chat de l'interface web</strong></p>
</li>
<li>
<p><strong>Le plugin Visual Studio Code</strong></p>
</li>
</ol>
<p>Nous avons choisi le plugin VS Code, car nous pouvons exécuter les modèles dbt localement pour les tester.</p>
<h2>3. Entrer le prompt « magique »</h2>
<p>Voici le prompt exact que nous avons utilisé pour générer tout le code dbt :</p>
<pre><code class="language-yaml">Create dbt models for all the tables in the file structure.csv.

I want to have the source models created, with a filter that dedupes the data based on the primary key. Create these in a new folder reddit_ads.
I want to have workspace models created and store these in the workspace_marketing schema.

Take this MR as example: [I've referenced to previous source implementation]. Here is the same done for Source A, but now it needs to be done for Reddit Ads. 

Please check the dbt style guide when creating the code: https://handbook.gitlab.com/handbook/enterprise-data/platform/dbt-guide/
</code></pre>
<p>Les éléments essentiels suivants ont garanti l'efficacité du prompt :</p>
<ul>
<li>
<p><strong>Des spécifications claires</strong> pour les modèles sources et workspace</p>
</li>
<li>
<p><strong>Un exemple de référence</strong> d'une merge request similaire précédente</p>
</li>
<li>
<p><strong>Une référence au guide de style</strong> pour garantir la qualité et la cohérence du code</p>
</li>
<li>
<p><strong>Un ciblage spécifique du schéma</strong> pour une organisation correcte</p>
</li>
</ul>
<h2>4. Le processus de GitLab Duo</h2>
<p>Après que nous avons soumis le prompt, GitLab Duo s'est mis au travail. Le processus de génération complet a pris quelques minutes, durant lesquelles GitLab Duo a :</p>
<ol>
<li>
<p><strong>Lu et analysé</strong> le fichier CSV d'intrant.</p>
</li>
<li>
<p><strong>Examiné les structures des tables</strong> à partir des métadonnées.</p>
</li>
<li>
<p><strong>Référencé notre guide de style dbt</strong> pour les normes de codage.</p>
</li>
<li>
<p><strong>Pris en compte la merge request similaire</strong> pour proposer une structure correcte.</p>
</li>
<li>
<p><strong>Généré les modèles sources</strong> pour les 13 tables.</p>
</li>
<li>
<p><strong>Créé les modèles workspace</strong> pour les 13 tables.</p>
</li>
<li>
<p><strong>Généré les fichiers dbt complémentaires</strong> :</p>
<ul>
<li>Configuration <code>sources.yml</code></li>
<li>Fichiers <code>schema.yml</code> avec tests et documentation</li>
<li>Mise à jour de <code>dbt_project.yml</code> avec les références de schéma</li>
</ul>
</li>
</ol>
<h2>Les résultats</h2>
<p>Les résultats sont remarquables :</p>
<ul>
<li>
<p><strong>1 fichier modifié :</strong> dbt_project.yml (ajout de la configuration du schéma reddit_ads)</p>
</li>
<li>
<p><strong>29 nouveaux fichiers :</strong></p>
<ul>
<li><strong>26 modèles dbt</strong> (13 sources + 13 workspaces)</li>
<li><strong>3 fichiers YAML</strong></li>
</ul>
</li>
<li>
<p><strong>Près de 900 lignes de code</strong> générées automatiquement</p>
</li>
<li>
<p><strong>Tests de données intégrés,</strong> avec des contraintes uniques sur les colonnes de clé primaire</p>
</li>
<li>
<p><strong>Descriptions génériques</strong> pour tous les modèles et colonnes</p>
</li>
<li>
<p><strong>Logique de déduplication appropriée</strong> dans les modèles sources</p>
</li>
<li>
<p><strong>Structure de code propre et cohérente</strong> conformément au guide de style GitLab dbt</p>
</li>
</ul>
<pre><code class="language-yaml">transform/snowflake-dbt/
├── dbt_project.yml                                                    [MODIFIED]
└── models/
    ├── sources/
    │   └── reddit_ads/
    │       ├── reddit_ads_ad_group_source.sql                        [NEW]
    │       ├── reddit_ads_ad_source.sql                              [NEW]
    │       ├── reddit_ads_business_account_source.sql                [NEW]
    │       ├── reddit_ads_campaign_source.sql                        [NEW]
    │       ├── reddit_ads_custom_audience_history_source.sql         [NEW]
    │       ├── reddit_ads_geolocation_source.sql                     [NEW]
    │       ├── reddit_ads_interest_source.sql                        [NEW]
    │       ├── reddit_ads_targeting_community_source.sql             [NEW]
    │       ├── reddit_ads_targeting_custom_audience_source.sql       [NEW]
    │       ├── reddit_ads_targeting_device_source.sql                [NEW]
    │       ├── reddit_ads_targeting_geolocation_source.sql           [NEW]
    │       ├── reddit_ads_targeting_interest_source.sql              [NEW]
    │       ├── reddit_ads_time_zone_source.sql                       [NEW]
    │       ├── schema.yml                                            [NEW]
    │       └── sources.yml                                           [NEW]
    └── workspaces/
        └── workspace_marketing/
            └── reddit_ads/
                ├── schema.yml                                        [NEW]
                ├── wk_reddit_ads_ad.sql                              [NEW]
                ├── wk_reddit_ads_ad_group.sql                        [NEW]
                ├── wk_reddit_ads_business_account.sql                [NEW]
                ├── wk_reddit_ads_campaign.sql                        [NEW]
                ├── wk_reddit_ads_custom_audience_history.sql         [NEW]
                ├── wk_reddit_ads_geolocation.sql                     [NEW]
                ├── wk_reddit_ads_interest.sql                        [NEW]
                ├── wk_reddit_ads_targeting_community.sql             [NEW]
                ├── wk_reddit_ads_targeting_custom_audience.sql       [NEW]
                ├── wk_reddit_ads_targeting_device.sql                [NEW]
                ├── wk_reddit_ads_targeting_geolocation.sql           [NEW]
                ├── wk_reddit_ads_targeting_interest.sql              [NEW]
                └── wk_reddit_ads_time_zone.sql                       [NEW]
</code></pre>
<h3>Exemple de code généré</h3>
<p>Voici un exemple de la qualité du code généré. Pour la table <code>time_zone</code>, GitLab Duo a créé :</p>
<p><strong>Un modèle source de la couche <code>prep</code></strong></p>
<pre><code class="language-sql">WITH source AS (
  SELECT *
  FROM {{ source('reddit_ads','time_zone') }}
  QUALIFY ROW_NUMBER() OVER (PARTITION BY id ORDER BY _fivetran_synced DESC) = 1
),

renamed AS (
  SELECT
    id::VARCHAR                               AS time_zone_id,
    code::VARCHAR                             AS time_zone_code,
    dst_offset::NUMBER                        AS time_zone_dst_offset,
    is_dst_active::BOOLEAN                    AS is_time_zone_dst_active,
    name::VARCHAR                             AS time_zone_name,
    offset::NUMBER                            AS time_zone_offset,
    _fivetran_synced::TIMESTAMP               AS fivetran_synced_at
  FROM source
)

SELECT * FROM renamed
</code></pre>
<p><strong>Schema.yml</strong></p>
<pre><code class="language-yaml">models:
  - name: reddit_ads_time_zone_source
    description: Time zone data from Reddit Ads system
    columns:
      - name: time_zone_id
        description: Unique identifier for time zone records
        data_tests:
          - unique
          - not_null
      - name: time_zone_code
        description: Code for the time zone
      - name: time_zone_dst_offset
        description: Daylight saving time offset for the time zone
      - name: is_time_zone_dst_active
        description: Flag indicating if daylight saving time is active
      - name: time_zone_name
        description: Name of the time zone
      - name: time_zone_offset
        description: Offset for the time zone
      - name: fivetran_synced_at
        description: Timestamp when the record was last synced by Fivetran
</code></pre>
<p><strong>Source.yml</strong></p>
<pre><code class="language-yaml">sources:
  - name: reddit_ads
    database: RAW
    schema: reddit_ads
    loaded_at_field: _fivetran_synced
    loader: fivetran
    description: Reddit Ads data

    quoting:
      database: true
      schema: false
      identifier: false

    tables:
      - name: time_zone
</code></pre>
<p><strong>Modèle workspace</strong></p>
<pre><code class="language-sql">WITH source AS (
  SELECT *
  FROM {{ ref('reddit_ads_time_zone_source') }}
)

SELECT * FROM source
</code></pre>
<h2>5. Valider la qualité</h2>
<p>Une fois que le code semblait correct, nous avons effectué un push vers la merge request et exécuté le <a href="https://handbook.gitlab.com/handbook/enterprise-data/platform/ci-jobs/#build_changes">pipeline de test CI</a> pour tester le code et valider les résultats. Nous avons demandé à GitLab Duo de créer une requête de validation :</p>
<pre><code class="language-yaml">Create a test query to test the row counts between the raw layer and the workspace layer. Keep in mind that we do deduplication, so we can compare both using distinct on the primary keys.
</code></pre>
<p>L'IA a généré une requête de validation complète qui :</p>
<ul>
<li>
<p>Compare le nombre de lignes entre les couches <code>raw</code> et workspace.</p>
</li>
<li>
<p>Prend en compte la logique de déduplication.</p>
</li>
<li>
<p>Teste les 13 tables.</p>
</li>
<li>
<p>Calcule les pourcentages de rétention de données.</p>
</li>
</ul>
<p>&lt;details&gt;
&lt;summary&gt;Requête SQL de test générée&lt;/summary&gt;</p>
<pre><code class="language-sql">-- Reddit Ads Row Count Validation Test
-- Compares distinct counts between RAW layer and WORKSPACE_MARKETING layer
-- Accounts for deduplication logic in source models

WITH raw_counts AS (
  -- Single primary key tables
  SELECT 'ad' AS table_name, COUNT(DISTINCT id) AS raw_count
  FROM RAW.REDDIT_ADS.AD
  
  UNION ALL
  
  SELECT 'business_account' AS table_name, COUNT(DISTINCT id) AS raw_count
  FROM RAW.REDDIT_ADS.BUSINESS_ACCOUNT
  
  UNION ALL
  
  SELECT 'campaign' AS table_name, COUNT(DISTINCT id) AS raw_count
  FROM RAW.REDDIT_ADS.CAMPAIGN
  
  UNION ALL
  
  SELECT 'custom_audience_history' AS table_name, COUNT(DISTINCT id) AS raw_count
  FROM RAW.REDDIT_ADS.CUSTOM_AUDIENCE_HISTORY
  
  UNION ALL
  
  SELECT 'geolocation' AS table_name, COUNT(DISTINCT id) AS raw_count
  FROM RAW.REDDIT_ADS.GEOLOCATION
  
  UNION ALL
  
  SELECT 'interest' AS table_name, COUNT(DISTINCT id) AS raw_count
  FROM RAW.REDDIT_ADS.INTEREST
  
  UNION ALL
  
  SELECT 'time_zone' AS table_name, COUNT(DISTINCT id) AS raw_count
  FROM RAW.REDDIT_ADS.TIME_ZONE
  
  -- Composite primary key tables
  UNION ALL
  
  SELECT 'ad_group' AS table_name, COUNT(DISTINCT CONCAT(account_id, '|', id)) AS raw_count
  FROM RAW.REDDIT_ADS.AD_GROUP
  
  UNION ALL
  
  SELECT 'targeting_community' AS table_name, COUNT(DISTINCT CONCAT(ad_group_id, '|', community_id)) AS raw_count
  FROM RAW.REDDIT_ADS.TARGETING_COMMUNITY
  
  UNION ALL
  
  SELECT 'targeting_custom_audience' AS table_name, COUNT(DISTINCT CONCAT(ad_group_id, '|', custom_audience_id)) AS raw_count
  FROM RAW.REDDIT_ADS.TARGETING_CUSTOM_AUDIENCE
  
  UNION ALL
  
  SELECT 'targeting_device' AS table_name, COUNT(DISTINCT _fivetran_id) AS raw_count
  FROM RAW.REDDIT_ADS.TARGETING_DEVICE
  
  UNION ALL
  
  SELECT 'targeting_geolocation' AS table_name, COUNT(DISTINCT CONCAT(ad_group_id, '|', geolocation_id)) AS raw_count
  FROM RAW.REDDIT_ADS.TARGETING_GEOLOCATION
  
  UNION ALL
  
  SELECT 'targeting_interest' AS table_name, COUNT(DISTINCT CONCAT(ad_group_id, '|', interest_id)) AS raw_count
  FROM RAW.REDDIT_ADS.TARGETING_INTEREST
),

workspace_counts AS (
  -- Workspace layer counts using primary keys from schema.yml
  SELECT 'ad' AS table_name, COUNT(DISTINCT ad_id) AS workspace_count
  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_AD
  
  UNION ALL
  
  SELECT 'business_account' AS table_name, COUNT(DISTINCT business_account_id) AS workspace_count
  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_BUSINESS_ACCOUNT
  
  UNION ALL
  
  SELECT 'campaign' AS table_name, COUNT(DISTINCT campaign_id) AS workspace_count
  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_CAMPAIGN
  
  UNION ALL
  
  SELECT 'custom_audience_history' AS table_name, COUNT(DISTINCT custom_audience_id) AS workspace_count
  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_CUSTOM_AUDIENCE_HISTORY
  
  UNION ALL
  
  SELECT 'geolocation' AS table_name, COUNT(DISTINCT geolocation_id) AS workspace_count
  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_GEOLOCATION
  
  UNION ALL
  
  SELECT 'interest' AS table_name, COUNT(DISTINCT interest_id) AS workspace_count
  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_INTEREST
  
  UNION ALL
  
  SELECT 'time_zone' AS table_name, COUNT(DISTINCT time_zone_id) AS workspace_count
  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TIME_ZONE
  
  -- Composite primary key tables
  UNION ALL
  
  SELECT 'ad_group' AS table_name, COUNT(DISTINCT CONCAT(ad_group_account_id, '|', ad_group_id)) AS workspace_count
  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_AD_GROUP
  
  UNION ALL
  
  SELECT 'targeting_community' AS table_name, COUNT(DISTINCT CONCAT(targeting_community_ad_group_id, '|', targeting_community_id)) AS workspace_count
  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TARGETING_COMMUNITY
  
  UNION ALL
  
  SELECT 'targeting_custom_audience' AS table_name, COUNT(DISTINCT CONCAT(targeting_custom_audience_ad_group_id, '|', targeting_custom_audience_id)) AS workspace_count
  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TARGETING_CUSTOM_AUDIENCE
  
  UNION ALL
  
  SELECT 'targeting_device' AS table_name, COUNT(DISTINCT targeting_device_fivetran_id) AS workspace_count
  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TARGETING_DEVICE
  
  UNION ALL
  
  SELECT 'targeting_geolocation' AS table_name, COUNT(DISTINCT CONCAT(targeting_geolocation_ad_group_id, '|', targeting_geolocation_id)) AS workspace_count
  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TARGETING_GEOLOCATION
  
  UNION ALL
  
  SELECT 'targeting_interest' AS table_name, COUNT(DISTINCT CONCAT(targeting_interest_ad_group_id, '|', targeting_interest_id)) AS workspace_count
  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TARGETING_INTEREST
)

-- Final comparison with validation results
SELECT 
  r.table_name,
  r.raw_count,
  w.workspace_count,
  r.raw_count - w.workspace_count AS count_difference,
  CASE 
    WHEN r.raw_count = w.workspace_count THEN '✅ PASS'
    WHEN r.raw_count &gt; w.workspace_count THEN '⚠️ RAW &gt; WORKSPACE (Expected due to deduplication)'
    ELSE '❌ FAIL - WORKSPACE &gt; RAW (Unexpected)'
  END AS validation_status,
  ROUND((w.workspace_count::FLOAT / r.raw_count::FLOAT) * 100, 2) AS data_retention_percentage
FROM raw_counts r
JOIN workspace_counts w ON r.table_name = w.table_name
ORDER BY r.table_name;
</code></pre>
<p>&lt;/details&gt;</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1758030995/guicjhzwvrz3czwjs3xo.png" alt="Tableau des résultats de la requête"></p>
<p>L'exécution de cette requête a montré :</p>
<ul>
<li>
<p><strong>Aucune différence</strong> dans le nombre de lignes après déduplication</p>
</li>
<li>
<p><strong>100% de rétention des données</strong> sur toutes les tables</p>
</li>
<li>
<p><strong>La réussite de tous les tests</strong></p>
</li>
</ul>
<h2>Bilan : gain de temps considérable</h2>
<ul>
<li>
<p><strong>Approche traditionnelle :</strong> 6-8 heures de codage manuel, tests et débogage</p>
</li>
<li>
<p><strong>Approche avec GitLab Duo :</strong> 6-8 minutes de génération et temps de revue</p>
</li>
</ul>
<p>L'efficacité des équipes de développement est bien meilleure (de 6-8 heures à 6-8 minutes), et la qualité du code reste élevée.</p>
<h2>Bonnes pratiques</h2>
<p>Sur la base de cette expérience, voici nos recommandations clés :</p>
<h3>Préparez vos métadonnées</h3>
<ul>
<li>
<p>Extrayez les structures complètes des tables avec les types de données et les contraintes.</p>
</li>
<li>
<p>Identifiez les clés primaires et les relations en amont.</p>
</li>
<li>
<p>Exportez des fichiers CSV d'intrant propres et bien formatés.</p>
</li>
</ul>
<p><strong>Remarque :</strong> en connectant GitLab Duo via MCP à vos (méta)données, vous pourriez éviter cette étape manuelle.</p>
<h3>Fournissez un contexte clair</h3>
<ul>
<li>
<p>Indiquez des merge requests existantes à titre d'exemple si possible.</p>
</li>
<li>
<p>Précisez vos normes de codage et guides de style.</p>
</li>
<li>
<p>Explicitez la structure des dossiers et les conventions de nommage.</p>
</li>
</ul>
<h3>Validez minutieusement</h3>
<ul>
<li>
<p>Créez toujours des requêtes de validation pour l'intégrité des données.</p>
</li>
<li>
<p>Testez localement avant de fusionner.</p>
</li>
<li>
<p>Exécutez votre <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/cicd-pipeline/" title="Qu'est-ce qu'un pipeline CI/CD ?">pipeline CI/CD</a> pour détecter tout problème.</p>
</li>
</ul>
<h3>Exploitez l'IA pour les tâches de suivi</h3>
<ul>
<li>
<p>Générez automatiquement des requêtes de test.</p>
</li>
<li>
<p>Créez des templates de documentation.</p>
</li>
<li>
<p>Construisez des scripts de validation.</p>
</li>
</ul>
<h2>Prochaines étapes</h2>
<p>Cet article montre comment les outils de développement alimentés par l'IA comme GitLab Duo transforment également les workflows d'ingénierie des données. La capacité de générer des centaines de lignes de code prêtes pour la production en quelques minutes, avec tests complets, documentation et structure appropriée, représente un changement fondamental dans notre approche des tâches répétitives.</p>
<p>En exploitant l'IA pour gérer les aspects répétitifs de la création de modèles dbt, les Data Engineers peuvent se concentrer sur des activités à plus forte valeur ajoutée comme la stratégie de modélisation des données, l'optimisation des performances et l'implémentation de la logique métier.</p>
<p><strong>Prêt à essayer par vous-même ?</strong> Commencez avec un petit jeu de données, préparez soigneusement vos métadonnées et observez comment GitLab Duo transforme des heures de travail en une tâche de seulement quelques minutes.</p>
<blockquote>
<p><strong><a href="https://about.gitlab.com/fr-fr/free-trial/devsecops/?utm_medium=blog&amp;utm_source=blog&amp;utm_campaign=eg_emea_x_trial_x_fr_blog_fr">→ Essayez GitLab Ultimate et GitLab Duo Enterprise gratuitement.</a></strong></p>
</blockquote>
<h2>Pour aller plus loin</h2>
<ul>
<li>
<p><a href="https://about.gitlab.com/fr-fr/blog/gitlab-18-3-expanding-ai-orchestration-in-software-engineering/">GitLab 18.3 : expansion de l'orchestration IA dans l'ingénierie logicielle</a></p>
</li>
<li>
<p><a href="https://about.gitlab.com/fr-fr/blog/gitlab-duo-agent-platform-public-beta/">GitLab Duo Agent Platform (bêta) : votre orchestration IA nouvelle génération</a></p>
</li>
</ul>
]]></content>
        <author>
            <name>Dennis van Rooijen</name>
            <uri>https://about.gitlab.com/blog/authors/dennis-van rooijen</uri>
        </author>
        <published>2025-10-27T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Clonage Git : optimisez vos workflows avec Git Much Faster]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/supercharge-your-git-workflows/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/supercharge-your-git-workflows/"/>
        <updated>2025-10-24T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Prenons l'exemple d'un projet Chromium dont vous devez cloner le dépôt. Vous avez lancé la commande <code>git clone</code> et devez patienter pendant 95 minutes avant que votre répertoire de travail ne soit enfin prêt. Bien sûr, cela vous donne le temps de boire un café, de consulter vos e-mails et même de partir en pause déjeuner, mais cette situation est loin d'être idéale. Malheureusement, c'est une réalité que partagent les équipes de développement qui travaillent avec de grands dépôts contenant plus de 50 Go de données.</p>
<p>L'impact négatif sur la productivité est colossal. Les <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/cicd-pipeline/" title="Qu'est-ce qu'un pipeline CI/CD ?">pipelines CI/CD</a> sont paralysés, en attendant que les clonages de dépôts se terminent. Les coûts d'infrastructure explosent, avec des ressources de calcul inutilisées. La frustration ressentie par les équipes de développement augmente, car le changement de contexte est devenu la norme.</p>
<p>Et s'il était possible de réduire cette attente de 95 minutes à seulement 6 minutes et de diminuer de 93 % les temps de clonage grâce à des techniques éprouvées ?</p>
<p><a href="https://gitlab.com/gitlab-accelerates-embedded/misc/git-much-faster">Git Much Faster</a> est un script complet de benchmarking et d'optimisation qui révolutionne la gestion des dépôts Git volumineux. Né d'une expérience concrète d'optimisation des workflows de développement de systèmes embarqués, il fournit des stratégies concrètes pour améliorer de façon mesurable les performances des clonages Git standard et des configurations Git optimisées, et tirer parti de l'outil Scalar intégré à <a href="https://about.gitlab.com/fr-fr/blog/2024/10/08/what-is-git/" title="Qu'est-ce que Git ?">Git</a>.</p>
<p>Découvrez dans cet article comment réduire drastiquement les temps de clonage Git à l'aide de stratégies d'optimisation et explorez les résultats de benchmarks de performance réels issus de dépôts majeurs (tels que le noyau Linux et Chromium). Vous apprendrez également comment mettre en œuvre ces optimisations en toute sécurité dans vos environnements de développement et <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/" title="Qu'est-ce que le CI/CD ?">CI/CD</a>.</p>
<h2>Git Much Faster : présentation du projet</h2>
<p>Le script Git Much Faster vous permet d’effectuer un benchmark des différentes approches d'optimisation du clonage sur votre environnement cible, qu'il s'agisse d'un poste de travail classique, d'un outil d'intégration continue, de solutions de développement cloud ou de clonages spécialisés pour <a href="https://about.gitlab.com/fr-fr/topics/gitops/" title="Qu'est-ce que GitOps ?">GitOps</a>. Il intègre également des paramètres de configuration optimisés pour des clonages ultra-rapides, que vous pouvez utiliser comme point de départ et ajuster selon vos besoins, ou désactiver si certaines configurations ne sont pas adaptées à votre cas d'utilisation.</p>
<p>Git Much Faster répond à une problématique réelle du comportement de clonage par défaut de Git, qui privilégie la sécurité au détriment de la rapidité. Cette approche convient aux dépôts de petite taille, mais elle n'est pas adaptée aux codes sources volumineux ni aux ressources binaires étendues ou aux structures de <a href="https://about.gitlab.com/fr-fr/blog/building-a-gitlab-ci-cd-pipeline-for-a-monorepo-the-easy-way/" title="monorepo">monorepo</a> complexes.</p>
<p>Cette problématique se manifeste dans des scénarios de plus en plus courants. En effet, les équipes de développement de systèmes embarqués héritent de dépôts avec de nombreux binaires de micrologiciels hérités, bootloaders et SDK de fournisseurs stockés directement dans le contrôle de version. Les applications web accumulent des années de ressources marketing et de fichiers de design. Les projets de développement de jeux vidéo contiennent des modèles 3D et fichiers audio volumineux avec des dépôts qui atteignent alors plusieurs dizaines de gigaoctets.</p>
<p>Les pipelines CI/CD sont particulièrement affectés : chaque job nécessite un nouveau clonage du dépôt, et lorsque cette opération dure entre 20 et 90 minutes, le workflow complet de développement est paralysé. Les coûts d'infrastructure sont également multipliés, car les ressources de calcul restent inutilisées pendant ces longues opérations de clonage.</p>
<p>Git Much Faster apporte la solution grâce à un benchmark complet comparant quatre stratégies distinctes : le clonage Git standard (historique complet comme base de référence), le clonage Git optimisé (configurations personnalisées avec compression désactivée et checkout parcellaire (« sparse »)), le clonage Git avec Scalar (clonage partiel intégré) et l'évaluation du répertoire actuel (analyse des dépôts existants sans nouveau clonage).</p>
<p>Git Much Faster fournit des benchmarks mesurables et reproductibles dans des environnements AWS contrôlés, afin d'éliminer les variables qui rendent habituellement les tests de performance peu fiables. Sa véritable puissance réside dans sa capacité à exécuter tous les benchmarks, quel que soit l'environnement cible. Ainsi, même si certains développeurs souffrent de connexions réseau trop lentes, vous pouvez identifier la meilleure stratégie d'optimisation du clonage adaptée à chaque situation.</p>
<blockquote>
<p><strong><a href="https://about.gitlab.com/fr-fr/free-trial/devsecops/?utm_medium=blog&amp;utm_source=blog&amp;utm_campaign=eg_emea_x_trial_x_fr_blog_fr">→ Essayez GitLab Ultimate et GitLab Duo Enterprise gratuitement.</a></strong></p>
</blockquote>
<h2>Stratégies d'optimisation</h2>
<p>Git Much Faster est particulièrement efficace, car il s'attaque aux principaux goulots d'étranglement de Git à l'aide d'une approche multicouche qui cible à la fois les transferts réseau, l'utilisation du processeur et les modèles de stockage.</p>
<p>Les gains les plus importants reposent sur deux optimisations majeures. Premièrement, <code>core.compression=0</code> : cette option désactive la compression, gourmande en ressources CPU lors des transferts réseau. Sur les réseaux modernes à haut débit, les cycles CPU nécessaires pour la compression des données dépasse souvent les économies réalisées sur la bande passante. À elle seule, cette optimisation réduit le temps de clonage de 40 % à 60 %.</p>
<p>Deuxièmement, <code>http.postBuffer=1024M</code> : Git utilise par défaut un tampon HTTP relativement petit. L'augmentation de sa taille permet de traiter des opérations plus importantes sans les fragmenter en plusieurs requêtes, ce qui réduit considérablement la surcharge du protocole, surtout pour les gros dépôts.</p>
<p>Git Much Faster tire également parti des clonages superficiels (« shallow ») (<code>--depth=1</code>) qui ne récupèrent que le dernier commit et des clonages partiels (<code>--filter=blob:none</code>) qui diffèrent le téléchargement du contenu des fichiers jusqu'au checkout. Les clonages superficiels réduisent le volume de données de 70 % à 90 % pour les dépôts matures, tandis que les clonages partiels s'avèrent particulièrement efficaces pour les dépôts contenant des binaires volumineux.</p>
<p>Le checkout parcellaire (« sparse ») offre un contrôle précis des fichiers extraits. Git Much Faster applique une exclusion complète de plus de 30 types de fichiers binaires (images, documents, archives, fichiers multimédias et exécutables), ce qui réduit la taille du répertoire de travail jusqu'à 78 % et maintient un accès complet au code source.</p>
<p>L'outil Scalar, intégré à Git depuis la version 2.38, combine un clonage partiel, un checkout parcellaire et une maintenance en arrière-plan. Cependant, les benchmarks révèlent que Scalar ne met pas en œuvre d'optimisations agressives pour la compression et la gestion de la mémoire tampon, qui génèrent pourtant les gains de performance les plus significatifs. En revanche, les tests montrent que l'approche optimisée personnalisée de Git Much Faster surpasse généralement Scalar de 48 % à 67 % tout en offrant des économies d'espace disque similaires.</p>
<h2>Réduction de la charge système</h2>
<p>En optimisant le clonage Git, Git Much Faster contribue également à réduire la charge totale du système en diminuant la taille des requêtes. GitLab s'appuie sur <a href="https://docs.gitlab.com/administration/gitaly/praefect/">Gitaly Cluster</a> pour assurer une mise à l'échelle horizontale spécialisée. Lorsque les clonages avec historique complet et les monorepos volumineux deviennent la norme, la charge sur Gitaly Cluster augmente fortement. En effet, chaque requête de clonage Git est traitée par un binaire côté serveur qui génère les « fichiers d'empaquetage » à transférer via le réseau. Étant donné que ces opérations Git impliquent l'exécution d'utilitaires de compression côté serveur, elles sollicitent simultanément le CPU, la mémoire et les opérations d'E/S.</p>
<p>Lorsque les opérations de clonage Git sont optimisées pour réduire la quantité totale de données transférées, la charge sur l'ensemble de la pile (client, réseau, service Gitaly et stockage) diminue. Résultat : toutes les couches s'accélèrent et leur coût est par conséquent réduit.</p>
<h2>Résultats de performance</h2>
<p>L'efficacité de Git Much Faster a été démontrée par des benchmarks rigoureux effectués sur différents dépôts à l'aide d'une infrastructure AWS homogène avec des instances ARM et des conditions réseau contrôlées.</p>
<p><strong>Dépôt du noyau Linux (7,5 Go au total) :</strong> le clonage standard a duré 6 minutes et 29 secondes. Le clonage optimisé a duré 46,28 secondes, soit une amélioration de 88,1 %, et la taille du répertoire .git est passée de 5,9 Go à 284 Mo. Le clonage Scalar a duré 2 minutes et 21 secondes (soit une amélioration de 63,7 %), mais a été 67,3 % plus lent qu'avec l'approche optimisée.</p>
<p><strong>Dépôt Chromium (60,9 Go au total) :</strong> le clonage standard a duré 95 minutes et 12 secondes. Le clonage optimisé a duré 6 minutes et 41 secondes, soit une amélioration spectaculaire de 93 %, et la taille du répertoire .git est passée de 55,7 Go à 850 Mo. Le clonage Scalar a duré 13 minutes et 3 secondes (soit une amélioration de 86,3 %), mais il reste 48,8 % plus lent qu'avec l'approche optimisée.</p>
<p><strong>Dépôt du site web de GitLab (8,9 Go au total) :</strong> le clonage standard a duré 6 minutes et 23 secondes. Le clonage optimisé a duré 6,49 secondes, soit une amélioration remarquable de 98,3 %, et la taille du répertoire .git a été réduite à 37 Mo. Le clonage Scalar a duré 33,60 secondes (soit une amélioration de 91,2 %), mais il a été 80,7 % plus lent qu'avec l'approche optimisée.</p>
<p>Ce benchmarking révèle des tendances claires : les dépôts volumineux enregistrent les améliorations les plus spectaculaires, les dépôts lourds en binaires bénéficient particulièrement du filtrage du checkout parcellaire (« sparse ») et l'approche d'optimisation personnalisée surpasse systématiquement à la fois les clonages Git standard et Scalar, quel que soit le type de dépôt.</p>
<h2>Mise en œuvre</h2>
<p>Pour tirer pleinement parti de Git Much Faster, il est essentiel de choisir la technique adaptée à chaque cas de figure et à la tolérance au risque. Si vos opérations de développement nécessitent un accès à tout le dépôt, privilégiez le clonage Git standard. Pour les workflows à forte intensité de lecture nécessitant un accès rapide au code actuel, déployez le clonage optimisé. Pour les pipelines CI/CD où la rapidité est primordiale, le clonage optimisé offre le gain de performance le plus avantageux.</p>
<p>Pour commencer, téléchargez et exécutez simplement le script suivant :</p>
<pre><code class="language-bash">curl -L https://gitlab.com/gitlab-accelerates-embedded/misc/git-much-faster/-/raw/master/git-much-faster.sh -o ./git-much-faster.sh

# For benchmarking
bash ./git-much-faster.sh --methods=optimized,standard --repo=https://github.com/your-org/your-repo.git
</code></pre>
<p>Dans le cadre de tests effectués dans un environnement de production, le projet Git Much Faster inclut une infrastructure Terraform complète pour le déploiement sur AWS, ce qui élimine les variables qui faussent les résultats des tests en environnement local.</p>
<p>Les clonages optimisés nécessitent une attention particulière quant à leurs limites applicables. Les clonages superficiels (« shallow ») empêchent l'accès aux commits historiques, ce qui limite certaines opérations telles que <code>git log</code> sur l'historique des fichiers. Pour les équipes qui adoptent ces optimisations, il est recommandé de créer des configurations spécifiques, adaptées à une utilisation à fort volume. Par exemple, un développeur peut effectuer un clonage optimisé puis, si nécessaire, le convertir en clonage complet via <code>git fetch --unshallow</code>. De même, si un job CI nécessite l'accès à l'historique complet des commits (comme pour GitVersion), disposer de l'historique complet peut être nécessaire, mais un checkout pas forcément.</p>
<h2>Cas d'utilisation</h2>
<p>Git Much Faster s'avère particulièrement bénéfique dans les situations suivantes. Le <a href="https://about.gitlab.com/fr-fr/blog/4-ways-to-accelerate-embedded-development-with-gitlab/" title="développement de systèmes embarqués">développement de systèmes embarqués</a> dont les projets stockent historiquement les fichiers de design de micrologiciels et de matériel compilés directement dans le <a href="https://about.gitlab.com/fr-fr/topics/version-control/" title="Qu'est-ce que le contrôle de version ?">contrôle de version</a>. Ces dépôts contiennent souvent des flux binaires FPGA, des schémas de circuits imprimés ainsi que des distributions SDK de fournisseurs dont la taille peut atteindre plusieurs dizaines de gigaoctets. Les processus de compilation nécessitent fréquemment de cloner des dizaines de dépôts externes, ce qui multiplie l'impact sur les performances.</p>
<p>Les monorepos d'entreprise rencontrent des contraintes de performances lors des opérations Git, à mesure que les dépôts regroupent plusieurs projets et de très nombreuses données historiques. Les projets multimédias et riches en ressources font face à de nombreuses problématiques, comme déjà mentionné plus haut : les applications web accumulent des ressources marketing au fil des ans, tandis que le développement de jeux vidéo doit gérer d'énormes modèles 3D et fichiers audio qui font grimper la taille des dépôts au-delà de 100 Go. D'autres cas d'utilisation sont présentés directement dans le <a href="https://gitlab.com/gitlab-accelerates-embedded/misc/git-much-faster/-/tree/master?ref_type=heads#common-use-cases">projet Git Much Faster</a>.</p>
<p>Les pipelines CI/CD constituent le cas de figure le plus critique : chaque job CI basé sur un conteneur nécessite un nouveau clonage du dépôt. Lorsque cette opération prend entre 20 et 90 minutes, le workflow complet de développement devient impraticable.</p>
<p>Enfin, certains membres d'équipes de développement géographiquement dispersées peuvent faire face à des performances réseau extrêmement limitées ou très variables. L'optimisation du clonage Git contribue à réduire radicalement la taille des transferts.</p>
<h2>Conclusion</h2>
<p>L'optimisation du clonage Git constitue une véritable opportunité de transformation qui offre des améliorations mesurables : jusqu'à 93 % de réduction du temps de clonage et 98 % d'économie d'espace disque utilisé. Celles-ci changent profondément la façon dont les équipes de développement interagissent avec les codes sources.</p>
<p>L'idée clé est que le comportement conservateur par défaut de Git ne permet pas de bénéficier de performances optimales. En identifiant les goulots d'étranglement spécifiques (inefficacité des transferts réseau, compression gourmande en CPU, téléchargements de données superflues), les équipes de développement peuvent mettre en œuvre des optimisations ciblées qui produisent des résultats exceptionnels et transformateurs.</p>
<p><strong>Prêt à transformer vos workflows Git ?</strong></p>
<p><a href="https://gitlab.com/gitlab-accelerates-embedded/misc/git-much-faster">Consultez la documentation disponible dans le dépôt Git Much Faster</a>, puis exécutez des benchmarks sur vos plus grands dépôts. Commencez par l'optimisation en lecture seule dans les pipelines CI/CD où les gains sont immédiats et les risques limités. À mesure que votre équipe gagne en confiance, étendez progressivement ces optimisation aux workflows de développement en vous appuyant sur les résultats mesurés.</p>
<p>L'avenir de l'optimisation des performances Git est ouvert, mais les principes de base restent pertinents : éliminer le travail inutile, optimiser les goulots d'étranglement, mesurer les résultats de manière rigoureuse. Les équipes qui maîtrisent ces concepts dès aujourd'hui seront en mesure de tirer parti de toutes les améliorations à venir dans l'écosystème Git.</p>
<blockquote>
<p><strong><a href="https://about.gitlab.com/fr-fr/free-trial/devsecops/?utm_medium=blog&amp;utm_source=blog&amp;utm_campaign=eg_emea_x_trial_x_fr_blog_fr">→ Essayez GitLab Ultimate et GitLab Duo Enterprise gratuitement.</a></strong></p>
</blockquote>
]]></content>
        <author>
            <name>Darwin Sanoy</name>
            <uri>https://about.gitlab.com/blog/authors/darwin-sanoy</uri>
        </author>
        <published>2025-10-24T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[GitLab 18.5 : l'intelligence au service du développement logiciel]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/gitlab-18-5-intelligence-that-moves-software-development-forward/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/gitlab-18-5-intelligence-that-moves-software-development-forward/"/>
        <updated>2025-10-21T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Les équipes de développement logiciel croulent sous les alertes. Des milliers de vulnérabilités inondent les tableaux de bord de sécurité, mais seule une fraction d'entre elles présentent un risque réel. Les équipes naviguent constamment entre la planification des backlogs, le tri des failles de sécurité, les revues de code et la résolution des échecs CI/CD, et doivent ainsi consacrer des heures à ces tâches manuelles. GitLab 18.5 apporte enfin un peu sérénité dans cet environnement sous haute tension.</p>
<p>Cette version offre une amélioration majeure de l'expérience utilisateur globale de GitLab et de l'intégration de l'IA dans vos workflows. Une nouvelle interface avec des panneaux de suivi facilite la visualisation des données en contexte et garantit une visibilité permanente à GitLab Duo Chat sur toute la plateforme, partout où vous en avez besoin. Des agents spécialisés s'attaquent au tri des vulnérabilités et à la gestion des backlogs, tandis que les outils d’IA populaires s'intègrent encore plus harmonieusement dans les workflows agentiques. Nous avons également étendu nos fonctionnalités de sécurité pour vous aider à mieux identifier les vulnérabilités exploitables et les failles théoriques, distinguer les identifiants actifs de ceux expirés et analyser uniquement le code modifié pour favoriser la concentration des équipes de développement.</p>
<h2>Les nouveautés de la version GitLab 18.5</h2>
<p>La version 18.5 représente notre plus importante release de l'année : visionnez notre présentation en vidéo et découvrez plus de détails dans la suite de l'article.</p>
<p>&lt;div style=&quot;padding:56.25% 0 0 0;position:relative;&quot;&gt;&lt;iframe src=&quot;https://player.vimeo.com/video/1128975773?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479&quot; frameborder=&quot;0&quot; allow=&quot;autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; style=&quot;position:absolute;top:0;left:0;width:100%;height:100%;&quot; title=&quot;GitLab_18.5 Release_101925_MP_v2&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;script src=&quot;https://player.vimeo.com/api/player.js&quot;&gt;&lt;/script&gt;</p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<h3>Une expérience utilisateur moderne avec un accès rapide à GitLab Duo</h3>
<p>GitLab 18.5 améliore l'expérience utilisateur GitLab avec une interface plus intuitive et pratique grâce à une nouvelle mise en page avec des panneaux de suivi.</p>
<p>Les panneaux de suivi présentent les informations côte à côte pour vous aider à traiter vos tâches en contexte. Lorsque vous cliquez sur un ticket dans la liste, ses détails s'affichent dans un panneau latéral. Vous pouvez ensuite ouvrir le panneau GitLab Duo Chat sur le côté droit de l'interface et l'utiliser comme un assistant à la demande afin de poser des questions à vos agents et de leur fournir des instructions contextuelles sur n'importe quelle page de GitLab. Nous avons également apporté d'autres améliorations subtiles à des fins d'ergonomie : la barre de recherche globale se trouve désormais dans le centre supérieur pour une meilleure accessibilité, tandis que les éléments de navigation globale (tickets assignés, merge requests, liste des tâches et icône utilisateur) sont affichés en haut à droite. Le menu de navigation gauche peut être réduit et s'étend pour offrir une gestion flexible de la barre latérale.</p>
<p>L'interface avec les panneaux de suivi sera « désactivée par défaut » dans GitLab 18.5 et pourra être activée sous votre icône utilisateur. Pour en savoir plus sur l'activation ou la désactivation de cette fonctionnalité, consultez <a href="https://docs.gitlab.com/user/interface_redesign/#turn-new-navigation-on-or-off">notre documentation</a>. N'hésitez pas à partager vos retours et à signaler tout problème. Nos équipes sont à l'écoute. Si vous appréciez cette nouvelle expérience, cette option devrait être supprimée dans la version 18.6 afin de standardiser l'interface avec les panneaux de suivi dans toute expérience utilisateur.</p>
<h3>Mises à jour de GitLab Duo Agent Platform</h3>
<p><strong>GitLab Duo Security Analyst Agent : transformez le tri manuel des vulnérabilités en automatisation intelligente</strong></p>
<p>GitLab Duo <a href="https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/security_analyst_agent/">Security Analyst Agent</a> automatise les flux de travail de gestion des vulnérabilités grâce à une analyse alimentée par l'IA afin de transformer des heures de tri manuel en automatisation intelligente. Il s'appuie sur les outils de gestion des vulnérabilités disponibles via GitLab Duo Agentic Chat et orchestre plusieurs outils, applique des politiques de sécurité et crée automatiquement des flux personnalisés pour les workflows récurrents.</p>
<p>Les équipes de sécurité peuvent non seulement accéder à des données de vulnérabilité enrichies, notamment les détails concernant les vulnérabilités ou expositions communes (CVE), l'analyse de la fonctionnalité d'atteignabilité statique et les informations de flux de code, mais aussi ignorer les faux positifs, confirmer les menaces, ajuster les niveaux de sévérité et créer des tickets associés pour correction au moyen de l'IA conversationnelle. L'agent réduit les clics répétitifs dans les tableaux de bord de vulnérabilités et remplace les scripts personnalisés par de simples commandes en langage naturel.</p>
<p>Par exemple, lorsqu'une analyse de sécurité révèle des dizaines de vulnérabilités, il suffit d'utiliser le prompte suivant : « Ignore les vulnérabilités avec reachable=FALSE et crée des tickets pour les failles critiques. » GitLab Duo Security Analyst Agent analyse les données de la fonctionnalité d'atteignabilité statique, applique les politiques de sécurité et effectue les opérations groupées en quelques instants : il gère des tâches qui nécessiteraient autrement des heures.</p>
<p>Alors que les outils de gestion des vulnérabilités individuels peuvent être accédés directement via GitLab Duo Agentic Chat pour des tâches spécifiques, GitLab Duo Security Analyst Agent orchestre ces outils de manière intelligente et automatise des workflows complexes en plusieurs étapes. Les outils de gestion des vulnérabilités sont disponibles via GitLab Duo Agentic Chat sur les instances GitLab Self-managed et GitLab.com, et GitLab Duo Security Analyst Agent est disponible uniquement sur GitLab.com pour la version 18.5, tandis que la disponibilité dans les environnements GitLab Duo Self-managed et GitLab Duo Dedicated arrivera avec notre prochaine version.</p>
<p>Découvrez notre démonstration :</p>
<p>&lt;div style=&quot;padding:56.25% 0 0 0;position:relative;&quot;&gt;&lt;iframe src=&quot;https://player.vimeo.com/video/1128975984?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479&quot; frameborder=&quot;0&quot; allow=&quot;autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; style=&quot;position:absolute;top:0;left:0;width:100%;height:100%;&quot; title=&quot;18.5 Security Demo&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;script src=&quot;https://player.vimeo.com/api/player.js&quot;&gt;&lt;/script&gt;</p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<p><strong>GitLab Duo Planner : transformez un backlog encombré en clarté stratégique</strong></p>
<p>Gérer une livraison logicielle complexe nécessite de constamment changer de contexte entre les tâches de planification. <a href="https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/planner/">GitLab Duo Planner</a> propose une solution aux défis de planification concrets que les équipes affrontent chaque jour. Il agit comme votre assistant : il connaît le contexte de votre projet, notamment comment vous gérez les tickets, les epics et les merge requests. Contrairement aux assistants IA génériques, il est spécialement conçu avec une connaissance approfondie des workflows de planification de GitLab ainsi que des frameworks Agile et de priorisation pour vous aider à gérer effort, risque et alignement stratégique.</p>
<p>GitLab Duo Planner peut transformer des idées vagues en tâches de planification hiérarchisées et structurées, identifier les éléments obsolètes du backlog et rédiger des mises à jour exécutives. Imaginez que vous souhaitez réorganiser votre backlog, qui contient des centaines de tickets accumulés sur plusieurs mois. Il vous suffit de demander : « Identifie les éléments obsolètes du backlog et suggère des priorités. » En quelques secondes, vous recevrez un résumé structuré avec les tickets sans activité récente, les éléments avec des détails clés manquants, les doublons et les priorités recommandées en fonction des labels et jalons, avec des conseils exploitables.</p>
<p>Pour les équipes avec des roadmaps complexes, GitLab Duo Planner vise à éliminer des heures d'analyse manuelle et de changements de contexte et à accélérer la prise de décisions informées des responsables produit et d'ingénierie. Depuis la version 18.5, GitLab Duo Planner est actuellement en « lecture seule » : il peut analyser, planifier et émettre des suggestions, mais ne peut pas encore agir directement pour modifier quoi que ce soit. Veuillez consulter notre <a href="https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/planner/">documentation</a> pour plus d'informations.</p>
<p><strong>Large catalogue d'agents : les outils IA populaires comme agents natifs GitLab</strong></p>
<p>Dans GitLab 18.5, les agents IA populaires sont intégrés directement dans le <a href="https://docs.gitlab.com/user/duo_agent_platform/ai_catalog/">catalogue IA</a>. Par conséquent, des outils externes comme Claude, OpenAI Codex, Google Gemini CLI, Amazon Q Developer et OpenCode sont maintenant disponibles comme agents natifs GitLab. Les utilisateurs peuvent désormais découvrir, configurer et déployer ces agents via la même interface de catalogue unifiée utilisée pour les agents intégrés de GitLab, avec une synchronisation automatique des agents de base dans les catalogues de l'organisation.</p>
<p>Cette approche élimine la complexité de la configuration manuelle des agents : le catalogue est disponible en mode point-and-click, et la sécurité est maintenue à un niveau entreprise via les systèmes d'authentification et d'audit de GitLab. Les abonnements GitLab Duo Enterprise incluent désormais l'utilisation intégrée de Claude et Codex dans GitLab. Vous pouvez ainsi utiliser votre abonnement GitLab existant pour ces outils sans clé API séparée ni facturation supplémentaire. D'autres agents peuvent encore nécessiter des abonnements séparés et une configuration à mesure que nous finalisons nos plans d'intégration.</p>
<p><strong>GitLab Duo Agent Platform sur GitLab Self-hosted (version bêta) : répondez aux exigences de souveraineté des données sans sacrifier la puissance de l'IA</strong></p>
<p>GitLab 18.5 fait passer les capacités auto-hébergées de GitLab Duo Agent Platform de la version expérimentale à bêta pour que les organisations puissent exécuter des agents et flux IA entièrement dans leur propre infrastructure, un critère primordial pour les industries réglementées et les exigences de souveraineté des données. La version bêta inclut des configurations de délai d'attente dépassé améliorées et des paramètres de passerelle IA afin que les équipes puissent utiliser des agents IA pour les revues de code, les corrections de bugs et les implémentations de fonctionnalités avec une sécurité de niveau entreprise pour le code sensible.</p>
<h2>Une sécurité plus intelligente et plus rapide : priorisez les risques réels et favorisez la concentration des équipes</h2>
<p>GitLab 18.5 introduit de nouvelles fonctionnalités de sécurité applicative qui aident les équipes à se concentrer sur les risques exploitables, réduire le bruit et renforcer la sécurité de la chaîne d'approvisionnement logicielle. Ces mises à jour s'inscrivent dans notre engagement à intégrer la sécurité directement dans le processus de développement afin de garantir précision, vitesse et clarté sans perturber la concentration des équipes de développement.</p>
<p><strong>Analyse de la fonctionnalité d'atteignabilité statique</strong></p>
<p>Avec plus de <a href="https://www.cvedetails.com/">37 000 nouvelles CVE</a> émises cette année, les équipes de sécurité font face à un volume écrasant de vulnérabilités et peinent à identifier lesquelles sont réellement exploitables. L'analyse de la fonctionnalité d'atteignabilité statique, désormais en disponibilité limitée, apporte une précision au niveau des bibliothèques et aide à identifier si le code vulnérable est réellement invoqué dans votre application et pas seulement présent dans les dépendances.</p>
<p>Avec notre score EPSS (Exploit Prediction Scoring System) <a href="https://docs.gitlab.com/user/application_security/vulnerabilities/risk_assessment_data/">récemment publié</a> et notre base de données des vulnérabilités exploitées connues (Known Exploited Vulnerabilities ou KEV), les équipes de sécurité peuvent accélérer plus efficacement le tri des vulnérabilités et prioriser les risques réels pour renforcer la sécurité globale de la chaîne d'approvisionnement. Dans la version 18.5, nous ajoutons la prise en charge de Java, en plus de la prise en charge existante de Python, JavaScript et TypeScript.</p>
<p><strong>Vérifications de la validité des secrets</strong></p>
<p>Tout comme l'analyse d'atteignabilité statique aide les équipes à prioriser les vulnérabilités exploitables des dépendances open source, les vérifications de validité des secrets apportent le même niveau d'insight aux secrets exposés – actuellement disponible en bêta sur GitLab.com et GitLab Self-Managed. Pour les tokens de sécurité émis par GitLab, au lieu de vérifier manuellement si un identifiant ou une clé API divulgués sont actifs, GitLab distingue automatiquement les secrets actifs de ceux expirés directement dans le <a href="https://docs.gitlab.com/user/application_security/vulnerability_report/">Rapport de vulnérabilité</a>. Ceci permet aux équipes de sécurité et de développement de concentrer les efforts de remédiation sur les vrais risques. Le support pour les secrets émis par AWS et GCP est prévu pour les versions futures.</p>
<p><strong>Règles personnalisées pour Advanced SAST</strong></p>
<p>Advanced SAST fonctionne sur des règles informées par notre équipe de recherche en sécurité interne, conçues pour maximiser la précision dès le départ. Cependant, certaines équipes nécessitaient une flexibilité supplémentaire pour ajuster le moteur SAST à leur organisation spécifique. Avec les règles personnalisées pour Advanced SAST, les équipes AppSec peuvent définir une logique de détection atomique basée sur des modèles pour capturer des problèmes de sécurité spécifiques à leur organisation – comme signaler des appels de fonction interdits – tout en utilisant l'ensemble de règles sélectionné par GitLab comme base. Les personnalisations sont gérées via de simples fichiers TOML, tout comme les autres configurations d'ensemble de règles SAST. Bien que ces règles ne supportent pas l'analyse de taint, elles donnent aux organisations une plus grande flexibilité pour obtenir des résultats SAST précis.</p>
<p><strong>Support des langages C et C++ pour Advanced SAST</strong></p>
<p>Nous étendons notre couverture linguistique pour Advanced SAST pour inclure C et C++, qui sont des langages largement utilisés dans le développement de logiciels embarqués. Pour activer l'analyse, les projets doivent générer une base de données de compilation qui capture les commandes du compilateur et inclut les chemins utilisés pendant les builds. Ceci garantit que le scanner peut analyser et parser avec précision les fichiers sources, fournissant des résultats précis et contextuels qui aident les équipes de sécurité à identifier les vraies vulnérabilités dans le processus de développement. Les exigences d'implémentation pour C et C++ nécessitent des configurations spécifiques, qui peuvent être trouvées dans notre <a href="https://docs.gitlab.com/user/application_security/sast/cpp_advanced_sast/">documentation</a>. Le support Advanced SAST pour C et C++ est actuellement disponible en bêta.</p>
<p><strong>Analyse SAST basée sur les différences</strong></p>
<p>Les analyses SAST traditionnelles réanalysent des bases de code entières à chaque commit, ralentissant les pipelines et perturbant le flux des développeurs. L'expérience développeur est une considération critique qui peut faire ou défaire l'adoption des tests de sécurité applicative. L'analyse SAST basée sur les différences vise à accélérer les temps d'analyse en se concentrant uniquement sur le code modifié dans une merge request, réduisant l'analyse redondante et faisant remonter des résultats pertinents liés au travail du développeur. En alignant les analyses avec les changements de code réels, GitLab fournit un feedback plus rapide et plus ciblé qui aide à maintenir les développeurs dans leur flux tout en maintenant une couverture de sécurité solide.</p>
<h2>Simplifiez les configurations API</h2>
<p>Les workflows pilotés par API offrent puissance et flexibilité, mais ils peuvent aussi créer une complexité inutile pour les tâches que les équipes doivent effectuer régulièrement. La nouvelle interface Maven Virtual Registry apporte une couche UI à ces opérations.</p>
<h3>Interface Maven Virtual Registry</h3>
<p>La nouvelle interface web pour gérer les Maven Virtual Registries transforme les configurations API complexes en simplicité visuelle, offrant une expérience plus intuitive pour les administrateurs de packages et les ingénieurs de plateforme.</p>
<p>Auparavant, les équipes configuraient et maintenaient les registres virtuels uniquement via des appels API, ce qui rendait la maintenance de routine chronophage et nécessitait des connaissances spécialisées de la plateforme. La nouvelle interface supprime cette barrière, contribuant à rendre les tâches quotidiennes plus rapides et plus faciles.</p>
<p>Avec cette mise à jour, vous pouvez désormais :</p>
<ul>
<li>Créer des registres virtuels pour simplifier la configuration des dépendances</li>
<li>Créer et ordonner des upstreams pour améliorer les performances et la conformité</li>
<li>Parcourir et effacer les entrées de cache obsolètes directement dans l'UI</li>
</ul>
<p>Cette expérience visuelle aide à réduire la charge opérationnelle et fournit aux équipes de développement un aperçu plus clair de la façon dont les dépendances sont résolues, leur permettant de prendre de meilleures décisions concernant les performances de build et les politiques de sécurité.</p>
<p>Regardez une démonstration :</p>
<p>&lt;!-- blank line --&gt;</p>
<p>&lt;figure class=&quot;video_container&quot;&gt;</p>
<p>&lt;iframe src=&quot;https://www.youtube.com/embed/CiOZJPhAvaI?si=cYaoR_OIgqFKbyM2&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt; &lt;/iframe&gt;</p>
<p>&lt;/figure&gt;</p>
<p>&lt;!-- blank line --&gt;</p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<p>Nous invitons les clients entreprise à rejoindre le <a href="https://gitlab.com/gitlab-org/gitlab/-/issues/543045">programme bêta Maven Virtual Registry</a> et à partager leurs retours pour aider à façonner la version finale.</p>
<h2>Une IA qui s'adapte à votre workflow</h2>
<p>Cette version représente plus que de nouvelles capacités – il s'agit de choix et de contrôle. Regardez la vidéo de présentation ici :</p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<p>&lt;div style=&quot;padding:56.25% 0 0 0;position:relative;&quot;&gt;&lt;iframe src=&quot;https://player.vimeo.com/video/1128992281?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479&quot; frameborder=&quot;0&quot; allow=&quot;autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; style=&quot;position:absolute;top:0;left:0;width:100%;height:100%;&quot; title=&quot;18.5-tech-demo&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;script src=&quot;https://player.vimeo.com/api/player.js&quot;&gt;&lt;/script&gt;</p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<p>Les utilisateurs GitLab Premium et Ultimate peuvent commencer à utiliser ces capacités dès aujourd'hui sur <a href="https://GitLab.com">GitLab.com</a> et les environnements self-managed, avec une disponibilité pour les clients GitLab Dedicated prévue pour le mois prochain.</p>
<p>GitLab Duo Agent Platform est actuellement en <strong>bêta</strong> – activez les fonctionnalités bêta et expérimentales pour découvrir comment l'IA avec contexte complet peut transformer la façon dont vos équipes construisent des logiciels. Nouveau sur GitLab ? <a href="https://about.gitlab.com/free-trial/devsecops/">Commencez votre essai gratuit</a> et découvrez pourquoi l'avenir du développement est alimenté par l'IA, sécurisé et orchestré via la plateforme DevSecOps la plus complète au monde.</p>
<p><em><strong>Note :</strong> Les capacités de plateforme en bêta sont disponibles dans le cadre du programme bêta GitLab. Elles sont gratuites pendant la période bêta, et une fois généralement disponibles, elles seront proposées avec une option d'add-on payant pour GitLab Duo Agent Platform.</em></p>
<h3>Restez à jour avec GitLab</h3>
<p>Pour vous assurer d'obtenir les dernières fonctionnalités, mises à jour de sécurité et améliorations de performances, nous recommandons de maintenir votre instance GitLab à jour. Les ressources suivantes peuvent vous aider à planifier et compléter votre mise à niveau :</p>
<ul>
<li><a href="https://gitlab-com.gitlab.io/support/toolbox/upgrade-path/">Outil de chemin de mise à niveau</a> – entrez votre version actuelle et voyez les étapes exactes de mise à niveau pour votre instance</li>
<li><a href="https://docs.gitlab.com/update/upgrade_paths/">Documentation de mise à niveau</a> – guides détaillés pour chaque version supportée, incluant les exigences, instructions étape par étape et meilleures pratiques</li>
</ul>
<p>En effectuant des mises à niveau régulières, vous garantissez que votre équipe bénéficie des nouvelles capacités GitLab et reste sécurisée et supportée.</p>
<p>Pour les organisations qui souhaitent une approche sans intervention, considérez le <a href="https://content.gitlab.com/viewer/d1fe944dddb06394e6187f0028f010ad#1">service de Maintenance Gérée de GitLab</a>. Avec la Maintenance Gérée, votre équipe reste concentrée sur l'innovation tandis que les experts GitLab maintiennent votre instance Self-Managed mise à niveau de manière fiable, sécurisée et prête à diriger dans DevSecOps. Demandez plus d'informations à votre gestionnaire de compte.</p>
<p><em>Ce billet de blog contient des « déclarations prospectives » au sens de la Section 27A du Securities Act de 1933, tel que modifié, et de la Section 21E du Securities Exchange Act de 1934. Bien que nous croyions que les attentes reflétées dans ces déclarations sont raisonnables, elles sont soumises à des risques connus et inconnus, des incertitudes, des hypothèses et d'autres facteurs qui peuvent faire que les résultats ou issues réels diffèrent matériellement. De plus amples informations sur ces risques et autres facteurs sont incluses sous la rubrique « Facteurs de risque » dans nos dépôts auprès de la SEC. Nous ne nous engageons pas à mettre à jour ou réviser ces déclarations après la date de ce billet de blog, sauf si la loi l'exige.</em></p>
]]></content>
        <author>
            <name>Bill Staples</name>
            <uri>https://about.gitlab.com/blog/authors/bill-staples</uri>
        </author>
        <published>2025-10-21T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Applications retail : sécurité renforcée avec GitLab]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/a-developers-guide-to-building-secure-retail-apps-with-gitlab/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/a-developers-guide-to-building-secure-retail-apps-with-gitlab/"/>
        <updated>2025-10-20T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Dans l'environnement complexe du commerce de détail moderne, la sécurité applicative représente un défi majeur : les commerçants doivent protéger leurs applications exposées à une <strong>surface d'attaque plus étendue que jamais</strong>. Des applications mobiles à la personnalisation alimentée par l'IA, en passant par les plateformes omnicanales et l'Internet des Objets (IdO) en magasin, chaque point de contact multiplie le nombre de systèmes qui doivent être sécurisés et surveillés. Une même vulnérabilité n'affecte pas qu'un seul composant ; elle peut compromettre les passerelles de paiement, les systèmes d'inventaire, les données clients et, in fine, éroder la confiance accordée à la marque.</p>
<p>Les approches de sécurité traditionnelles, autrefois efficaces dans des environnements retail plus simples, sont à présent inadaptées. Les processus de sécurité sont souvent ajoutés après coup, ce qui ralentit les équipes et augmente les risques. Pourtant, il est possible d'intégrer la sécurité dès la conception.</p>
<p><strong>Les plateformes modernes intègrent la sécurité tout au long du cycle de développement logiciel</strong> afin que la protection soit un élément naturel du workflow de développement, et non un frein à la livraison. Avec cette approche, la sécurité devient un levier stratégique qui favorise l'innovation sans compromettre la résilience des systèmes.</p>
<p>Dans cet article, découvrez comment une plateforme <a href="https://about.gitlab.com/fr-fr/topics/devsecops/" title="Qu'est-ce que le DevSecOps ?">DevSecOps</a> unifiée permet aux équipes retail de répondre aux exigences croissantes en matière de sécurité <strong>sans ralentir la livraison ni nuire à l'expérience client</strong>.</p>
<blockquote>
<p><strong><a href="https://about.gitlab.com/fr-fr/free-trial/devsecops/?utm_medium=blog&amp;utm_source=blog&amp;utm_campaign=eg_emea_x_trial_x_fr_blog_fr">→ Essayez GitLab Ultimate et GitLab Duo Enterprise gratuitement.</a></strong></p>
</blockquote>
<h2>La sécurité dans le secteur du retail : un défi à part</h2>
<p>Dans le commerce de détail, la sécurité ne se limite pas à la protection des données : elle vise avant tout à préserver l'expérience client, véritable moteur du chiffre d'affaires. La moindre diminution de performances, panne ou vulnérabilité peut entraîner une diminution des ventes et une perte de confiance. Les plateformes d'e-commerce doivent rester opérationnelles, respecter les normes de conformité et résister à des attaques incessantes provenant de l'Internet ouvert. Contrairement aux systèmes d'entreprise, elles sont entièrement exposées au public et leur surface d'attaque est considérablement étendue. Les intégrations tierces, les API et les systèmes hérités viennent encore complexifier le paysage : les approches traditionnelles de sécurité ne suffisent donc plus.</p>
<p>À cela s'ajoutent des défis spécifiques au secteur, qui multiplient les risques et exigent des solutions de sécurité adaptées. En voici les principaux.</p>
<h3>Fragilité de la chaîne d'approvisionnement et prolifération des API</h3>
<p>Les retards de livraison, l'instabilité mondiale et la complexité des systèmes interconnectés perturbent la logistique du commerce de détail. Selon une <a href="https://premierconstructionnews.com/2024/05/25/retails-revival-fluent-commerce-study-finds-93-of-uk-retailers-expect-business-growth-over-next-year-despite-economic-challenges-and-supply-chain-disruption/">enquête Fluent Commerce de 2024</a>, près de la moitié des commerçants rencontrent des problèmes de disponibilité des produits et 25 % d'entre eux manquent de visibilité sur les stocks en temps réel. Même si les prévisions alimentées par l'IA peuvent s'avérer utiles en matière de planification, des API non sécurisées et des intégrations fragiles tout au long de la chaîne d'approvisionnement numérique créent de nouveaux vecteurs d'attaque.</p>
<h3>Systèmes hérités inadaptés aux exigences modernes</h3>
<p>De nombreux commerçants utilisent des systèmes monolithiques et obsolètes, incapables de prendre en charge les applications mobiles, les appareils IdO et les analyses en temps réel de façon sécurisée. Sans fondations sécurisées et agiles, chaque nouveau point de contact numérique devient une vulnérabilité potentielle.</p>
<h3>Utilisation de l'IA et complexité de la conformité</h3>
<p>L'IA redéfinit l'expérience client grâce à des recommandations personnalisées et à des technologies de suivi avancées, telles que les balises Bluetooth, la reconnaissance faciale et la géolocalisation via des applications mobiles. Ces systèmes surveillent les mouvements et les comportements des clients dans les magasins pour améliorer à la fois l'expérience client et les capacités de prévision de la demande pour les commerçants. Cependant, le <a href="https://gdpr.eu/what-is-gdpr/">RGPD</a> (Règlement général sur la protection des données de l'Union européenne) et les réglementations mondiales similaires sur la confidentialité imposent un traitement sécurisé des données et une logique d'IA transparente. Toute faille de sécurité peut entraîner des amendes lourdes et nuire durablement à la réputation.</p>
<h3>Risques liés à l'automatisation des interactions clients</h3>
<p>Les caisses automatiques, les bornes et les chatbots promettent commodité et économies, mais leur sécurité n'est que rarement renforcée. Ces points de contact deviennent des points d'entrée pour les cyberattaquants, mais aussi pour le vol à l'étalage, devenu plus difficile à repérer, en raison d'une faible détection de la fraude, d'une surveillance limitée et de systèmes facilement manipulables.</p>
<h3>Surfaces d'attaque disparates</h3>
<p>Les commerçants doivent sécuriser de multiples vecteurs, souvent gérés par des équipes réparties dans le monde entier (en fonction de la taille de l'entreprise). Les plateformes d'e-commerce, les applications mobiles, les systèmes de point de vente (PDV) et les appareils IdO en magasin constituent tous un point d'entrée pour les acteurs malveillants, avec des caractéristiques uniques qui nécessitent différentes solutions de sécurité pour garantir la résilience des systèmes.</p>
<p>Le paradoxe du retail est unique en son genre : les commerçants doivent innover plus rapidement que jamais tout en maintenant des normes de sécurité supérieures à celles de la plupart des autres secteurs, et ce, sans compromettre la fluidité de l'expérience client sur l'ensemble des canaux.</p>
<h2>La sécurité applicative : les approches classiques face à leurs limites</h2>
<p>La plupart des commerçants s'appuient sur des outils de sécurité disparates, tels que des scanners de test statique de sécurité des applications (SAST), des vérificateurs de licences et des évaluations de vulnérabilités. Ils sont déconnectés les uns des autres, ce qui crée des lacunes critiques qui exposent les commerçants à des risques importants :</p>
<ul>
<li><strong>Couverture limitée :</strong> les outils se concentrent sur certaines phases du développement, sans tenir compte des risques liés à la chaîne d'approvisionnement et à l'environnement d'exécution des applications.</li>
<li><strong>Problèmes d'intégration :</strong> les lacunes des systèmes hérités et le manque de connectivité entre les outils génèrent des zones non protégées, et les vulnérabilités échappent aux équipes et aux solutions de sécurité.</li>
<li><strong>Processus manuels :</strong> les transferts de sécurité ralentissent les équipes, et les problèmes sont souvent découverts trop tardivement, lorsqu'ils deviennent plus coûteux à résoudre.</li>
<li><strong>Équipes cloisonnées :</strong> la sécurité n'est pas intégrée aux workflows de développement quotidiens et les équipes de conformité et informatiques travaillent indépendamment des équipes de sécurité.</li>
</ul>
<h3>Quelle stratégie adopter ?</h3>
<p>Dans le paysage moderne du commerce de détail, où tout évolue rapidement, la sécurité ne doit pas freiner l'innovation. En l'intégrant dès le cycle de développement et en rassemblant toutes les équipes sur une seule plateforme DevSecOps unifiée, elle ne constitue plus un goulot d'étranglement, mais bien un avantage stratégique.</p>
<h3>Allier innovation et sécurité à grande échelle avec une plateforme DevSecOps</h3>
<p>GitLab fournit l'ensemble le plus complet de scanners de sécurité pour maximiser la couverture de sécurité des applications, notamment :</p>
<ul>
<li><a href="https://docs.gitlab.com/user/application_security/sast/">SAST</a></li>
<li><a href="https://docs.gitlab.com/user/application_security/dast/">DAST</a></li>
<li><a href="https://docs.gitlab.com/user/application_security/dependency_scanning/dependency_scanning_sbom/">Analyse des dépendances</a></li>
<li><a href="https://docs.gitlab.com/user/application_security/container_scanning/">Analyse des conteneurs</a></li>
<li><a href="https://docs.gitlab.com/user/application_security/secret_detection/">Détection des secrets</a></li>
<li><a href="https://docs.gitlab.com/user/application_security/iac_scanning/">Analyse de l'Infrastructure as Code</a></li>
<li><a href="https://docs.gitlab.com/user/application_security/api_fuzzing/">Tests à données aléatoires</a></li>
</ul>
<p>Mais les scans et les analyses ne suffisent pas à garantir la sécurité des applications. Il est nécessaire <a href="https://docs.gitlab.com/user/compliance/compliance_frameworks/">d'appliquer des politiques pertinentes</a> pour s'assurer que les vulnérabilités sont systématiquement identifiées et corrigées. Avec GitLab, les équipes de sécurité disposent d'un contrôle total qui garantit que les scans adéquats sont exécutés sur chaque application au moment opportun et que les vulnérabilités sont corrigées avant qu'elles n'atteignent l'environnement de production.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1756988740/x2dteagn1z8tjfahmobv.png" alt="Scanning de sécurité dans un pipeline"></p>
<p>&lt;center&gt;&lt;i&gt;Les scans de sécurité s'exécutent dans le pipeline CI/CD et offrent un retour immédiat sur les vulnérabilités potentielles.&lt;/i&gt;&lt;/center&gt; &lt;p&gt;&lt;/p&gt;</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1756988740/npsgvu5e0sd2kpoxug7f.png" alt="Le rapport de vulnérabilité affiche toutes les vulnérabilités d'un projet ou groupe spécifique."></p>
<p>&lt;center&gt;&lt;i&gt;Le rapport de vulnérabilité affiche toutes les vulnérabilités d'un projet ou groupe spécifique.&lt;/i&gt;&lt;/center&gt; &lt;p&gt;&lt;/p&gt;</p>
<h3>Une seule plateforme pour les équipes Dev, Sec et Ops</h3>
<p>Les équipes retail perdent d'innombrables heures à jongler d'un outil à l'autre, à transférer manuellement des données, à subir des pertes d'informations réparties sur différents systèmes en raison du manque d'intégrations et à consolider des rapports contradictoires. Une plateforme unifiée élimine ces points de friction. Elle offre :</p>
<ul>
<li><strong>Une source unique de vérité</strong> pour le code, les <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/" title="Qu'est-ce qu'un pipeline CI/CD ?">pipelines CI/CD</a>, les vulnérabilités et la conformité</li>
<li><strong>Des fonctionnalités Dev, Sec et Ops intégrées</strong> pour éviter tout problème de compatibilité entre outils</li>
<li><strong>Des workflows cohérents et homogènes</strong> pour toutes les équipes et tous les projets</li>
</ul>
<p>Résultat ? Les équipes consacrent leur temps à leurs projets plutôt qu'à la gestion des outils.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1756988739/d2nzltd1a2gypywzhv5f.png" alt="Le Centre de conformité vous permet d'appliquer des frameworks de conformité à tous vos projets."></p>
<p>&lt;center&gt;&lt;i&gt;Le Centre de conformité vous permet d'appliquer des frameworks de conformité à tous vos projets.&lt;/i&gt;&lt;/center&gt; &lt;p&gt;&lt;/p&gt;</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1756988740/szoocztazaup2avkaxhu.png" alt="Dans une merge request, une approbation est nécessaire si des risques sont détectés avant de fusionner le code, conformément aux politiques définies."></p>
<p>&lt;center&gt;&lt;i&gt;Dans une merge request, une approbation est nécessaire si des risques sont détectés avant de fusionner le code, conformément aux politiques définies.&lt;/i&gt;&lt;/center&gt; &lt;p&gt;&lt;/p&gt;</p>
<h3>Responsabilité partagée, fin du cloisonnement</h3>
<p>Les stratégies de sécurité les plus efficaces dans le secteur du retail font de la sécurité la responsabilité de tous, et pas seulement de l'équipe de sécurité.</p>
<p><strong>Autonomisation des équipes de développement</strong></p>
<p>Les directives de sécurité et de conformité s'affichent directement dans les merge requests. Les équipes de développement ne peuvent donc pas passer à côté de problèmes critiques. Elles reçoivent un retour immédiat sur chaque commit, avec des explications claires sur les risques et les étapes de remédiation. Par exemple, l'explication et la résolution des vulnérabilités alimentées par l'IA les aident à comprendre et à résoudre les failles de sécurité de manière autonome. Cette approche réduit les goulots d'étranglement et renforce l'expertise en sécurité au sein de l'équipe.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1756988741/uenrjye3arfg9wjtwss1.png" alt="Page de vulnérabilité avec un bouton pour expliquer ou résoudre les problèmes avec l'IA et combler les lacunes."></p>
<p>&lt;center&gt;&lt;i&gt;Page de vulnérabilité avec un bouton pour expliquer ou résoudre les problèmes avec l'IA et combler les lacunes.&lt;/i&gt;&lt;/center&gt; &lt;p&gt;&lt;/p&gt;</p>
<p><strong>Automatisation de la conformité</strong></p>
<p>Générez des rapports d'audit, suivez l'utilisation des licences et maintenez une <a href="https://about.gitlab.com/fr-fr/blog/the-ultimate-guide-to-sboms/" title="Qu'est-ce qu'une nomenclature logicielle ?">nomenclature logicielle (SBOM)</a> sans effort manuel.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1756988739/gpakhdvkegloqxhaeje8.png" alt="Le rapport de dépendances automatisé de GitLab fournit une SBOM complète. Il affiche toutes les dépendances du projet avec le statut des vulnérabilités, les détails de la licence et les risques détectés pour une transparence et une conformité totales."></p>
<p>&lt;center&gt;&lt;i&gt;Le rapport de dépendances automatisé de GitLab fournit une SBOM complète. Il affiche toutes les dépendances du projet avec le statut des vulnérabilités, les détails de la licence et les risques détectés pour une transparence et une conformité totales.&lt;/i&gt;&lt;/center&gt; &lt;p&gt;&lt;/p&gt;</p>
<p>Avec cette approche, la sécurité n'est plus un frein à la livraison, mais permet d'innover rapidement et en toute confiance.</p>
<h2>Comparatif plateforme GitLab vs outils ponctuels</h2>
<table>
<thead>
<tr>
<th>Capacités</th>
<th>Outils ponctuels</th>
<th>Plateforme DevSecOps GitLab</th>
</tr>
</thead>
<tbody>
<tr>
<td>Tests SAST/DAST/API/Données aléatoires</td>
<td>Séparés et limités</td>
<td>100 % intégrés</td>
</tr>
<tr>
<td>Analyses des licences et des dépendances</td>
<td>Souvent des outils tiers</td>
<td>Intégrées</td>
</tr>
<tr>
<td>Rapports de conformité et d'audit</td>
<td>Manuels ou fragmentés</td>
<td>Automatisés avec traçabilité</td>
</tr>
<tr>
<td>Collaboration entre équipes</td>
<td>Fragmentée</td>
<td>Unifiée</td>
</tr>
<tr>
<td>Visibilité complète</td>
<td>En fonction de l'outil</td>
<td>Vue de la totalité du cycle et de la chaîne de valeur</td>
</tr>
</tbody>
</table>
<h2>La sécurité, catalyseur du succès</h2>
<p>Dans le secteur du retail, la sécurité vise non seulement à protéger les données, mais aussi l'expérience client, source directe de revenus. Lorsque la sécurité ralentit la livraison de nouvelles fonctionnalités ou crée des vulnérabilités, les ventes sont directement impactées, car vos clients attendent des expériences sécurisées et fluides à chaque interaction.</p>
<p>La plateforme DevSecOps intégrée de GitLab offre les avantages suivants aux commerçants :</p>
<ul>
<li><strong>Déployez plus rapidement sans compromettre la sécurité</strong> avec un scanning de sécurité automatisé qui détecte les problèmes avant qu'ils n'atteignent les clients.</li>
<li><strong>Respectez facilement les exigences de conformité</strong> avec des rapports intégrés qui facilitent le respect du RGPD, de la norme PCI-DSS et des autres réglementations du secteur.</li>
<li><strong>Réduisez les coûts liés aux outils de sécurité</strong> en remplaçant plusieurs solutions ponctuelles par une plateforme unifiée.</li>
<li><strong>Transformez les équipes de développement en défenseurs de la sécurité</strong> grâce à des directives claires et à l'automatisation, sans obstacle.</li>
</ul>
<p>Découvrez les principales fonctionnalités de sécurité de GitLab :</p>
<ul>
<li><a href="https://gitlab.navattic.com/ve-vr-short">Résolution des vulnérabilités de GitLab Duo</a></li>
<li><a href="https://gitlab.navattic.com/gitlab-scans">Intégration de scans au pipeline</a></li>
<li><a href="https://gitlab.navattic.com/compliance-short">Frameworks de conformité</a></li>
<li><a href="https://gitlab.navattic.com/advanced-sast-short">Analyseur Advanced SAST</a></li>
</ul>
<blockquote>
<p><strong><a href="https://about.gitlab.com/fr-fr/free-trial/devsecops/?utm_medium=blog&amp;utm_source=blog&amp;utm_campaign=eg_emea_x_trial_x_fr_blog_fr">→ Essayez GitLab Ultimate et GitLab Duo Enterprise gratuitement.</a></strong></p>
</blockquote>
]]></content>
        <author>
            <name>Itzik Gan Baruch</name>
            <uri>https://about.gitlab.com/blog/authors/itzik-gan baruch</uri>
        </author>
        <author>
            <name>Rebeca Fenoy-Anthony</name>
            <uri>https://about.gitlab.com/blog/authors/rebeca-fenoy-anthony</uri>
        </author>
        <published>2025-10-20T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Qu'est-ce que l'approche FinOps ?]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/what-is-finops/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/what-is-finops/"/>
        <updated>2025-10-15T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Le <strong>FinOps</strong> est la discipline qui transforme la gestion des coûts liés au cloud, passant d'un paiement réactif des factures à une optimisation proactive de la valeur, en réunissant les équipes financières, techniques et métiers autour d’un langage commun.</p>
<p>À mesure que l’usage du cloud s’intensifie, les organisations peinent à maîtriser leurs dépenses, comme en témoigne ce rapport de Gartner qui indique que <strong><a href="https://www.gartner.com/peer-community/oneminuteinsights/omi-keeping-cloud-costs-check-it-leader-perspectives-rfz" title="Etude Gartner 2023">69 % des organisations ont dépassé leur budget cloud en 2023</a>.</strong></p>
<p>Cette imprévisibilité fragilise la confiance des directions financières et accroît la pression sur les équipes IT. L’approche FinOps apporte une réponse structurée : rendre les coûts visibles en temps réel, instaurer une culture de responsabilité partagée et aligner chaque dépense sur la valeur métier qu’elle génère.</p>
<p>Plus qu’une simple stratégie de réduction des coûts, le FinOps est un cadre opérationnel et culturel. Il permet aux organisations de reprendre le contrôle de leurs budgets cloud sans sacrifier ni l’agilité ni l’innovation. Une approche d’autant plus pertinente lorsqu’elle s’intègre directement dans les pratiques <a href="https://about.gitlab.com/fr-fr/topics/devops/" title="Qu'est-ce que le DevOps?">DevOps</a> et <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/" title="Qu'est-ce que le CI/CD ?">CI/CD</a> disponibles sur la <a href="https://about.gitlab.com/fr-fr/why-gitlab/" title="Qu'est-ce que la plateforme GitLab ?">plateforme de GitLab</a>.</p>
<blockquote>
<p><strong><a href="https://about.gitlab.com/fr-fr/free-trial/devsecops/?utm_medium=blog&amp;utm_source=blog&amp;utm_campaign=eg_emea_x_trial_x_fr_blog_fr">→ Essayez GitLab Ultimate et GitLab Duo Enterprise gratuitement.</a></strong></p>
</blockquote>
<h2>Définition du FinOps</h2>
<p>Le terme <strong>FinOps</strong>, contraction de <em>Financial Operations</em>, désigne une discipline née d’un constat simple : l’explosion des usages cloud exige une gouvernance financière nouvelle. Les méthodes budgétaires classiques ne suffisent plus, car elles ne tiennent pas compte de la variabilité et de la complexité propres au cloud.</p>
<p>Le FinOps dépasse largement la notion de <strong>réduction des coûts</strong>. Il ne s’agit pas seulement de traquer le gaspillage ou de négocier des remises avec les fournisseurs. C’est une <strong>approche culturelle et organisationnelle</strong> qui réunit les équipes financières, technologiques et métiers. Son objectif est de canaliser l’innovation sans la freiner, en donnant à chacun une vision claire des impacts financiers de ses choix d’<strong>infrastructure</strong> et d’<strong>opérations</strong>.</p>
<p>Une organisation FinOps ne cherche pas à dépenser moins, mais à <strong>dépenser mieux</strong> : investir dans les bonnes ressources, au bon moment, avec un retour métier mesurable.</p>
<h2>Pourquoi le FinOps est devenu incontournable ?</h2>
<p>Le multicloud s’impose dans la plupart des organisations. AWS, Azure, Google Cloud et les solutions privées cohabitent, chacun avec ses modèles tarifaires et ses remises. Cette diversité rend le suivi budgétaire fragmenté et renforce la complexité de gouvernance.</p>
<p>À cette diversité s’ajoute la <strong>variabilité des coûts</strong>. Dans un système auto-hébergé (on-premise), le budget était fixé à l’avance. Dans le cloud, chaque pic de charge, projet de test ou déploiement accéléré peut alourdir la facture du jour au lendemain. Cette imprévisibilité met à mal les méthodes financières classiques et crée un besoin urgent de nouvelles pratiques de gestion.</p>
<p>Les services financiers exigent désormais plus qu'une facture cloud mensuelle incompréhensible. Ils attendent des prévisions fiables, une répartition claire des dépenses et une logique de gestion comparable à celle des autres investissements de l’entreprise.</p>
<p>C’est pourquoi l’alignement entre coûts et valeur métier est devenu central. Chaque dépense doit pouvoir être reliée à un produit ou une expérience client. L’approche FinOps apporte ce langage commun qui transforme une facture technique en tableau de bord business.</p>
<p>C’est dans ce contexte qu’est né le FinOps, pensé comme un cadre structuré pour maîtriser cette complexité.</p>
<h2>Les principes fondamentaux de l’approche FinOps</h2>
<p>Le FinOps repose sur une culture partagée, structurée autour de plusieurs principes clés :</p>
<ul>
<li><strong>La collaboration entre différentes équipes</strong> : aucun acteur ne peut piloter seul. La finance apporte la maîtrise budgétaire, l’ingénierie la réalité technique, et les équipes métiers la perspective de valeur. Ensemble, ils construisent une <strong>organisation</strong> capable de prendre des décisions équilibrées, mais cette logique de partage ne suffit pas à elle seule.</li>
<li><strong>La répartition de la responsabilité et de la gouvernance</strong> : chaque équipe assume le coût de ses choix techniques (<em>you build it, you run it, you pay it</em>), mais une fonction centrale définit les standards, fixe les indicateurs clés de performance (KPI) et fournit les outils pour maintenir la cohérence globale. Cette gouvernance ne se limite pas aux coûts : elle concerne aussi la <strong>gestion</strong> des environnements et des ressources.</li>
<li><strong>La valeur métier comme boussole</strong> : une dépense cloud n’a de sens que si elle contribue à un produit, un service ou une expérience client. L’approche FinOps mesure ce lien direct entre coûts et retour sur investissement.</li>
<li><strong>La transparence et la réactivité grâce à la donnée</strong> : les coûts doivent être visibles en temps réel, avec un reporting clair et actionnable, idéalement au sein même des workflows où les équipes travaillent déjà. C’est la condition pour corriger vite et instaurer la confiance.</li>
<li><strong>La prise de décision décentralisée avec une gouvernance centralisée</strong> : les équipes prennent des décisions en temps réel concernant leurs ressources dans le cadre de garde-fous établis, plutôt que d'attendre des chaînes d'approbation.</li>
<li><strong>Le modèle variable du cloud</strong> : plutôt que de subir la variabilité, le FinOps en fait un atout. Adapter les ressources aux besoins, automatiser la scalabilité et anticiper via des réservations permettent de transformer la flexibilité en levier stratégique.</li>
<li><strong>La culture de l’optimisation continue</strong> : FinOps est une pratique permanente, et non un projet ponctuel. Les équipes identifient continuellement le gaspillage, optimisent les ressources et affinent les processus à mesure que l'utilisation du cloud évolue.</li>
</ul>
<p>Ces principes forment le socle culturel. Pour les mettre en œuvre, il faut un cadre clair et un cycle de vie défini, capable d’accompagner les organisations dans le temps.</p>
<h2>Le cadre et cycle de vie FinOps</h2>
<p>Pour transformer ces principes en pratiques durables, la FinOps Foundation propose un <strong>framework</strong> reconnu. Il décrit les domaines d’action, les rôles impliqués et les étapes de maturité.</p>
<h3>Les trois domaines du framework FinOp</h3>
<p>Le framework de la FinOps Foundation repose sur trois domaines permanents :</p>
<ul>
<li><strong>Informer</strong> : rendre les coûts visibles et compréhensibles, en partageant la donnée financière en temps réel.</li>
<li><strong>Optimiser</strong> : identifier les inefficiences, ajuster les ressources et introduire une logique d’optimisation continue.</li>
<li><strong>Opérer</strong> : installer une gouvernance durable et piloter sur le long terme.</li>
</ul>
<p>Ces domaines ne sont pas séquentiels : ils forment un cycle continu. Plus on informe, mieux on optimise, et plus la gouvernance s’ancre dans l’organisation.</p>
<h3>Rôles et maturité des organisations</h3>
<p>Chaque domaine mobilise des acteurs spécifiques : la finance pour le contrôle budgétaire, l’ingénierie pour la traduction technique, les équipes métiers pour la valeur business, et la gouvernance pour les standards communs.</p>
<p>L’adoption d’une approche FinOps se mesure aussi par des niveaux de maturité (<em>crawl, walk, run</em>) qui traduisent le cheminement progressif d’une organisation vers une gestion cloud pleinement maîtrisée.</p>
<h3>Les étapes « crawl, walk, run » pour progresser</h3>
<p>Le modèle <strong>crawl, walk, run</strong> décrit la maturité des organisations de la manière suivante :</p>
<ul>
<li><strong>Crawl</strong> : premiers pas, reporting basique, quelques KPIs suivis.</li>
<li><strong>Walk</strong> : intégration des pratiques, optimisation régulière, premiers rituels et automatisations.</li>
<li><strong>Run</strong> : maturité avancée, automatisation complète, gouvernance robuste, FinOps intégré à la stratégie d’entreprise.</li>
</ul>
<p>Ce cadre donne une boussole aux organisations : il permet de savoir où elles se situent et comment progresser vers une maîtrise durable de leurs dépenses cloud.</p>
<h2>Pourquoi et comment déployer un modèle FinOps ?</h2>
<p>Mettre en place une démarche FinOps, c’est répondre à ces enjeux : variabilité des coûts, pression budgétaire, besoin de transparence et recherche d’efficacité. Pour réussir, le déploiement doit être progressif et ancré dans des usages réels.</p>
<h3>Maîtriser la variabilité et l’imprévisibilité des coûts cloud</h3>
<p>Le cloud fonctionne à l’usage, ce qui rend ses coûts naturellement fluctuants. Pour éviter que cette instabilité ne devienne un risque budgétaire, le FinOps impose de cartographier les pics de consommation, de fixer des règles de pilotage budgétaire et de modéliser les scénarios d’infrastructure. L’objectif est de transformer une dépense imprévisible en une dépense maîtrisée.</p>
<h3>Aligner coûts et valeur métier</h3>
<p>Une fois la transparence obtenue, la question devient : <em>chaque dépense crée-t-elle réellement de la valeur ?</em> Le FinOps relie les coûts aux produits et services, et les mesure via des indicateurs unitaires comme le coût par utilisateur ou par transaction. Cette approche permet de prioriser les investissements selon leur ROI métier et de donner du sens aux coûts liés au cloud.</p>
<h3>Mettre en place une gouvernance et des règles partagées</h3>
<p>Pour que cette logique tienne dans le temps, une gouvernance claire est nécessaire. Standards de tagging, définition de propriétaires pour chaque ressource et attribution de budgets par équipe assurent la traçabilité. Des processus d’arbitrage complètent ce cadre, validé au plus haut niveau de l’entreprise. La gouvernance devient alors la colonne vertébrale du modèle.</p>
<h3>S’appuyer sur des outils et métriques dédiés</h3>
<p>La gouvernance ne fonctionne pas sans données fiables. Les fournisseurs cloud proposent leurs propres outils de suivi, mais ils restent souvent fragmentés et difficiles à comparer. L’enjeu est de centraliser l’information et de la rendre actionnable dans un même environnement. Des KPIs simples comme le coût par charge de travail, par utilisateur, ou efficacité par équipe permettent déjà de matérialiser le lien entre usage et valeur. Intégrés directement aux workflows existants, ils deviennent des leviers concrets de pilotage quotidien.</p>
<h3>Adopter une démarche progressive</h3>
<p>Le FinOps n’est pas un big bang. La réussite passe par une adoption incrémentale : lancer un produit minimum viable (MVP) FinOps, comme un <a href="https://about.gitlab.com/fr-fr/solutions/devops-platform/" title="Plateforme DevOps">projet DevOps</a>, engranger des gains rapides et élargir progressivement le périmètre. Le but n’est pas la perfection immédiate, mais la construction d’une dynamique durable qui s’installe dans la culture.</p>
<h3>Exemples d’actions rapides pour développer une stratégie FinOps</h3>
<p>Une stratégie FinOps doit démontrer sa valeur rapidement. Trois actions simples suffisent souvent à générer des économies visibles et à crédibiliser la démarche :</p>
<ul>
<li><strong>Éliminer les ressources orphelines</strong> : volumes de stockage oubliés, IP inutilisées ou environnements de test inactifs. Ces fuites discrètes représentent souvent plusieurs points de la facture mensuelle.</li>
<li><strong>Redimensionner les instances surprovisionnées</strong> : beaucoup de ressources tournent à une fraction de leur capacité. Ajuster leur taille réduit les coûts immédiatement, sans perte de performance de l’infrastructure.</li>
<li><strong>Automatiser l’arrêt des environnements non critiques</strong> : couper la nuit et le week-end ce qui n’a pas besoin de tourner en continu génère des économies récurrentes, simples et durables.</li>
</ul>
<p>Ces gestes rapides donnent un signal clair : le FinOps produit des résultats immédiats et prépare le terrain à une adoption durable.</p>
<blockquote>
<p><strong>La FinOps Foundation</strong> : Créée en 2019 et rattachée à la Linux Foundation, la FinOps Foundation définit les standards de la discipline et fédère une communauté mondiale. Elle diffuse un framework reconnu (informer, optimiser, opérer), propose des formations et certifications, et organise des échanges entre praticiens. C'est aujourd'hui la référence pour structurer et faire progresser les pratiques FinOps.</p>
</blockquote>
<h2>Les défis et limites du FinOps</h2>
<p>Adopter une démarche FinOps n’est pas un long fleuve tranquille. Si la discipline séduit par sa promesse de transparence et de maîtrise, sa mise en œuvre confronte les organisations à plusieurs obstacles récurrents.</p>
<h3>Un changement culturel difficile à impulser</h3>
<p>Le premier défi est culturel. Le FinOps ne se réduit pas à déployer un outil ou un tableau de bord : c’est avant tout une <strong>nouvelle façon de travailler ensemble</strong>. Les équipes financières, technologiques et métiers doivent partager leurs responsabilités, ce qui bouscule les habitudes. Comme dans toute transformation, la <strong>résistance au changement</strong> est souvent le premier obstacle.</p>
<p>Cette difficulté culturelle en entraîne une autre.</p>
<h3>Les silos organisationnels qui freinent la collaboration</h3>
<p>Dans beaucoup d’organisations, les équipes restent enfermées dans leurs silos : finance d’un côté, IT de l’autre, équipes métier à part. Sans communication fluide, impossible d’aligner coûts et valeur métier. La gouvernance FinOps cherche justement à briser ces cloisons, mais cela suppose un <strong>soutien fort de la direction</strong> pour changer les réflexes organisationnels.</p>
<p>Et même quand les équipes coopèrent, un autre frein apparaît : la donnée elle-même.</p>
<h3>Une visibilité partielle et des données complexes à exploiter</h3>
<p>Les coûts liés au cloud sont notoirement difficiles à lire, surtout en environnement multi-cloud. La donnée existe, mais elle reste souvent <strong>dispersée, brute et difficile à interpréter</strong>. Les équipes n’ont pas toujours les bons outils pour la centraliser et la rendre actionnable. La transparence promise par le FinOps peut donc se heurter à des limites techniques et analytiques.</p>
<p>Ce manque de clarté se double d’un manque de compétences spécialisées.</p>
<h3>Le manque de compétences et d’outils adaptés</h3>
<p>Le FinOps est encore une discipline jeune, et les profils expérimentés sont rares. Beaucoup d’organisations doivent former leurs équipes en interne, ce qui rend l’adoption progressive mais parfois lente. Cette montée en compétence est essentielle, car la réussite repose autant sur la culture que sur la technique.</p>
<p>Les outils représentent un autre défi. Les organisations disposent de nombreux outils pour analyser leurs coûts cloud, mais ces solutions sont souvent dispersées et difficiles à intégrer dans une vision unique. Le résultat est paradoxal : plus de données, mais pas nécessairement plus de clarté.</p>
<p>Le véritable enjeu est donc de bâtir une approche outillée qui reste simple et alignée sur la maturité de l’organisation. Avancer par étapes, en privilégiant la lisibilité et l’efficacité, permet d’éviter de transformer un problème de gouvernance en un problème d’outils.</p>
<h3>Un budget cloud par nature instable</h3>
<p>Même avec une gouvernance solide et des outils performants, les coûts liés au cloud restent par nature instable. Les pics de charge, les environnements hybrides ou les workloads liés à l’IA créent des fluctuations difficiles à anticiper. Les prévisions budgétaires doivent donc être révisées en permanence, car une consommation inattendue peut faire dérailler les estimations les plus rigoureuses.</p>
<p>Ces obstacles n’invalident pas le FinOps, ils montrent pourquoi la discipline doit continuer à évoluer.</p>
<h2>Les tendances et perspectives FinOps</h2>
<p>L’approche FinOps n’en est qu’au début de son histoire. La discipline continue d’évoluer pour répondre à de nouveaux enjeux, qui dépassent largement la seule question des coûts.</p>
<p>La première tendance est la <strong>durabilité</strong>. De plus en plus d’organisations veulent optimiser leurs dépenses cloud tout en réduisant leur empreinte carbone. Le FinOps s’ouvre ainsi au <strong>GreenOps</strong>, où performance économique et responsabilité environnementale avancent de concert.</p>
<p>La deuxième évolution est l’<strong>automatisation</strong>. La complexité croissante du cloud rend impossible un pilotage manuel. Les pratiques de type FinOps as Code et l’usage de l’IA pour analyser les consommations ou ajuster automatiquement les ressources vont devenir la norme.</p>
<p>Troisième transformation : l’impact de la <strong>charge de travail liée à IA</strong>. Ces charges massives et imprévisibles redéfinissent la gouvernance financière du cloud. Elles imposent de nouvelles méthodes de prévision, de nouveaux indicateurs et une collaboration encore plus étroite entre finance et ingénierie.</p>
<p>Le quatrième changement est la <strong>convergence avec l'ingénierie de plateforme</strong>. Alors que les organisations construisent des plateformes de développement internes pour standardiser et accélérer la livraison logicielle, le FinOps trouve son canal d'implémentation le plus efficace. Les équipes de plateforme intègrent l'intelligence des coûts directement dans la structure même de la façon dont les logiciels sont construits et déployés. Grâce aux portails en libre-service, aux « Golden Paths » et aux modèles d'infrastructure, elles font de l'optimisation des coûts un comportement par défaut plutôt qu'une réflexion après coup. Les équipes reçoivent un retour sur les coûts en temps réel dans leurs workflows, les limites de ressources sont appliquées par le biais de Policy as Code, et les garde-fous financiers deviennent des fonctionnalités invisibles de la plateforme elle-même. Il ne s'agit pas seulement d'ajouter des tableaux de bord de coûts, il s'agit de repenser fondamentalement la façon dont le FinOps fonctionne à grande échelle.</p>
<p>Enfin, la maturité reste encore faible. Beaucoup d’organisations en sont à leurs premiers pas, souvent au stade du “crawl”. Le défi des prochaines années sera de <strong>monter collectivement en maturité</strong>, pour que le FinOps devienne non pas une initiative ponctuelle, mais une compétence organisationnelle intégrée.</p>
<p>Le FinOps n’est donc pas une fin en soi, mais une démarche évolutive. Il permet de transformer le cloud d’un centre de coûts imprévisible en un levier stratégique. Intégré directement aux pratiques DevSecOps et CI/CD, il rapproche encore plus les équipes financières, technologiques et métiers autour d’objectifs communs.</p>
<p>Le FinOps n’est donc pas une fin en soi, mais une démarche évolutive. Il permet de transformer le cloud d’un centre de coûts imprévisible en un levier stratégique. Intégré directement aux pratiques <a href="https://about.gitlab.com/fr-fr/topics/devsecops/" title="Qu'est-ce que le DevSecOps ?">DevSecOps</a> et CI/CD, il rapproche encore plus les équipes financières, technologiques et métiers autour d’objectifs communs.</p>
<p>Ce parcours commence par l'intégration des pratiques FinOps directement dans les workflows de développement existants. C'est là que des plateformes comme GitLab entrent en jeu.</p>
<h2>GitLab et l’approche FinOps</h2>
<p>GitLab contribue à l’approche FinOps en offrant une visibilité sur l'utilisation des ressources de développement. La plateforme permet de suivre la consommation des minutes de calcul par projet et espace de nommage, facilitant ainsi l'attribution des coûts aux équipes. Par ailleurs, les administrateurs peuvent configurer des quotas d'utilisation et surveiller les tendances de consommation via les tableaux de bord d'usage. Cette approche aide les organisations à mieux comprendre leurs dépenses liées aux <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/cicd-pipeline/" title="Qu'est-ce qu'un pipeline CI/CD ?">pipelines CI/CD</a> et à optimiser l'utilisation de leurs runners. En intégrant ces métriques dans les workflows de développement, GitLab sensibilise les équipes techniques à l'impact de leurs pratiques sur les coûts opérationnels.</p>
<blockquote>
<p><strong><a href="https://about.gitlab.com/fr-fr/free-trial/devsecops/?utm_medium=blog&amp;utm_source=blog&amp;utm_campaign=eg_emea_x_trial_x_fr_blog_fr">→ Essayez GitLab Ultimate et GitLab Duo Enterprise gratuitement.</a></strong></p>
</blockquote>
]]></content>
        <author>
            <name>GitLab France Team</name>
            <uri>https://about.gitlab.com/blog/authors/gitlab-france team</uri>
        </author>
        <published>2025-10-15T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Qu’est-ce que Docker ? Notre guide complet]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/what-is-docker-comprehensive-guide/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/what-is-docker-comprehensive-guide/"/>
        <updated>2025-10-10T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Docker a révolutionné la façon dont les équipes de développement créent, déploient et exécutent leurs applications grâce à une approche innovante : la conteneurisation. Cette approche est devenue incontournable dans le développement logiciel, car elle simplifie considérablement la gestion des environnements et accélère le cycle de développement logiciel.</p>
<p>Dans ce guide complet, découvrez tout ce qu'il faut savoir sur Docker : sa définition, son fonctionnement, ses avantages et son application dans un environnement <a href="https://about.gitlab.com/fr-fr/topics/devsecops/" title="Qu'est-ce que le DevSevOps ?">DevSecOps</a> avec la plateforme de GitLab.</p>
<blockquote>
<p><a href="https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/blog&amp;glm_content=default-saas-trial" title="Essai gratuit de GitLab.">Essayez GitLab Ultimate gratuitement.</a></p>
</blockquote>
<h2>Docker : définition</h2>
<p>Docker est une plateforme de conteneurisation <a href="https://about.gitlab.com/fr-fr/blog/what-is-open-source/" title="Qu'est-ce que l'open source ?">open source</a> qui permet aux équipes de développement d'empaqueter leurs applications et toutes leurs dépendances dans des conteneurs légers et portables. Lancé en 2013, Docker a démocratisé l'utilisation des conteneurs en proposant une solution simple et accessible pour créer des environnements d'exécution isolés.</p>
<h3>Qu’est-ce qu’un conteneur Docker ?</h3>
<p>Un conteneur Docker représente un environnement d'exécution léger qui encapsule une application avec l'ensemble de ses composants : code source, bibliothèques, dépendances système, variables d'environnement et fichiers de configuration. Il peut parfois être comparé à une machine virtuelle dans le sens où il permet d’héberger des services sur un même serveur physique tout en les isolant les uns des autres. Néanmoins, le fonctionnement d’un conteneur diffère légèrement d’une simple machine virtuelle.</p>
<p>Moins figés qu'une machine virtuelle, en matière de taille de disque et de ressources allouées, les conteneurs partagent le noyau de la machine hôte et isolent les processus, les utilisateurs, etc. Cela les rend très légers et leur permet de fonctionner comme s'ils étaient des machines distinctes. Par conséquent, les applications peuvent être démarrées et arrêtées rapidement.</p>
<h2>Comment fonctionne Docker ?</h2>
<p>Docker révolutionne la virtualisation en exploitant les capacités natives du noyau Linux pour créer des environnements d'exécution légers et isolés. Contrairement à la virtualisation traditionnelle qui nécessite des machines virtuelles complètes avec leur propre système d'exploitation, Docker utilise la conteneurisation pour partager le noyau de l'hôte tout en maintenant une isolation parfaite entre les applications.</p>
<p>La philosophie de Docker repose sur des technologies Linux avancées telles que les namespaces (qui isolent les processus, le réseau et le système de fichiers) et les cgroups (qui limitent et contrôlent l'utilisation des ressources). Docker encapsule ces fonctionnalités complexes dans une interface simple et portable, permettant aux équipes de développement de créer des environnements cohérents sur n'importe quelle plateforme.</p>
<p>Le processus de conteneurisation avec Docker suit un cheminement précis :</p>
<ol>
<li><strong>Création d'un Dockerfile :</strong> ce fichier texte contient les instructions pour construire l'environnement</li>
<li><strong>Construction d’une image docker</strong> : Docker assemble les composants selon les spécifications du Dockerfile</li>
<li><strong>Instanciation du conteneur</strong> : l'image devient un conteneur exécutable</li>
<li><strong>Gestion du cycle de vie</strong> : démarrage, arrêt, surveillance et mise à jour des conteneurs</li>
</ol>
<p>Pour comprendre pleinement le fonctionnement de Docker, il est essentiel de maîtriser les quatre composants fondamentaux suivants, qui contribuent à créer un écosystème de conteneurisation complet et efficace.</p>
<h3>Docker Engine : le cœur du système</h3>
<p><a href="https://docs.docker.com/engine/">Docker Engine</a> est le moteur qui orchestre toutes les opérations de conteneurisation. Cette architecture client-serveur se compose de trois éléments interconnectés qui travaillent en harmonie :</p>
<p><strong>Docker Daemon (<a href="https://docs.docker.com/reference/cli/dockerd/">dockerd</a>)</strong> constitue le service central qui s'exécute en permanence sur le système hôte et gère l'ensemble du cycle de vie des conteneurs. Il supervise la création, l'exécution, la surveillance et la destruction des conteneurs, tout en gérant les images, les réseaux virtuels et les volumes de stockage. Ce daemon écoute en permanence les requêtes et exécute les opérations demandées.</p>
<p><strong>L'API REST Docker</strong> est le mode de communication principal avec Docker Daemon. Concrètement, quand vous lancez <code>docker run</code> ou <a href="https://docs.gitlab.com/ci/docker/using_docker_build/"><code>docker build</code></a>, votre commande est transformée en requête HTTP qui est envoyée au daemon. Cette API permet également aux équipes de développement de créer leurs propres outils ou d'automatiser Docker dans leurs scripts et applications.</p>
<p><strong>Le client Docker CLI</strong> représente l'interface en ligne de commande que les utilisateurs emploient quotidiennement. Chaque commande <code>docker</code> (run, build, push, pull) transite par ce client qui communique avec le daemon via l'<a href="https://about.gitlab.com/fr-fr/blog/2024/09/04/what-is-rest-api/" title="Qu'est-ce qu'une API REST ?">API REST</a>.</p>
<h3>Images Docker : les modèles d'exécution</h3>
<p>Une <strong>image Docker</strong> constitue un modèle immuable et en lecture seule qui encapsule l'ensemble des éléments nécessaires à l'exécution d'une application. Cette image contient le système de fichiers complet, incluant le code source, les bibliothèques système, les dépendances, les variables d'environnement et les métadonnées de configuration.</p>
<p>L'architecture en couches des images Docker représente l'une des innovations les plus importantes de cette technologie. Chaque instruction dans un Dockerfile crée une nouvelle couche et Docker utilise un système de cache intelligent pour réutiliser les couches communes entre différentes images. Cette approche optimise considérablement l'espace de stockage et accélère les processus de construction et de téléchargement.</p>
<p>Les images sont identifiées par des tags qui combinent un nom et une version (comme <code>nginx:latest</code>, <code>ubuntu:20.04</code> ou <code>node:18-alpine</code>). Ces tags permettent aux équipes de développement de spécifier précisément quelle version d'une image utiliser dans leurs déploiements.</p>
<h3>Dockerfile : automatiser la construction</h3>
<p>Le <strong>Dockerfile</strong> représente bien plus qu'un simple script d'instructions : il constitue la recette complète pour reproduire fidèlement un environnement d'exécution. Ce fichier texte utilise une syntaxe déclarative simple pour définir chaque étape de la construction d'une image.</p>
<p>Un Dockerfile typique commence par spécifier une image de base (instruction FROM), puis enchaîne les opérations : installation de dépendances (<code>RUN</code>), copie de fichiers (<code>COPY</code> ou <code>ADD</code>), configuration d'environnement (<code>ENV</code>), exposition de ports (<code>EXPOSE</code>), et définition de la commande par défaut (<code>CMD</code> ou <code>ENTRYPOINT</code>).</p>
<p>Cette approche Infrastructure as Code garantit la reproductibilité parfaite des environnements et s'inscrit parfaitement dans les pratiques <a href="https://about.gitlab.com/fr-fr/topics/devops/" title="Qu'est-ce que le DevOps ?">DevOps</a> actuelles. En documentant explicitement toutes les étapes de configuration dans un fichier versionable, le Dockerfile facilite la collaboration entre les équipes de développement et les opérateurs.</p>
<h3>Docker Registry : partager et distribuer</h3>
<p>Les registres Docker fonctionnent comme des dépôts centralisés qui permettent de stocker, versioner et distribuer des images Docker de manière sécurisée. Ils constituent l'épine dorsale de l'écosystème Docker en facilitant la collaboration et le partage d'images.</p>
<p><strong><a href="https://www.docker.com/products/docker-hub/">Docker Hub</a></strong> demeure le registre public officiel, hébergeant des millions d'images communautaires et officielles. Les équipes de développement peuvent y trouver des images prêtes à l'emploi : bases de données, serveurs web, etc.</p>
<p>Les entreprises peuvent également déposer leurs images dans des <strong>registres privés</strong> garantissant la sécurité et le contrôle des accès. Ces registres privés peuvent être auto hébergés (on-premise) ou dans le cloud.</p>
<h2>Pourquoi utiliser Docker ?</h2>
<p>Le développement d'applications fait face à des défis croissants : multiplication des environnements de déploiement, diversité des technologies utilisées, cycles de livraison accélérés et exigences de fiabilité toujours plus élevées. Les équipes de développement jonglent quotidiennement avec des problématiques complexes qui ralentissent leur productivité et augmentent les risques d'erreur.</p>
<p>En ce sens, Docker répond directement ou indirectement à ces problématiques récurrentes dans le développement logiciel.</p>
<p><strong>Uniformisation des environnements</strong> : Docker élimine le fameux « ça marche sur ma machine » en garantissant que l'application s'exécute de manière identique sur tous les environnements, du poste de développement à la production.</p>
<p><strong>Simplification des déploiements</strong> : l'empaquetage de l'application et de ses dépendances dans un conteneur unique simplifie considérablement les processus de déploiement et réduit les risques d'erreur.</p>
<p><strong>Isolation des applications</strong> : chaque conteneur dispose de son propre espace d'exécution, évitant les conflits entre différentes versions de bibliothèques ou de dépendances.</p>
<p><strong>Accélération du développement</strong> : les équipes de développement peuvent rapidement lancer des environnements complexes sans configuration manuelle fastidieuse.</p>
<p><strong>Optimisation des ressources informatiques</strong> : Docker permet une utilisation plus efficace des ressources serveur comparé aux machines virtuelles traditionnelles. Plusieurs conteneurs peuvent partager le même noyau système tout en maintenant leur isolation, réduisant ainsi l'empreinte mémoire et CPU.</p>
<p>Cette efficacité se traduit par :</p>
<ul>
<li>Des temps de démarrage considérablement réduits</li>
<li>Une densité d'applications plus élevée par serveur</li>
<li>Une consommation énergétique optimisée</li>
<li>Des coûts d'infrastructure réduits</li>
</ul>
<h2>Quels sont les avantages de Docker ?</h2>
<p>Maintenant que nous avons vu pourquoi Docker est si populaire, intéressons-nous davantage aux avantages qu'il apporte concrètement aux équipes de développement.</p>
<h3>Portabilité et cohérence</h3>
<p>Docker garantit que les applications fonctionnent de manière identique quel que soit l'environnement d'exécution. Cette portabilité facilite :</p>
<ul>
<li>La migration d'applications entre différents fournisseurs cloud</li>
<li>Le déploiement sur des architectures hybrides (on-premise et cloud)</li>
<li>La création d'environnements de test fidèles à la production</li>
<li>La distribution d'applications complexes</li>
</ul>
<h3>Scalabilité et performance</h3>
<p>Les conteneurs Docker offrent une flexibilité exceptionnelle pour adapter les ressources aux besoins applicatifs :</p>
<ul>
<li><strong>Montée en charge horizontale</strong> : ajout rapide de nouvelles instances de conteneurs selon la demande</li>
<li><strong>Optimisation des ressources</strong> : allocation précise des ressources CPU et mémoire par conteneur</li>
<li><strong>Démarrage instantané</strong> : les conteneurs se lancent en quelques secondes contre plusieurs minutes pour les machines virtuelles</li>
<li><strong>Efficacité réseau</strong> : gestion sophistiquée des réseaux virtuels entre conteneurs</li>
</ul>
<h3>Facilitation du DevOps</h3>
<p>Docker s'intègre naturellement dans les pratiques DevOps en :</p>
<ul>
<li>Automatisant les processus de compilation et de déploiement</li>
<li>Facilitant l'intégration et le déploiement continus (<a href="https://about.gitlab.com/fr-fr/topics/ci-cd/" title="Qu'est-ce que le CI/CD ?">CI/CD</a>)</li>
<li>Permettant des tests reproductibles dans des environnements isolés</li>
<li>Accélérant les cycles de développement et de livraison</li>
</ul>
<h3>Écosystème et communauté</h3>
<p>L'écosystème Docker bénéficie d'une communauté active qui développe :</p>
<ul>
<li>Des milliers d'images officielles et communautaires sur Docker Hub</li>
<li>Des outils d'orchestration de conteneurs comme Docker Swarm (natif à Docker) et Kubernetes</li>
<li>Des solutions de monitoring et de logging adaptées aux conteneurs</li>
<li>Des intégrations avec les principales plateformes cloud</li>
</ul>
<h2>Quelles sont les limites de Docker ?</h2>
<p>Comme nous venons de le voir, Docker présente de nombreux avantages, mais aussi certains inconvénients, dont il convient de prendre connaissance avec de plonger dans l’écosystème Docker.</p>
<h3>Limitation à un seul système d'exploitation</h3>
<p>Docker crée plusieurs conteneurs sur un seul système d'exploitation. Si cette approche offre des avantages en termes de vitesse de démarrage et de traitement, elle peut également présenter des inconvénients. Par exemple, si vous souhaitez tester votre application dans un environnement Windows alors que votre machine hôte fonctionne sous Linux, vous devrez préparer une machine ou une machine virtuelle séparée.</p>
<h3>Surcharge lors du développement à grande échelle</h3>
<p>Docker est léger en lui-même, mais lorsqu'il est étendu à un système de grande envergure, la charge de gestion de Docker entre en jeu. Docker peut faire fonctionner de nombreux conteneurs sur un seul serveur, mais d'un autre côté, cela nécessite une gestion et une orchestration qui peuvent générer une surcharge. Il peut également devenir difficile de tout gérer en utilisant Docker seul sans recourir à des outils d’orchestration comme Docker Swarm ou encore <a href="https://about.gitlab.com/fr-fr/blog/2024/07/25/kubernetes-the-container-orchestration-solution/" title="Qu'est-ce que Kubernetes ?">Kubernetes</a>.</p>
<h3>Courbe d'apprentissage exigeante</h3>
<p>Docker utilise une méthode différente pour créer des environnements virtuels par rapport aux autres machines virtuelles. Cela signifie que les équipes de développement doivent apprendre et appréhender tous ces nouveaux concepts. Utiliser Docker sans bien comprendre son fonctionnement peut entraîner des problèmes par la suite. Il est important d'étudier Docker de manière approfondie avant de commencer à l'utiliser.</p>
<h3>Vulnérabilités de sécurité potentielles</h3>
<p>Docker utilise une architecture basée sur les conteneurs. Comme plusieurs conteneurs fonctionnent sur une seule machine, il faut faire attention aux vulnérabilités qui peuvent en découler. Par exemple, s'il y a une vulnérabilité dans un conteneur, elle pourrait affecter tous les autres conteneurs qui partagent les ressources du système d'exploitation hôte et le noyau.</p>
<h3>Difficultés dans la coopération entre conteneurs</h3>
<p>Lorsque vous envisagez l'intégration entre plusieurs conteneurs, diverses configurations peuvent être difficiles, ce qui peut conduire à des problèmes opérationnels. Par exemple, si vous créez une application et une base de données dans des conteneurs séparés et souhaitez les faire fonctionner ensemble, vous devez configurer les paramètres de communication au sein du même hôte. L'ouverture de ports et de sockets pose des risques de sécurité. Si vous rendez les paramètres trop compliqués pour éviter cela, vous risquez alors de rencontrer des problèmes en production. Lors de l'intégration de conteneurs, il est important de bien réfléchir dès la phase de conception.</p>
<h3>Comment GitLab résout les défis de Docker ?</h3>
<p>GitLab transforme Docker d'un simple outil de conteneurisation en une solution DevSecOps complète et sécurisée. Cette plateforme intégrée résout les principaux défis auxquels font face les organisations utilisant Docker à grande échelle.</p>
<p>L'approche &quot;shift-left&quot; de GitLab intègre les contrôles de sécurité directement dans le pipeline de développement. Plutôt que de traiter la sécurité comme une étape finale, GitLab analyse automatiquement les images Docker dès leur construction, détectant les vulnérabilités, les configurations dangereuses et les dépendances obsolètes avant le déploiement. Cette détection précoce réduit considérablement les coûts de remédiation et élimine les risques de sécurité en production.</p>
<p>GitLab Runner et ses pipelines CI/CD transforment la gestion des conteneurs Docker en automatisant l'ensemble du cycle de vie DevSecOps. Cette infrastructure d'exécution permet la construction automatisée d'images Docker optimisées, la validation automatique de la sécurité et des performances et l'orchestration sécurisée vers différents environnements.</p>
<h2>Le rôle de Docker dans l’approche DevSecOps de GitLab</h2>
<p>Docker joue également un rôle très important dans l'intégration DevSecOps avec GitLab.</p>
<h3>Conteneurisation des jobs CI/CD</h3>
<p>GitLab CI/CD vous permet d'utiliser des conteneurs Docker dans vos <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/cicd-pipeline/" title="Qu'est-ce qu'un pipeline CI/CD ?">pipelines CI/CD</a>, vous apportant :</p>
<ul>
<li><strong>Cohérence</strong> : les jobs CI/CD s'exécutent dans des conteneurs, éliminant les erreurs dues aux différences de dépendances et d'environnements</li>
<li><strong>Scalabilité</strong> : les conteneurs sont légers, rapides à démarrer et efficaces pour exécuter de larges pipelines</li>
<li><strong>Flexibilité d'environnement</strong> : vous pouvez spécifier différentes images Docker pour chaque job, facilitant la mise à disposition de l'environnement requis</li>
</ul>
<p>L'image Docker GitLab Runner est basée sur Ubuntu ou Alpine Linux et inclut les commandes standard <code>gitlab-runner</code> qui la font fonctionner comme si vous aviez installé GitLab Runner directement sur l'hôte.</p>
<h3>Scanning de sécurité automatisé</h3>
<p>La sécurité est un composant clé de l’approche DevSecOps. GitLab la prend en charge dans les applications conteneurisées avec Docker à l’aide des scannings suivants :</p>
<ul>
<li><strong>Scanning de sécurité des images de conteneurs</strong> : fournit la capacité de scanner les images Docker dans vos pipelines CI/CD, vérifiant les vulnérabilités des packages OS afin d'évaluer la sûreté des images avant qu’elles n’atteignent l’environnement de production</li>
<li><strong><a href="https://docs.gitlab.com/user/application_security/continuous_vulnerability_scanning/">Scanning en continue des vulnérabilités de conteneurs</a></strong> : recherche les failles de sécurité dans les dépendances existantes des applications en se basant sur leur SBOM et en comparant les noms et les versions des composants aux informations contenues dans les derniers avis de sécurité.</li>
<li><strong><a href="https://about.gitlab.com/blog/improve-security-auditing-with-gitlab-operational-container-scanning/">Scanning opérationnel de conteneurs</a></strong> : exécute les analyses de vulnérabilités sur les conteneurs déployés dans un environnement Kubernetes. Cela comprend l'analyse régulière des images à la recherche de nouvelles vulnérabilités découvertes et le suivi des environnements dans lesquels ces vulnérabilités sont déployées.</li>
</ul>
<h3>Infrastructure as Code (IaC) et gestion d'environnement</h3>
<ul>
<li><strong>Reproductibilité</strong> : l’utilisation de Docker dans les jobs GitLab CI/CD assure la cohérence entre les environnements de développement et de production.</li>
<li><strong>Création instantanée d'environnements de staging et de test</strong> : en s'intégrant avec Docker Compose et Kubernetes, GitLab vous permet de créer des environnements isolés pour des branches spécifiques ou des merge requests, permettant des tests efficaces et un scanning de sécurité.</li>
</ul>
<h3>Déploiement rationalisé</h3>
<p>GitLab supporte les modèles de déploiement suivants avec Docker :</p>
<ul>
<li><strong>Compilation et push d'images Docker</strong> : construisez votre application sous forme d’image de conteneur et effectuez un push vers le registre de conteneurs de GitLab ou d'autres registres Docker.</li>
<li><strong><a href="https://about.gitlab.com/fr-fr/topics/continuous-delivery/" title="Qu'est-ce que la livraison continue ?">Livraison continue</a></strong> : utilisez des images Docker et déployez vers des outils d'orchestration de conteneurs pour des releases rapides et sécurisées.</li>
</ul>
<h3>Prise en charge de l'architecture de microservices</h3>
<p>GitLab et Docker ensemble facilitent la construction d'<a href="https://about.gitlab.com/fr-fr/blog/what-are-the-benefits-of-a-microservices-architecture/" title="Qu'est-ce qu'une architecture de microservices ?">architectures de microservices</a>, où les <a href="https://about.gitlab.com/fr-fr/topics/microservices/" title="Qu'est-ce qu'un microservice ?">microservices</a> s'exécutent comme des conteneurs Docker séparés.</p>
<p>Avec les pipelines GitLab CI/CD, vous pouvez gérer :</p>
<ul>
<li>La configuration des dépendances entre services</li>
<li>Les scans de sécurité individuels</li>
<li>Le <a href="https://about.gitlab.com/fr-fr/topics/version-control/" title="Qu'est-ce que le contrôle de version ?">contrôle de version</a> (facilite les retours à une version précédente)</li>
</ul>
<h2>Conclusion</h2>
<p>Docker a transformé le paysage du développement logiciel en démocratisant la conteneurisation et en simplifiant la gestion des environnements d'exécution. Sa capacité à créer des applications portables, légères et facilement déployables en fait aujourd’hui un outil incontournable pour les équipes de développement.</p>
<p>L'intégration native avec GitLab renforce encore davantage sa valeur en proposant une plateforme DevSecOps complète. Cette synergie permet aux entreprises d'accélérer leurs cycles de développement logiciel tout en maintenant des standards élevés de sécurité et de qualité.</p>
<p>Pour les équipes souhaitant moderniser leurs pratiques de développement, l'adoption de Docker représente un investissement stratégique qui se traduit par une productivité accrue, des déploiements plus fiables, une meilleure évolutivité et un environnement flexible.</p>
<blockquote>
<p>Vous souhaitez installer GitLab dans un conteneur Docker ? Consultez notre <a href="https://docs.gitlab.com/install/docker/">documentation</a> pour en savoir plus.</p>
</blockquote>
<h2>FAQ sur Docker</h2>
<h3>Que peut-on faire avec Docker ?</h3>
<p>Docker est une technologie de virtualisation légère et autonome qui empaquette le code d'application, ses dépendances et ses bibliothèques. Docker vous permet de créer plusieurs conteneurs (environnements virtuels) sur une seule machine, vous permettant d'unifier vos environnements de développement et de test.</p>
<h3>À quoi sert Docker ?</h3>
<p>Docker est utilisé par les équipes de développement pour découpler les applications et leurs dépendances du reste du système. Les conteneurs regroupent les applications et leurs dépendances ensemble et fournissent un environnement d'exécution léger.</p>
<h3>Docker peut-il remplacer les machines virtuelles ?</h3>
<p>Docker ne remplace pas complètement les machines virtuelles, mais offre une alternative plus légère pour de nombreux cas d'usage. Les conteneurs partagent le noyau du système hôte, tandis que les machines virtuelles émulent un système complet. Le choix dépend de vos besoins en isolation, performance et compatibilité système.</p>
<p><em>Note : certaines parties de cet article proviennent de l'article japonais <a href="https://about.gitlab.com/ja-jp/blog/what-is-docker/">Dockerとは：超入門編</a>.</em></p>
]]></content>
        <author>
            <name>GitLab France Team</name>
            <uri>https://about.gitlab.com/blog/authors/gitlab-france team</uri>
        </author>
        <published>2025-10-10T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Atlassian met fin à son offre Data Center tandis que GitLab maintient ses options de déploiement]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/atlassian-ending-data-center-as-gitlab-maintains-deployment-choice/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/atlassian-ending-data-center-as-gitlab-maintains-deployment-choice/"/>
        <updated>2025-10-09T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Le changement n'est jamais facile, surtout s'il vous est imposé. <a href="https://www.atlassian.com/blog/announcements/atlassian-ascend">Atlassian a annoncé la fin de vie de tous ses produits Data Center pour le 28 mars 2029</a>. Conséquence : des milliers d'entreprises doivent désormais repenser leur déploiement et leur infrastructure <a href="https://about.gitlab.com/fr-fr/topics/devsecops/" title="Qu'est-ce que le DevSecOps ?">DevSecOps</a>. Mais vous n'avez pas à vous contenter d'options qui ne correspondent pas à vos besoins. GitLab vous laisse le choix, que vous ayez besoin d'une solution self-managed pour la conformité, d'une solution cloud pour la commodité ou d'une solution hybride pour la flexibilité. Le tout au sein d'une plateforme DevSecOps unique alimentée par l'IA qui respecte vos exigences.</p>
<p>Alors que d'autres fournisseurs imposent des migrations vers des architectures exclusivement cloud, GitLab reste déterminée à prendre en charge les choix de déploiement qui correspondent à vos besoins métier. Que vous gériez des données gouvernementales sensibles, que vous opériez dans des environnements air-gapped ou que vous préfériez simplement le contrôle des déploiements self-managed, nous savons qu'une solution unique ne vous convient pas forcément.</p>
<h2>Le cloud n'est pas toujours la solution</h2>
<p>Pour les nombreuses entreprises qui ont investi des millions de dollars dans des déploiements Data Center, y compris celles qui ont migré vers Data Center <a href="https://about.gitlab.com/blog/atlassian-server-ending-move-to-a-single-devsecops-platform/">après l'arrêt des produits Server</a>, cette annonce représente bien plus qu'un simple arrêt de produit. Elle marque un changement fondamental dans l'approche des choix d'architecture centrés sur le client et place les entreprises face à un dilemme difficile : accepter un modèle de déploiement qui ne correspond pas à leurs besoins, ou trouver un fournisseur qui respecte leurs exigences.</p>
<p>Bon nombre d'organisations qui ont besoin de déploiements self-managed comptent parmi les plus importantes au monde : il s'agit de systèmes de santé protégeant les données des patients, d'institutions financières gérant des milliers de milliards d'actifs, d'agences gouvernementales chargées de la sécurité nationale et de sous-traitants de la défense opérant dans des environnements air-gapped.</p>
<p>Ces organisations ne choisissent pas les déploiements self-managed par commodité. Elles les choisissent pour répondre à des exigences de conformité, de sécurité et de souveraineté auxquelles les architectures exclusivement basées sur le cloud ne peuvent tout simplement pas satisfaire. Les organisations opérant dans des environnements fermés avec un accès Internet restreint ou inexistant ne font pas exception. Elles représentent une part importante des entreprises clientes dans divers secteurs.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1759928476/ynl7wwmkh5xyqhszv46m.jpg" alt="GitLab vs. Atlassian comparison table"></p>
<blockquote>
<p><strong><a href="https://about.gitlab.com/fr-fr/free-trial/devsecops/?utm_medium=blog&amp;utm_source=blog&amp;utm_campaign=eg_emea_x_trial_x_fr_blog_fr">→ Essayez GitLab Ultimate et GitLab Duo Enterprise gratuitement.</a></strong></p>
</blockquote>
<h2>Le coût réel d'une migration forcée vers le cloud dépasse le simple aspect financier</h2>
<p>Alors que les fournisseurs cloud présentent les migrations obligatoires comme des « mises à niveau », les organisations sont confrontées à des défis considérables qui vont bien au-delà des simples coûts financiers :</p>
<ul>
<li>
<p><strong>Perte des capacités d'intégration :</strong> des années d'intégrations personnalisées avec des systèmes hérités, des workflows soigneusement élaborés et des automatisations spécifiques à l'organisation deviennent obsolètes. Les organisations fortement intégrées à des systèmes hérités estiment souvent que la migration vers le cloud est irréalisable d'un point de vue technique.</p>
</li>
<li>
<p><strong>Contraintes réglementaires :</strong> pour les organisations des secteurs réglementés, la migration vers le cloud n'est pas seulement complexe, elle est souvent interdite. Les exigences en matière de résidence des données, les environnements air-gapped et les frameworks réglementaires stricts ne s'adaptent pas aux préférences des fournisseurs. L'absence de solutions monolocataires dans de nombreuses approches exclusivement basées sur le cloud crée des obstacles insurmontables en matière de conformité.</p>
</li>
<li>
<p><strong>Impact sur la productivité :</strong> les architectures exclusivement cloud nécessitent souvent de jongler entre plusieurs produits : des outils distincts pour la planification, la gestion du code, le <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/" title="Qu'est-ce que le CI/CD ?">CI/CD</a> et la documentation. Chaque outil implique un nouveau changement de contexte, une nouvelle intégration à maintenir, ou encore un nouveau point de défaillance potentiel. Les recherches menées par GitLab montrent que <a href="https://about.gitlab.com/fr-fr/developer-survey/">30 % des équipes de développement consacrent au moins 50 % de leur temps à maintenir et/ou intégrer leur chaîne d'outils DevSecOps</a>. Les architectures fragmentées exacerbent ce problème au lieu de le résoudre.</p>
</li>
</ul>
<h2>GitLab offre choix, engagement et consolidation</h2>
<p>Les entreprises méritent un partenaire technologique fiable. C'est pourquoi nous nous sommes engagés à prendre en charge toute une gamme d'options de déploiement. Que vous ayez besoin d'une solution sur site pour la conformité, d'une solution hybride pour la flexibilité ou d'une solution cloud pour la commodité, le choix vous appartient. Cet engagement se reflète également dans <a href="https://about.gitlab.com/fr-fr/gitlab-duo/">GitLab Duo</a>, notre solution d'IA qui accompagne les équipes de développement à chaque étape de leur workflow.</p>
<p>Mais nous offrons plus qu'une simple flexibilité de déploiement. Alors que d'autres fournisseurs peuvent vous obliger à combiner leurs produits pour former une chaîne d'outils fragmentée, GitLab fournit tout ce dont vous avez besoin dans une <strong>plateforme DevSecOps complète avec l'IA native</strong>. La gestion du code source, le CI/CD, le scanning de sécurité, la <a href="https://about.gitlab.com/fr-fr/blog/how-gitlab-agile-planning-improves-collaborative-project-management/" title="Qu'est-ce que la planification agile ?">planification Agile</a> et la documentation sont tous gérés au sein d'une seule application et d'une seule relation fournisseur.</p>
<p>Lorsque <a href="https://about.gitlab.com/fr-fr/customers/airbus/">Airbus</a> et <a href="https://about.gitlab.com/fr-fr/customers/iron-mountain/">Iron Mountain</a> ont évalué leurs chaînes d'outils fragmentées existantes, ils ont systématiquement identifié les défis suivants : mauvaise expérience utilisateur, fonctionnalités manquantes comme le scanning de sécurité intégré et les environnements de test temporaires, et complexité de gestion liée au dépannage des plugins. <strong>Ce ne sont pas des défis mineurs, mais des obstacles majeurs à la livraison logicielle moderne.</strong></p>
<h2>Votre parcours de migration est plus simple que vous ne le pensez</h2>
<p>Nous avons aidé des milliers d'organisations à migrer depuis d'autres fournisseurs, et nous avons développé les outils et l'expertise nécessaires pour faciliter votre transition :</p>
<ul>
<li>
<p><strong>Outils de migration automatisés :</strong> notre <a href="https://docs.gitlab.com/user/project/import/bitbucket_server/">outil d'importation Bitbucket Server</a> transfère les dépôts, les pull requests, les commentaires et même les objets Large File Storage (LFS). Pour Jira, notre <a href="https://docs.gitlab.com/user/project/import/jira/">outil d'importation intégré</a> gère les tickets, les descriptions et les labels, avec des services professionnels disponibles pour les migrations complexes.</p>
</li>
<li>
<p><strong>Efficacité prouvée à grande échelle :</strong> un dépôt de 500 Gio avec 13 000 pull requests, 10 000 branches et 7 000 tags ne prendra probablement que <a href="https://docs.gitlab.com/user/project/import/bitbucket_server/">8 heures à migrer</a> de Bitbucket vers GitLab en utilisant le traitement parallèle.</p>
</li>
<li>
<p><strong>Retour sur investissement immédiat :</strong> une <a href="https://about.gitlab.com/fr-fr/blog/gitlab-ultimates-total-economic-impact-483-roi-over-3-years/">étude Total Economic Impact™ de Forrester Consulting commandée par GitLab</a> révèle qu'investir dans GitLab Ultimate permet de traduire ces avantages en un impact réel sur les résultats financiers, avec un ROI de 483 % sur trois ans, un gain de temps multiplié par 5 dans les activités liées à la sécurité et 25 % d'économies sur les coûts liés à la chaîne d'outils logiciels.</p>
</li>
</ul>
<h2>Commencez votre transition vers une plateforme DevSecOps unifiée</h2>
<p>Les organisations avant-gardistes n'attendent pas les échéances imposées par les fournisseurs. Elles évaluent les alternatives dès maintenant, pendant qu'elles ont encore le temps de migrer de manière réfléchie vers des plateformes qui protègent leurs investissements et tiennent leurs promesses.</p>
<p>Les organisations investissent dans des déploiements self-managed parce qu'elles ont besoin de contrôle, de conformité et de personnalisation. Lorsque les fournisseurs déprécient ces capacités, ils suppriment non seulement des fonctionnalités, mais aussi la possibilité fondamentale de choisir des environnements adaptés aux exigences métier.</p>
<p>Les plateformes DevSecOps modernes doivent offrir des fonctionnalités complètes qui respectent les besoins de déploiement, consolident les chaînes d'outils et accélèrent la livraison logicielle, sans imposer de compromis en matière de sécurité ou de souveraineté des données.</p>
<p><a href="https://about.gitlab.com/fr-fr/sales/">Contactez notre équipe commerciale</a> dès aujourd'hui pour discuter de vos options de migration, ou explorez nos <a href="https://about.gitlab.com/move-to-gitlab-from-atlassian/">ressources</a> et découvrez comment des milliers d'organisations ont déjà effectué leur transition vers GitLab.</p>
<blockquote>
<p><strong><a href="https://about.gitlab.com/fr-fr/free-trial/devsecops/?utm_medium=blog&amp;utm_source=blog&amp;utm_campaign=eg_emea_x_trial_x_fr_blog_fr">→ Essayez GitLab Ultimate et GitLab Duo Enterprise gratuitement.</a></strong></p>
</blockquote>
]]></content>
        <author>
            <name>Emilio Salvador</name>
            <uri>https://about.gitlab.com/blog/authors/emilio-salvador</uri>
        </author>
        <published>2025-10-09T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Vibe coding avec GitLab Duo Agent Platform : du ticket à la merge request]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/vibe-coding-with-gitlab-duo-agent-platform-issue-to-mr-flow/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/vibe-coding-with-gitlab-duo-agent-platform-issue-to-mr-flow/"/>
        <updated>2025-10-02T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p><a href="https://about.gitlab.com/fr-fr/gitlab-duo/agent-platform/">GitLab Duo Agent Platform</a> (disponible en version bêta) fournit un framework qui permet aux agents d'IA d'interagir avec les ressources de GitLab telles que les tickets et les merge requests et d'exécuter des tâches complexes en plusieurs étapes, du concept à la réalisation. GitLab Duo Agent Platform offre une expérience conversationnelle avec (<a href="https://about.gitlab.com/fr-fr/blog/gitlab-duo-chat-gets-agentic-ai-makeover/">GitLab Duo Agentic Chat)</a> et automatisée avec les (<a href="https://about.gitlab.com/fr-fr/blog/gitlab-18-3-expanding-ai-orchestration-in-software-engineering/">flows)</a> pour aider à la génération de code, à la modernisation, à la résolution des vulnérabilités de sécurité et à l'analyse de projets avec une sécurité à l’échelle de l'entreprise et des contrôles personnalisables.</p>
<p>Le flow « ticket à merge request » simplifie la transformation d'un ticket détaillé en brouillon de merge request (MR). Le flow analyse la description et les exigences d'un ticket, ouvre une merge request liée au ticket, crée un plan de développement et propose une implémentation, directement depuis l'interface de GitLab.</p>
<h2>Le défi des équipes de développement</h2>
<p>Les mises à jour telles que la réorganisation d'une interface utilisateur, l'ajustement de la taille d'un composant ou la modification mineure d'un workflow ne devraient pas nécessiter des heures de configuration. Pourtant, les équipes de développement se retrouvent face à un cycle frustrant : elles doivent rechercher dans le code source pour localiser les bons fichiers, créer des branches, rassembler des modifications dispersées à travers de multiples composants et gérer des processus de revue complexes, avant même de pouvoir vérifier si leur solution fonctionne. Ce processus de développement trop complexe transforme ce qui devrait être des itérations rapides en tâches chronophages qui ralentissent les boucles de rétroaction et transforment des améliorations simples en projets majeurs.</p>
<h2>Comment utiliser le flow « ticket à merge request » pour accélérer une mise à jour d'application ?</h2>
<p>Vous devez d'abord remplir les conditions ci-dessous avant d'utiliser ce flow :</p>
<ul>
<li>Un ticket existant avec des exigences claires et des critères d'acceptation. GitLab Duo Agent Platform arrivera ainsi à mieux comprendre ce que vous essayez d'accomplir et à améliorer la qualité du résultat.</li>
<li>Un niveau d'accès Développeur ou plus au projet, car le flow apportera des modifications au code source de votre projet.</li>
<li>GitLab Duo Agent Platform activée pour votre groupe ou projet, avec les flows autorisés. Pour activer cette option, allez dans <strong>Paramètres &gt; Général &gt; GitLab Duo &gt; Autoriser l'exécution des flows</strong>. GitLab s'engage à fournir des garde-fous, c'est pourquoi les fonctionnalités d'IA agentique nécessitent l'activation de ces options pour protéger les projets sensibles et garantir que seuls les projets sélectionnés sont accessibles à GitLab Duo Agent Platform.</li>
</ul>
<p>Une fois que vous avez rempli toutes les conditions ci-dessus, suivez les étapes ci-dessous pour tirer parti de ce flow :</p>
<ol>
<li>Créez un ticket de projet qui décrit ce que vous souhaitez que GitLab Duo Agent Platform accomplisse pour vous. Fournissez autant de détails que possible dans la description. Si le ticket existe déjà, ouvrez-le en allant dans <strong>Programmation &gt; Tickets</strong> et cliquez sur le ticket qui décrit la mise à jour que vous souhaitez. Assurez-vous que le ticket soit précis et détaillé.</li>
<li>Sous l'en-tête du ticket, cliquez sur <strong>Générer une MR avec GitLab Duo</strong> pour lancer le flow.</li>
<li>Si vous souhaitez suivre la progression des agents qui travaillent sur l'implémentation de votre ticket, accédez à <strong>Automatisation &gt; Sessions d'agent</strong> pour voir le journal de session en direct pendant que les agents planifient et proposent des modifications.</li>
<li>Une fois le pipeline terminé, un lien vers la merge request apparaît dans l'activité du ticket. Ouvrez-le pour examiner le résumé et les modifications apportées au niveau des fichiers.</li>
<li>Si vous souhaitez valider localement les mises à jour proposées par GitLab Duo Agent Platform, vous pouvez effectuer un pull de la branche sur votre ordinateur, compiler et exécuter votre application, puis vérifier que la mise à jour fonctionne comme prévu. Si nécessaire, effectuez des modifications dans la merge request et procédez à la revue habituelle.</li>
<li>Si vous êtes satisfait de toutes les mises à jour de l'application proposées, fusionnez la merge request dans la branche principale.</li>
</ol>
<h2>Pourquoi utiliser le flow « ticket à merge request » pour modifier une application ?</h2>
<p>Ce flow propose des modifications de code et met à jour directement la merge request. Résultat : vous passez moins de temps à localiser des fichiers et n'avez qu'à évaluer et examiner le résultat. De plus, la merge request est automatiquement liée au ticket d'origine, ce qui maintient un contexte précis pour les relecteurs et les parties prenantes. Enfin, vous pouvez surveiller la session de l'agent afin de suivre toutes les étapes.</p>
<h2>Quels sont les avantages de GitLab Duo Agent Platform ?</h2>
<p>GitLab Duo Agent Platform est <a href="https://about.gitlab.com/fr-fr/blog/gitlab-duo-agent-platform-public-beta/">une couche d'orchestration agentique</a> qui fournit <strong>un contexte complet au projet</strong>, notamment la planification, le codage, la compilation, la sécurisation, le déploiement et la surveillance, afin que les agents puissent aider tout au long du cycle de développement logiciel (SDLC), et pas seulement pour l'édition de code.</p>
<ul>
<li>Modèle de données unifié : les agents GitLab Duo opèrent sur les données unifiées du SDLC de GitLab afin de fournir des décisions de meilleure qualité et une collaboration entre les tâches, y compris celles qui ne concernent pas le codage.</li>
<li>Sécurité et conformité intégrées : les agents GitLab Duo fonctionnent avec des garde-fous à l’échelle de l'entreprise et peuvent être utilisés même dans des environnements hautement réglementés ou hors ligne/air-gapped.</li>
<li>Interopérabilité et extensibilité : orchestrez des flow entre fournisseurs et outils ; connectez des données externes via les protocoles <a href="https://about.gitlab.com/topics/ai/model-context-protocol/">MCP</a>/Agent2Agent pour un contexte plus riche.</li>
<li>Collaboration à grande échelle : les agents GitLab Duo fonctionnent dans l'interface utilisateur de GitLab et les IDE afin d'offrir une collaboration multiple entre humains et agents.</li>
<li>Découvrabilité et partages : trouvez et partagez des agents et des flows dans un catalogue d'IA centralisé.</li>
</ul>
<h2>Essayez le flow « ticket à merge request » dès maintenant</h2>
<p>Pour les mises à jour d'application, comme un ajustement mineur de l'interface utilisateur, le flow « ticket à merge request » vous aide à passer rapidement d'un ticket clair à une merge request à réviser : vous pouvez surveiller la progression et valider les modifications dans votre workflow standard. Le flow maintient le contexte, réduit les transferts et permet à votre équipe de se concentrer sur la qualité plutôt que sur des tâches fastidieuses.</p>
<p>Découvrez le flow en action :</p>
<p>&lt;!-- blank line --&gt;</p>
<p>&lt;figure class=&quot;video_container&quot;&gt;
&lt;iframe src=&quot;https://www.youtube.com/embed/BrrMHN4gXF4?si=J7beTgWOLxvS4hOw&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt; &lt;/iframe&gt;
&lt;/figure&gt;
&lt;!-- blank line --&gt;</p>
<blockquote>
<p>Essayez dès maintenant le flow « ticket à merge request » sur GitLab Duo Agent Platform en profitant d'un <a href="https://about.gitlab.com/fr-fr/free-trial/">essai gratuit de GitLab Ultimate avec GitLab Duo Enterprise</a>.</p>
</blockquote>
]]></content>
        <author>
            <name>Cesar Saavedra</name>
            <uri>https://about.gitlab.com/blog/authors/cesar-saavedra</uri>
        </author>
        <published>2025-10-02T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[GitLab Duo et Claude Sonnet 4.5 : plus de choix en matière d'IA]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/greater-ai-choice-in-gitlab-duo-claude-sonnet-4-5-arrives/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/greater-ai-choice-in-gitlab-duo-claude-sonnet-4-5-arrives/"/>
        <updated>2025-10-01T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>GitLab propose désormais Claude Sonnet 4.5, le modèle le plus avancé d'Anthropic pour le développement et les agents en conditions réelles, directement dans le sélecteur de modèles de GitLab Duo.</p>
<p>Les utilisateurs ont désormais la possibilité de choisir Claude Sonnet 4.5 aux côtés d'autres modèles de premier plan, améliorant ainsi leur expérience avec <a href="https://about.gitlab.com/gitlab-duo/">GitLab Duo</a> grâce à des avancées en matière d'orchestration d'outils, d'édition contextuelle et de capacités spécifiques à chaque domaine. Avec des performances de pointe sur <a href="https://www.anthropic.com/news/claude-sonnet-4-5">SWE-bench Verified (77,2 %</a>) et des atouts en matière de cybersécurité, de finance et de workflows nécessitant des recherches approfondies, les utilisateurs de GitLab peuvent exploiter Claude Sonnet 4.5 pour obtenir des informations plus précises et un contexte plus approfondi dans leurs travaux de développement.</p>
<p>« L’intégration de Claude Sonnet 4.5 dans GitLab représente une avancée majeure pour les équipes de développement. Il s'agit d'un modèle de développement particulièrement performant qui, associé à GitLab Duo Agent Platform, vous offre une assistance plus intelligente directement dans vos workflows. C'est le type d'évolution qui facilite le développement », déclare Taylor McCaslin, Principal, Strategy and Operations for AI Partnerships chez GitLab.</p>
<h2>GitLab Duo Agent Platform et Claude Sonnet 4.5</h2>
<p><a href="https://about.gitlab.com/gitlab-duo/agent-platform/">GitLab Duo Agent Platform</a> amplifie la valeur de Claude Sonnet 4.5 en orchestrant les agents, en les connectant aux systèmes internes et en les intégrant tout au long du cycle de développement logiciel. Cette combinaison crée une expérience unique, où le raisonnement avancé et la résolution de problèmes rencontrent le contexte et la sécurité à l'échelle de la plateforme. Le résultat : un développement plus rapide, des résultats plus précis et une couverture organisationnelle renforcée, le tout intégré dans le workflow de GitLab que les équipes de développement utilisent déjà au quotidien.</p>
<h2>Où utiliser Claude Sonnet 4.5 ?</h2>
<p>Claude Sonnet 4.5 est désormais disponible en tant qu'option de modèle dans GitLab Duo Agent Platform Agentic Chat sur GitLab.com. Vous pouvez sélectionner Claude Sonnet 4.5 dans le menu déroulant de sélection des modèles pour tirer parti de ses capacités de codage avancées dans vos tâches de développement.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1759180378/sopuv0msxrmhzt2dyxdi.png" alt="Sélection déroulante de Claude Sonnet 4.5 dans GitLab Duo"></p>
<p><strong>Remarque :</strong> La possibilité de sélectionner Claude Sonnet 4.5 dans les IDE pris en charge sera bientôt disponible.</p>
<h2>Premiers pas</h2>
<p>Les clients GitLab Duo Pro et GitLab Duo Enterprise peuvent accéder à Claude Sonnet 4.5 dès aujourd'hui. Consultez notre <a href="https://docs.gitlab.com/user/gitlab_duo/">documentation</a> pour en savoir plus sur les fonctionnalités et les modèles de GitLab Duo.</p>
<blockquote>
<p>Vous souhaitez essayer GitLab Ultimate avec GitLab Duo Enterprise ? <a href="https://about.gitlab.com/gitlab-duo/">Commencez un essai gratuit dès aujourd'hui.</a></p>
</blockquote>
]]></content>
        <author>
            <name>Tim Zallmann</name>
            <uri>https://about.gitlab.com/blog/authors/tim-zallmann</uri>
        </author>
        <published>2025-10-01T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Connexion et commits sécurisés avec GitLab et Yubico]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/secure-and-safe-login-and-commits-with-gitlab-yubico/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/secure-and-safe-login-and-commits-with-gitlab-yubico/"/>
        <updated>2025-10-01T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Nous vivons à une époque où les violations de données et les attaques de
phishing font quotidiennement la une des médias. Ces violations peuvent
nuire aux entreprises et entraîner des amendes réglementaires, des temps
d'arrêt ou, pire encore, des atteintes à la réputation. En matière
d'authentification, les mots de passe constituent la base de la sécurité en
ligne depuis des décennies, mais ils s'avèrent de plus en plus inadaptés
face aux cybermenaces sophistiquées.</p>
<p>GitLab et <a href="https://www.yubico.com/?lang=fr">Yubico</a> se sont associés pour renforcer la sécurité du développement logiciel au moyen de mesures d'authentification robustes. Yubico est l'inventeur de la YubiKey, une clé de sécurité qui offre une authentification multifacteur (MFA) résistante au phishing. En implémentant le protocole FIDO Universal 2nd Factor (U2F) et la protection matérielle YubiKey, GitLab offre aux équipes de développement une défense puissante contre les attaques de phishing et autres cybermenaces afin de garantir la sécurité de leur code et de leurs projets. Cette collaboration renforce l'authentification de niveau entreprise dans la plateforme GitLab et aide les équipes de développement à se concentrer sur la création de logiciels et à avoir confiance en l'intégrité de leur compte.</p>
<p>Découvrez dans cet article comment configurer GitLab pour utiliser les YubiKeys afin de protéger vos équipes contre les menaces en ligne. Vous apprendrez également comment prévenir davantage la falsification de code avec les commits vérifiés de GitLab.</p>
<h2>Comment fonctionnent les YubiKeys ?</h2>
<p>Les YubiKeys fonctionnent comme des tokens matériels cryptographiques qui génèrent et stockent des clés privées dans un environnement sécurisé. Ces clés implémentent les protocoles d'authentification FIDO2/WebAuthn, qui peuvent être utilisés comme facteur supplémentaire pour se connecter à GitLab.</p>
<p>Voici comment la connexion fonctionne :</p>
<ol>
<li>
<p>Vous saisissez votre nom d'utilisateur et votre mot de passe.</p>
</li>
<li>
<p>GitLab envoie un défi cryptographique à votre navigateur.</p>
</li>
<li>
<p>Votre navigateur demande à la YubiKey de signer ce défi.</p>
</li>
<li>
<p>Vous touchez physiquement la YubiKey pour approuver la connexion.</p>
</li>
<li>
<p>La YubiKey crée une signature cryptographique unique pour ce service et ce défi spécifiques.</p>
</li>
<li>
<p>GitLab vérifie la signature à l'aide de votre clé publique stockée lors de la configuration.</p>
</li>
</ol>
<p>La plupart des violations de sécurité majeures sont liées à des mots de passe compromis. Une clé YubiKey garantit la sécurité de votre compte contre une violation à distance. En cas de vol de votre mot de passe, votre compte GitLab reste sécurisé.</p>
<p>La clé YubiKey offre d'autres avantages pour l'authentification sur GitLab :</p>
<ul>
<li>
<p><strong>Protection contre le phishing :</strong> les sites frauduleux n'auront pas les bonnes clés cryptographiques pour vérifier la réponse.</p>
</li>
<li>
<p><strong>Aucun secret à voler :</strong> la clé privée ne quitte jamais la YubiKey.</p>
</li>
<li>
<p><strong>Sécurité physique :</strong> une présence physique est requise pour la connexion (vous devez toucher la YubiKey).</p>
</li>
</ul>
<h2>Configuration de l'authentification multifacteur YubiKey dans GitLab</h2>
<p>Voyons maintenant comment configurer une YubiKey pour l'authentification multifacteur dans GitLab. Assurez-vous d'utiliser un <a href="https://support.yubico.com/hc/en-us/articles/360016615020-Operating-system-and-web-browser-support-for-FIDO2-and-U2F">navigateur et un système d'exploitation pris en charge</a>, car ils offrent une meilleure compatibilité WebAuthn pour les clés de sécurité matérielles.</p>
<ol>
<li>
<p>Connectez-vous à votre compte GitLab et accédez à vos paramètres utilisateur (cliquez sur votre avatar dans le coin supérieur gauche et sélectionnez <strong>Préférences</strong>).</p>
</li>
<li>
<p>Dans la barre latérale gauche, cliquez sur <strong>Compte</strong> et accédez à la section <strong>Authentification à deux facteurs</strong>.</p>
</li>
<li>
<p>Si vous n'avez pas encore activé l'authentification à deux facteurs, faites-le maintenant.</p>
<p>a. Cliquez sur <strong>Activer l'authentification à deux facteurs</strong>.</p>
<p>b. Scannez le QR code avec votre application d'authentification.</p>
<p>c. Saisissez le code fourni par votre application d'authentification.</p>
<p>d. Saisissez votre mot de passe GitLab. Si vous avez besoin d’accéder à votre compte GitLab sans utiliser l'authentification Google, vous devrez peut-être :</p>
<ul>
<li>Utiliser l'option <strong>Mot de passe oublié</strong> sur la page de connexion GitLab pour configurer un mot de passe GitLab distinct.</li>
<li>Contacter votre administrateur GitLab pour configurer une autre méthode de connexion.</li>
</ul>
<p>e. Enregistrez vos codes de récupération dans un endroit sûr.</p>
</li>
<li>
<p>Une fois l'authentification à deux facteurs activée, revenez à l'écran précédent en cliquant sur <strong>Gérer l'authentification à deux facteurs</strong> et faites défiler jusqu'à la section <strong>Enregistrer un token matériel</strong>.</p>
</li>
<li>
<p>Cliquez sur le bouton <strong>Configurer un nouvel appareil</strong>.
a. Une fenêtre contextuelle de votre navigateur devrait apparaître. <strong>Remarque :</strong> cette image peut varier selon votre navigateur. Si des fenêtres contextuelles de vos gestionnaires de mots de passe s'affichent, ignorez-les.</p>
</li>
</ol>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1749674606/Blog/Content%20Images/browser_auth_request.png" alt="Demande d'authentification du navigateur (Brave)"></p>
<p>    b. Sélectionnez <strong>Utiliser un téléphone, une tablette ou une clé de sécurité</strong>.</p>
<ol start="6">
<li>Une nouvelle fenêtre contextuelle apparaîtra.</li>
</ol>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1749674607/Blog/Content%20Images/browser_security_key_request.png" alt="Demande de clé de sécurité du navigateur"></p>
<p>    a. Insérez votre YubiKey dans le port USB de votre ordinateur.</p>
<p>    b. Touchez le contact métallique/bouton sur votre YubiKey lorsque vous y êtes invité. Le champ se remplira automatiquement avec un code à usage unique.</p>
<ol start="7">
<li>
<p>Saisissez votre mot de passe GitLab et attribuez un nom à votre clé.</p>
</li>
<li>
<p>Cliquez sur <strong>Enregistrer</strong> pour ajouter la YubiKey à votre compte.</p>
</li>
</ol>
<p>Votre YubiKey est maintenant enregistrée et peut être utilisée comme second facteur d’authentification lors de votre connexion à GitLab. Vous pouvez enregistrer plusieurs YubiKeys sur votre compte à des fins de sauvegarde. <strong>Remarque :</strong> le processus peut légèrement varier selon les navigateurs.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1749674607/Blog/Content%20Images/yubikey_registered.png" alt="Yubikey enregistrée"></p>
<p>&lt;center&gt;&lt;i&gt;Enregistrement de la YubiKey&lt;/i&gt;&lt;/center&gt;</p>
<h2>Comment se connecter avec une YubiKey sur GitLab ?</h2>
<p>Maintenant que votre  YubiKey est configurée, vous pouvez vous connecter comme suit :</p>
<ol>
<li>Accédez à GitLab.com.</li>
</ol>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1749674607/Blog/Content%20Images/gitlab_login.png" alt="Connexion à GitLab"></p>
<ol start="2">
<li>
<p>Indiquez votre nom d'utilisateur et votre mot de passe, puis cliquez sur le bouton <strong>Se connecter</strong>.</p>
</li>
<li>
<p>Vous serez redirigé vers l'écran suivant.</p>
</li>
</ol>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1749674606/Blog/Content%20Images/2fa_login.png" alt="Connexion à l'authentification à deux facteurs GitLab"></p>
<p>    a. Une fenêtre contextuelle, comme celle ci-dessous, devrait apparaître. <strong>Remarque :</strong> cette image peut varier selon votre navigateur. Si des fenêtres contextuelles de vos gestionnaires de mots de passe s'affichent, ignorez-les.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1749674607/Blog/Content%20Images/browser_security_key_request.png" alt="Demande de clé de sécurité du navigateur"></p>
<p>    b. Insérez votre YubiKey dans le port USB de votre ordinateur.</p>
<p>    c. Touchez le contact métallique/bouton sur votre YubiKey lorsque vous y êtes invité. Le champ se remplira automatiquement avec un code à usage unique.</p>
<p>Vous devriez être désormais connecté. Vous serez ensuite redirigé vers votre page GitLab.</p>
<p><strong>Remarque :</strong> le processus peut légèrement varier selon les navigateurs.</p>
<h2>Que se passe-t-il si je perds ma YubiKey ?</h2>
<p>Yubico recommande d'utiliser et de conserver une YubiKey de secours. Pensez à votre maison, votre voiture ou votre bureau : vous possédez sûrement une clé de secours dans un endroit sûr. Votre identité numérique devrait bénéficier du même niveau d’attention. Une deuxième YubiKey garantit une sauvegarde rapide et sûre si vous perdez votre clé principale et vous permet également de désactiver facilement la clé perdue et d'ajouter une nouvelle clé principale ou secondaire.</p>
<p>Si vous n'avez pas ajouté de YubiKey supplémentaire, nous vous recommandons de configurer une autre forme d'authentification à deux facteurs à vos comptes. Dans les deux cas, vous devriez être en mesure d'accéder à votre compte et de retirer la clé perdue. Veuillez noter que sans une clé de sauvegarde ou une autre méthode d'authentification, vous devrez contacter le service/site web afin d'obtenir de l'aide pour récupérer votre compte.</p>
<h2>Commits vérifiés de GitLab</h2>
<p>Pour prévenir davantage la falsification de code, vous pouvez également configurer des commits vérifiés. Dans GitLab, ceux-ci utilisent des signatures GPG (GNU Privacy Guard) pour prouver qu’un commit provient réellement de vous. Ce processus ajoute une couche de sécurité en plus de l'authentification et garantit que non seulement votre compte est sécurisé, mais aussi que chaque modification de code peut être vérifiée de façon cryptographique comme provenant de vous.</p>
<p>Votre YubiKey peut stocker des clés GPG :</p>
<ul>
<li>
<p>La clé privée est stockée en toute sécurité sur la YubiKey.</p>
</li>
<li>
<p>La clé publique est partagée avec GitLab.</p>
</li>
<li>
<p>La paire de clés est utilisée pour signer vos commits.</p>
</li>
</ul>
<p>Une fois les clés GPG configurées :</p>
<ul>
<li>
<p>Lorsque vous effectuez un commit, <a href="https://about.gitlab.com/fr-fr/blog/what-is-git/">Git</a> utilise votre clé privée pour créer une signature.</p>
</li>
<li>
<p>La clé GPG est accessible depuis la YubiKey connectée.</p>
</li>
<li>
<p>La signature est stockée avec les métadonnées du commit.</p>
</li>
<li>
<p>GitLab vérifie la signature à l'aide de votre clé publique.</p>
</li>
</ul>
<h2>Configuration des commits vérifiés</h2>
<p>Voyons comment configurer les commits vérifiés. Dans cet exemple, la clé GPG est stockée dans votre YubiKey et offre une couche de sécurité supplémentaire.</p>
<ol>
<li>Installez le logiciel requis.</li>
</ol>
<pre><code class="language-bash">

# On macOS


brew install --cask yubico-yubikey-manager


brew install gnupg gpg yubikey-manager



# On Ubuntu/Debian


sudo apt install gnupg gpg yubikey-personalization



# On Windows


# Download and install Gpg4win from https://gpg4win.org


</code></pre>
<ol start="2">
<li>Vérifiez le statut GPG de la YubiKey.</li>
</ol>
<pre><code class="language-bash">

gpg --card-status


</code></pre>
<ol start="3">
<li>Générez des clés GPG directement sur la YubiKey (processus plus sécurisé).</li>
</ol>
<pre><code class="language-bash">

# Start GPG edit mode


gpg --card-edit



# Enter admin mode


admin



# Generate key directly on card


# PIN = '123456' | Admin PIN = '12345678'


generate



# Follow prompts


# See documentation for more info


#

https://support.yubico.com/hc/en-us/articles/360013790259-Using-Your-YubiKey-with-OpenPGP


</code></pre>
<ol start="4">
<li>Exportez votre clé publique.</li>
</ol>
<pre><code class="language-bash">

# Get your key ID


gpg --list-secret-keys --keyid-format LONG



# Export the public key


gpg --armor --export YOUR_KEY_ID


</code></pre>
<ol start="5">
<li>
<p>Ajoutez la clé publique à GitLab.</p>
<p>a. Cliquez sur votre Avatar GitLab et sélectionnez <strong>Préférences</strong>.</p>
<p>b. Dans l'onglet latéral, sélectionnez <strong>Clés GPG</strong>.</p>
<p>c. Cliquez sur <strong>Ajouter une nouvelle clé</strong>.</p>
<p>d. Collez votre clé publique.</p>
<p>e. Cliquez sur <strong>Ajouter la clé</strong>.</p>
</li>
<li>
<p>Configurez Git.</p>
</li>
</ol>
<pre><code class="language-bash">

# Set signing key


git config --global user.signingkey YOUR_KEY_ID



# Enable automatic signing


git config --global commit.gpgsign true



# Tell GPG which key to use


echo &quot;default-key YOUR_KEY_ID&quot; &gt;&gt; ~/.gnupg/gpg.conf


</code></pre>
<ol start="7">
<li>Testons maintenant la configuration en créant un commit test dans un projet :</li>
</ol>
<pre><code class="language-bash">

# Make a change in the project


# Add changes


git add .



# Make a test commit


git commit -S -m &quot;Test signed commit&quot;



# Verify signature


git verify-commit HEAD



# Push the change


git push


</code></pre>
<p>La commande <code>git verify-commit HEAD</code> devrait afficher la clé GPG utilisée :</p>
<pre><code class="language-bash">

gpg: Signature made Wed Feb 26 11:45:00 2025 CST


gpg:                using RSA key YOUR_KEY_ID


gpg: Good signature from “NAME (DESCRIPTION) &lt;EMAIL&gt;&quot; [ultimate]


</code></pre>
<p>Une fois le commit effectué dans GitLab, vous devriez voir qu'il est vérifiée comme suit :</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1749674607/Blog/Content%20Images/verified.png" alt="Le commit est vérifié"></p>
<p>&lt;center&gt;&lt;i&gt;Commit vérifié avec la clé GPG&lt;/i&gt;&lt;/center&gt;</p>
<p>Vous pouvez également utiliser l'<a href="https://docs.gitlab.com/api/commits/#get-signature-of-a-commit">API des commits</a> pour vérifier la signature d’un commit, ce qui vous permet d'opérationnaliser davantage le workflow de vérification.</p>
<h2>En savoir plus</h2>
<p>Pour en savoir plus sur GitLab et Yubico, consultez ces ressources :</p>
<ul>
<li>
<p><a href="https://about.gitlab.com/fr-fr/why-gitlab/">Pourquoi choisir GitLab ?</a></p>
</li>
<li>
<p><a href="https://www.yubico.com/pourquoi-yubico/?lang=fr">Pourquoi choisir Yubico ?</a></p>
</li>
<li>
<p><a href="https://about.gitlab.com/fr-fr/solutions/application-security-testing/">Solutions de sécurité et de conformité de
GitLab</a></p>
</li>
<li>
<p><a href="https://www.yubico.com/works-with-yubikey/catalog/gitlab/">Annonce concernant GitLab dans le catalogue des plateformes compatibles avec YubiKey</a></p>
</li>
<li>
<p><a href="https://docs.gitlab.com/ee/user/project/repository/signed_commits/">Documentation sur les commits verifiés de GitLab</a></p>
</li>
<li>
<p><a href="https://docs.gitlab.com/user/project/repository/push_rules/">Règles de push dans
GitLab</a></p>
</li>
<li>
<p><a href="https://docs.gitlab.com/user/project/repository/signed_commits/gpg/">Documentation relative à la signature de commits avec des clés GPG</a></p>
</li>
</ul>
]]></content>
        <author>
            <name>Fernando Diaz</name>
            <uri>https://about.gitlab.com/blog/authors/fernando-diaz</uri>
        </author>
        <published>2025-10-01T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[GitLab nommée Leader dans le Magic Quadrant 2025 de Gartner dédié aux plateformes DevOps]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/gitlab-named-a-leader-in-the-2025-gartner-magic-quadrant-for-devops-platforms/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/gitlab-named-a-leader-in-the-2025-gartner-magic-quadrant-for-devops-platforms/"/>
        <updated>2025-09-29T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Pour la troisième année consécutive, GitLab a été nommée <strong>Leader dans le Magic Quadrant™ 2025 de Gartner® dédié aux plateformes <a href="https://about.gitlab.com/fr-fr/topics/devops/" title="Qu'est-ce que le DevOps ?">DevOps</a></strong>, pour sa capacité d'exécution et l'exhaustivité de sa vision. Plus important encore, GitLab se classe en première position dans 4 des 6 cas d'utilisation : la livraison agile de logiciels, la livraison d'applications cloud-native, l’ingénierie de plateforme et la livraison réglementée, d'après le rapport Critical Capabilities 2025 de Gartner® dédié aux plateformes DevOps qui l'accompagne.</p>
<p>Cette reconnaissance valide, selon nous, notre stratégie de plateforme complète à un moment crucial pour le développement logiciel. Les organisations s'empressent d'adopter les capacités alimentées par l'IA tout en maintenant la sécurité, la conformité et l'excellence opérationnelle. Le succès exige une approche de plateforme unifiée qui transforme la façon dont les équipes collaborent et créent de la valeur.</p>
<p>Que nos clients livrent des logiciels agiles, développent des applications cloud-native ou conçoivent des plateformes, GitLab leur permet de collaborer étroitement avec des agents d’IA pour livrer des logiciels sécurisés et fiables, plus rapidement.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1758812615/sfchvkvtczmzqlaalk7y.png" alt="Magic Quadrant™ 2025 de Gartner® pour les plateformes DevOps"></p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<blockquote>
<p><a href="https://about.gitlab.com/fr-fr/gartner-magic-quadrant/">Téléchargez les rapports</a> pour en savoir plus.</p>
</blockquote>
<h2>Une durée de création de valeur accélérée</h2>
<p>Notre mission est de permettre à chacun de contribuer et de co-créer des logiciels qui font fonctionner notre monde. <a href="https://about.gitlab.com/fr-fr/blog/gitlab-18-4-ai-native-development-with-automation-and-insight/">Le rythme rapide de notre programme d'innovation</a> démontre que nous sommes loin d'avoir terminé. Nous avons livré de nouvelles solutions à nos clients chaque mois pendant plus de 150 mois, et nous prévoyons de poursuivre cette tradition.</p>
<p>En tant que leader du secteur, nous restons déterminés à aider nos clients à transformer ces nouvelles capacités en valeur commerciale.</p>
<p>Nous sommes convaincus qu'à l'heure où l'innovation alimentée par l'IA s'accélère dans l'ensemble de l'écosystème technologique, il n'a jamais été aussi important qu'aujourd'hui d'adopter <a href="https://about.gitlab.com/fr-fr/blog/why-are-organizations-moving-to-a-unified-devsecops-platform/">une approche de plateforme unifiée</a> pour relever les défis d'ingénierie les plus complexes de nos clients. Cette approche permet aux organisations de réduire les coûts d'intégration, de combler les failles de sécurité et d'adopter l'innovation sans perturber les workflows de livraison de logiciels existants.</p>
<p>Voici quelques exemples :</p>
<ul>
<li><strong>Accélérez les releases avec l'IA agentique :</strong> les chaînes d'outils fragmentées ralentissent les revues de code et les tests. Les agents et les flows de <a href="https://about.gitlab.com/fr-fr/gitlab-duo/" title="Qu'est-ce que GitLab Duo ?">GitLab Duo</a> automatisent un certain nombre de tâches comme les revues de code, la génération de tests et le tri des vulnérabilités dans le contexte de la plateforme complète, aidant les équipes à réduire les temps de cycle et à améliorer la qualité des logiciels.</li>
<li><strong>Construisez de manière sécurisée dès le départ :</strong> de nombreuses organisations traitent la sécurité comme une réflexion après coup, ce qui entraîne des rectifications coûteuses et des lacunes en matière de conformité. GitLab intègre l'analyse, l'application des politiques et les contrôles de conformité dans les workflows quotidiens, détectant les risques le plus tôt possible sans ralentir les équipes de développement.</li>
<li><strong>Déployez avec flexibilité :</strong> les équipes soumises à des contraintes réglementaires ou opérationnelles strictes ont besoin d'options de déploiement allant au-delà du SaaS multilocataire. GitLab prend en charge les environnements SaaS, self-managed et air-gapped, afin de garantir aux clients un contrôle que les concurrents ne peuvent offrir.</li>
<li><strong>Offrez une innovation constante :</strong> la fragmentation des outils rend l'adoption de nouvelles fonctionnalités risquée et perturbatrice. Les releases mensuelles de GitLab offrent de nouvelles fonctionnalités, telles que <a href="https://about.gitlab.com/fr-fr/gitlab-duo/agent-platform/">GitLab Duo Agent Platform</a>, une gouvernance IA étendue et des intégrations cloud que les équipes peuvent adopter sans avoir à se rééquiper.</li>
</ul>
<h2>Les cas d'utilisation clients qui comptent le plus</h2>
<p>Tout comme le Magic Quadrant, nous pensons que le rapport Critical Capabilities 2025 de Gartner dédié aux plateformes DevOps évalue la capacité des plateformes à répondre aux besoins réels des clients. GitLab s'est classée en première position dans 4 des 6 cas d'utilisation présentés dans ce rapport.</p>
<p>GitLab prend en charge les domaines d'innovation suivants :</p>
<ul>
<li><strong><a href="https://about.gitlab.com/fr-fr/platform/">Ensemble d'outils intégrés</a></strong> pour une livraison cloud-native et à l'échelle de l’entreprise</li>
<li><strong><a href="https://about.gitlab.com/fr-fr/solutions/agile-delivery/">Outils de planification avancés</a></strong> et <strong><a href="https://about.gitlab.com/solutions/application-security-testing/">fonctionnalités de sécurité étendues</a></strong></li>
<li><strong><a href="https://about.gitlab.com/stages-devops-lifecycle/package/">Gestion des paquets</a></strong> et feature flags pour une livraison progressive</li>
<li><strong><a href="https://about.gitlab.com/fr-fr/solutions/analytics-and-insights/">Mesures de la chaîne de valeur</a></strong> pour une visibilité et une amélioration tout au long du cycle de développement logiciel.</li>
<li><strong><a href="https://about.gitlab.com/fr-fr/gitlab-duo/agent-platform/">Workflows avec l’IA native</a></strong>, intégrés directement dans les tâches quotidiennes</li>
</ul>
<p>Cette polyvalence se traduit par une réelle valeur ajoutée pour les clients, comme l'explique Bal Kang, Engineering Platform Lead chez NatWest :</p>
<p><em>« L'intégration des agents d’IA de GitLab Duo dans notre système d'enregistrement pour le code, les tests, le <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/">CI/CD</a> et l'ensemble du cycle de développement logiciel stimule la productivité, la vélocité et l'efficacité. Les agents comprennent l'intention, décomposent les problèmes et agissent, devenant de véritables collaborateurs pour nos équipes. »</em></p>
<p>Le passage à des plateformes unifiées représente un changement fondamental dans la façon dont les organisations abordent le développement logiciel. C'est pourquoi, selon nous, Gartner® nous a également récemment nommé <a href="https://about.gitlab.com/fr-fr/blog/gitlab-named-a-leader-in-the-2025-gartner-magic-quadrant-for-ai-code-assistants/">Leader dans le Magic Quadrant™ 2025 dédié aux assistants IA pour le code</a>.</p>
<p>Alors que les entreprises cherchent à maximiser la productivité des équipes de développement de manière sécurisée et à accélérer l'innovation, une approche de plateforme complète devient plus urgente que jamais.</p>
<blockquote>
<p><a href="https://about.gitlab.com/fr-fr/gartner-magic-quadrant/">Téléchargez les rapports</a> pour en savoir plus.</p>
</blockquote>
<p><em>Source : Gartner, Magic Quadrant for DevOps Platforms, Keith Mann, Thomas Murphy, Bill Holz, George Spafford, 22 septembre 2025</em></p>
<p><em>Source : Gartner, Critical Capabilities for DevOps Platforms, Thomas Murphy, Keith Mann, George Spafford, Bill Holz, 22 septembre 2025</em></p>
<p><em>GARTNER est une marque déposée et une marque de service de Gartner, Inc. et/ou de ses sociétés affiliées aux États-Unis et dans le monde, et MAGIC QUADRANT est une marque déposée de Gartner, Inc. et/ou de ses sociétés affiliées et sont utilisées ici avec autorisation. Tous droits réservés.</em></p>
<p><em>Gartner ne cautionne aucun fournisseur, produit ou service décrit dans ses publications de recherche et ne conseille pas aux utilisateurs de la technologie de sélectionner uniquement les fournisseurs ayant les notes les plus élevées ou toute autre désignation. Les publications de recherche de Gartner reflètent les opinions de l'organisation de recherche de Gartner et ne doivent pas être interprétées comme des déclarations de fait. Gartner décline toute garantie, expresse ou implicite, concernant cette recherche, y compris toute garantie de qualité marchande ou d'adéquation à un usage particulier.</em></p>
<p><em>Ce graphique a été publié par Gartner Inc. dans le cadre d'un rapport plus large et doit être évalué dans le contexte de l’ensemble du document. Le document Gartner est disponible sur demande auprès de Gartner B.V.</em></p>
]]></content>
        <author>
            <name>Manav Khurana</name>
            <uri>https://about.gitlab.com/blog/authors/manav-khurana</uri>
        </author>
        <published>2025-09-29T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Gestion des vulnérabilités : le guide complet pour sécuriser vos logiciels]]></title>
        <id>https://about.gitlab.com/fr-fr/blog/what-is-vulnerability-management/</id>
        <link href="https://about.gitlab.com/fr-fr/blog/what-is-vulnerability-management/"/>
        <updated>2025-09-26T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Dans un contexte où les équipes de développement doivent livrer toujours plus rapidement et où les équipes de sécurité découvrent toujours plus de failles, les entreprises font face à une tension permanente qui génère inévitablement des retards et multiplie les risques.</p>
<p>Face à ce défi, la gestion des vulnérabilités apporte une réponse concrète. En identifiant, priorisant et corrigeant les vulnérabilités de manière structurée, cette approche permet de maintenir la cadence de développement tout en renforçant la sécurité des logiciels.</p>
<p>Pour mettre en œuvre cette approche avec succès, ce guide vous présente les différents types de vulnérabilités et leurs risques, détaille chaque étape d'un processus de gestion efficace, et partage les meilleures pratiques en la matière. Vous découvrirez également comment la plateforme DevSecOps de GitLab peut optimiser cette démarche et sécuriser durablement vos développements logiciels.</p>
<h2>Qu’est-ce que la gestion des vulnérabilités ?</h2>
<p><strong>La gestion des vulnérabilités</strong>, appelée aussi <em>vulnerability management</em>, représente l'ensemble des processus destinés à identifier et à neutraliser les risques liés aux failles de sécurité dans les systèmes d'information.</p>
<p>Cette discipline essentielle de la cybersécurité s'articule autour d'un cycle qui comprend la détection proactive des vulnérabilités, leur classification selon leur niveau de sévérité, la définition des priorités de remédiation, le suivi des actions correctives et l’amélioration constante des pratiques de sécurité pour anticiper au mieux les futures menaces.</p>
<blockquote>
<p>Vous souhaitez renforcer la sécurité de vos logiciels ? Commencez un <a href="https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr/&amp;glm_content=default-saas-trial">essai gratuit de GitLab Ultimate</a> dès aujourd'hui !</p>
</blockquote>
<h2>Quels sont les différents types de vulnérabilité ?</h2>
<p>Ces vulnérabilités, variées et en constante évolution, représentent une menace permanente pour les entreprises qui doivent s’adapter continuellement à un paysage de menaces en perpétuelle mutation. Dans une démarche de gestion structurée, il convient de distinguer deux grandes familles de vulnérabilités :</p>
<ul>
<li><strong>Les vulnérabilités techniques :</strong> elles sont liées aux logiciels, au matériel ou aux protocoles utilisés dans le système d'information. Les cyberattaques s'appuient le plus souvent sur des erreurs de programmation ou de configuration du code, des défauts conceptuels ou des versions obsolètes d'un logiciel. Les vulnérabilités des dépendances logicielles, les secrets exposés dans le code et les bogues non corrigés offrent aussi un angle d'attaque aux données du système.</li>
<li><strong>Le facteur humain :</strong> il constitue le second type de vulnérabilité que les outils de gestion des vulnérabilités cherchent à maîtriser. Il peut s’agir d’une erreur humaine comme des pratiques de codage non sécurisées, d’un manque de sensibilisation aux bonnes pratiques en matière de sécurisation logicielle, ou encore d’une mauvaise communication entre les services de l’entreprise.</li>
</ul>
<h2>Quelles sont les conséquences d'une mauvaise gestion des vulnérabilités ?</h2>
<p>Une vulnérabilité non corrigée peut avoir des effets désastreux, tant sur le plan financier qu'humain. C’est une menace potentielle pour les entreprises, avec des répercussions à de nombreux niveaux :</p>
<ul>
<li><strong>Atteinte aux actifs.</strong> La compromission de la sécurité peut entraîner la perte de ressources critiques, de données stratégiques et d'informations sensibles. Cela nuit aux processus internes, aux opérations commerciales et aux relations économiques de l'entreprise.</li>
<li><strong>Pertes financières.</strong> Une faille de protection peut engendrer des coûts financiers considérables pour l’entreprise. Aux frais liés aux interruptions de service et aux pertes de productivité, il faut aussi ajouter la mise à jour des systèmes et parfois même le paiement de rançon aux cybercriminels.</li>
<li><strong>Conformité et amendes.</strong> Les incidents de sécurité exposent l'entreprise à des poursuites judiciaires et à des amendes importantes en cas de non-conformité des systèmes, de préjudices subis par des tiers, et de manquement à des réglementations telles que le Règlement Général sur la Protection des Données (RGPD).</li>
<li><strong>Perte de réputation.</strong> La vulnérabilité d'une entreprise met aussi en danger sa réputation et son image de marque. Si des informations sensibles de clients ou partenaires sont exposées, la perte de confiance qui en résulte assombrit les perspectives commerciales de l'entreprise.</li>
<li><strong>Impact sur la vélocité de développement.</strong> Les vulnérabilités découvertes tardivement dans le cycle de développement ralentissent considérablement les déploiements et augmentent les coûts de correction.</li>
</ul>
<blockquote>
<p>D’après notre <a href="https://about.gitlab.com/fr-fr/developer-survey/2024/security-compliance/">rapport Global DevSecOps 2024 sur « La sécurité des applications à l'ère du numérique »</a>, 55 % des membres de l'équipe de sécurité affirment que les vulnérabilités sont principalement découvertes par la sécurité après le merge du code dans un environnement de test.</p>
</blockquote>
<p>Pour se défendre, les entreprises se doivent d'adopter une approche proactive en matière de gestion des vulnérabilités et réduire ainsi au maximum leur surface d’attaque.</p>
<h2>Comment mettre en place un processus de gestion des vulnérabilités ?</h2>
<p>La complexité et la diversité des menaces exigent une réponse structurée et continue de la part des équipes de développement et de sécurité. Un processus de gestion des vulnérabilités efficace repose sur plusieurs étapes rigoureuses :</p>
<ol>
<li><strong>Identification des composants logiciels.</strong> Avant d'identifier des vulnérabilités, il est essentiel de connaître l'étendue du code et des dépendances utilisées. Cette étape consiste à identifier les bibliothèques, frameworks et composants présents dans les logiciels, afin d'avoir une vision claire des éléments à surveiller.</li>
<li><strong>Analyse des vulnérabilités.</strong> Cette étape consiste à rechercher activement toutes les vulnérabilités présentes dans le code source et les dépendances, en les comparant aux bases de connaissance des vulnérabilités connues afin d'identifier les menaces. Pour cela, il est recommandé de mettre en place des tests de sécurité automatisés (SAST, DAST, analyse des dépendances) afin de corriger ces vulnérabilités le plus tôt possible.</li>
<li><strong>Hiérarchisation des risques.</strong> En gestion des vulnérabilités, toute faiblesse ne présente pas le même niveau de risque. L'étape d'évaluation des risques permet de prioriser les failles en fonction de leur facilité d'exploitation, de leur <a href="https://docs.gitlab.com/user/application_security/vulnerabilities/severities/">niveau de sévérité</a>, et de leur impact potentiel sur l’entreprise et ses clients.</li>
<li><strong>Correction et vérification.</strong> Une fois les vulnérabilités identifiées et hiérarchisées, les actions correctives interviennent à travers des corrections de code, des modifications architecturales ou des mises à jour de dépendances. Les corrections sont testées avant et après la mise en production pour garantir la résolution complète des vulnérabilités. Pour accélérer ce processus, GitLab permet notamment à ses utilisateurs de suggérer des corrections automatiques et de créer des merge requests à l’aide de l’IA.</li>
<li><strong>Surveillance continue.</strong> La surveillance en temps réel permet de détecter les nouvelles expositions aux menaces et de rester agile face à l'évolution des risques. Cette surveillance doit s’opérer tout au long du développement de logiciels, avant, pendant et après la mise en production.</li>
</ol>
<p>Enfin, les processus et outils de gestion des vulnérabilités incluent une réévaluation périodique. Chaque étape est régulièrement réévaluée à mesure que le panorama des menaces change et que les logiciels et les langages de programmation évoluent. Ce cycle itératif garantit un niveau de sécurité optimal et actualisé. Une approche continue et adaptative de la gestion des vulnérabilités différencie une entreprise bien protégée d'une autre à risque.</p>
<h3>Intégrez la sécurité à chaque étape du cycle de développement avec l’approche DevSecOps</h3>
<p>L'approche <a href="https://about.gitlab.com/fr-fr/topics/devsecops/" title="Qu'est-ce que le DevSecOps ?">DevSecOps</a> représente un changement fondamental dans la gestion des vulnérabilités. Plutôt que de traiter la sécurité comme une étape finale, elle l'intègre tout au long du cycle de développement logiciel.</p>
<p>Cette approche « shift left » permet :</p>
<ul>
<li><strong>D’anticiper les risques :</strong> l'identification précoce des vulnérabilités réduit drastiquement les coûts de correction et évite les retards de livraison.
Responsabiliser les équipes : la sécurité devient une responsabilité partagée, transformant chaque membre de l'équipe en gardien de la qualité du code.</li>
<li><strong>Automatiser les processus :</strong> l'automatisation des analyses libère les équipes des tâches répétitives et accélère la résolution des problèmes.</li>
<li><strong>Améliorer la collaboration entre les équipes :</strong> le rapprochement des équipes Dev et Sec favorise une communication fluide et une résolution plus rapide des vulnérabilités.</li>
</ul>
<p>Les entreprises comme <a href="https://about.gitlab.com/fr-fr/customers/airbus/">Airbus</a> qui utilisent GitLab bénéficient de cette approche pour protéger leur code, grâce à l’ajout de scans de sécurité et de vulnérabilité aux tests d'intégration. <em>« Auparavant, toute modification d'une portion du code affectait le fonctionnement d'une autre portion. Nous pouvons désormais identifier les problèmes éventuels dès qu'un développeur effectue un push du code »</em>, explique Logan Weber, Software Automation Engineer chez Airbus.</p>
<h2>Gestion des vulnérabilités : nos bonnes pratiques</h2>
<p>L'évolution rapide des technologies et l'augmentation constante des cybermenaces oblige chaque entreprise à mettre en place les meilleures pratiques de gestion des vulnérabilités (ou vulnerability management). Elles impliquent le changement des habitudes de travail, la modernisation des méthodes de communication, et la sensibilisation des équipes, y compris du management, à ces différents sujets.</p>
<p>Découvrez nos bonnes pratiques pour sécuriser vos logiciels :</p>
<ul>
<li><strong>Approche proactive.</strong> La prévention constitue le pilier d'une stratégie de sécurité efficace. Anticiper les vulnérabilités et déployer des mesures préventives s'avère infiniment plus rentable que de réagir après qu’une faille de sécurité ne soit exploitée. Cette démarche d'anticipation, associée à une capacité d'adaptation face aux évolutions technologiques, permet aux entreprises de transformer la gestion des vulnérabilités en avantage concurrentiel plutôt qu'en contrainte opérationnelle.</li>
<li><strong>Collaboration des équipes.</strong> Les processus bureaucratiques constituent un frein majeur à la résolution rapide des vulnérabilités, affectant plus de la moitié des équipes de sécurité selon notre <a href="https://about.gitlab.com/fr-fr/developer-survey/">Rapport Global DevSecOps 2024</a>. Face à ce constat, l'établissement d'une communication directe et efficace entre les équipes DevSecOps devient essentiel. Cette collaboration optimisée facilite le partage d'informations stratégiques, accélère l'intégration des correctifs en production et garantit une prise en compte continue des enjeux de sécurité à chaque étape du développement logiciel.</li>
<li><strong>Formation des employés.</strong> Des équipes bien formées aux pratiques de codage sécurisé peuvent significativement réduire les vulnérabilités introduites dans le code. La sensibilisation aux vulnérabilités courantes, ainsi que l'utilisation d'outils d'analyse automatisée, renforcent la sécurité à chaque étape du SDLC.</li>
<li><strong>Consolidation des outils.</strong> Remplacer une multitude d'outils disparates par une plateforme unifiée réduit les inefficacités causées par le changement de contexte et améliore la visibilité globale sur la sécurité au sein de l’entreprise.</li>
</ul>
<h3>Des défis toujours à relever</h3>
<p>Les bonnes pratiques en matière de gestion des vulnérabilités reposent avant tout sur l'implication et la collaboration de toutes les équipes autour de ces questions. Les défis sont d'autant plus grands que certaines difficultés accompagnent la sécurisation des logiciels dans les environnements de développement modernes :</p>
<ul>
<li>La complexité croissante des dépendances logicielles complique l'identification des vulnérabilités et la prise de décision.</li>
<li>Une approche continue peut être difficile à maintenir pendant les périodes de forte activité de développement.</li>
<li>Les processus manuels d'analyse des vulnérabilités rendent le travail des équipes fastidieux et peu fiable.</li>
<li>Le manque de collaboration entre les équipes de développement et de sécurité ralentit le processus de résolution des vulnérabilités.</li>
<li>La détection tardive des failles de sécurité dans le cycle de développement engendre des coûts supplémentaires à l’entreprise.</li>
<li>Les exigences réglementaires complexifient la gestion des vulnérabilités.</li>
</ul>
<p>Pour relever ces défis, les entreprises doivent s'appuyer sur des outils modernes, une meilleure intégration de la sécurité dans les processus de développement et une collaboration efficace entre les équipes.</p>
<h2>Comment améliorer votre gestion des vulnérabilités avec GitLab ?</h2>
<p>GitLab adopte une approche DevSecOps intégrée qui permet aux équipes d'identifier et de corriger les vulnérabilités le plus tôt possible dans le cycle de développement logiciel.</p>
<p>Pour cela, la plateforme propose les fonctionnalités suivantes :</p>
<ul>
<li><strong>Scanners de sécurité :</strong> ces scanners incluent les tests statiques de sécurité des applications (SAST) et les tests dynamiques de sécurité des applications (DAST), l’analyse des dépendances, l’analyse des conteneurs, la détection des secrets, l’analyse de l'Infrastructure as Code (IaC), ainsi que les tests à données aléatoires. Ils s'exécutent automatiquement dans les <a href="https://about.gitlab.com/fr-fr/topics/ci-cd/cicd-pipeline/" title="Qu'est-ce qu'un pipeline CI/CD ?">pipelines CI/CD</a>, garantissant une couverture de sécurité exhaustive sans ralentir le développement.</li>
<li><strong><a href="https://about.gitlab.com/fr-fr/gitlab-duo/" title="Qu'est-ce que GitLab Duo ?">GitLab Duo</a> :</strong> GitLab Duo assiste les équipes de développement tout au long de leur processus de développement logiciel. Cette suite de fonctionnalités alimentées par l’intelligence artificielle analyse les vulnérabilités détectées, fournit des explications contextuelles et propose des solutions de corrections adaptées, permettant une résolution plus rapide et plus efficace des problèmes de sécurité.</li>
<li><strong>Tableaux de bord et rapports :</strong> les tableaux de bord de sécurité et rapports de vulnérabilités offrent une vue d'ensemble en temps réel du niveau de sécurité des logiciels. Cette visibilité facilite le suivi des corrections, la priorisation des actions et la communication avec les parties prenantes.</li>
<li><strong>Processus d’approbation :</strong> la gestion des vulnérabilités commence aussi par une bonne gestion des droits de modifications. GitLab permet d’automatiser un processus d’approbation si des vulnérabilités sont détectées, garantissant une revue poussée des modifications introduisant des vulnérabilités potentielles.</li>
</ul>
<blockquote>
<p>Vous souhaitez renforcer la sécurité de vos logiciels ? Commencez un <a href="https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr/&amp;glm_content=default-saas-trial">essai gratuit de GitLab Ultimate</a> dès aujourd'hui !</p>
</blockquote>
]]></content>
        <author>
            <name>GitLab France Team</name>
            <uri>https://about.gitlab.com/blog/authors/gitlab-france team</uri>
        </author>
        <published>2025-09-26T00:00:00.000Z</published>
    </entry>
</feed>