[{"data":1,"prerenderedAt":1160},["ShallowReactive",2],{"/fr-fr/blog/categories/engineering":3,"navigation-fr-fr":21,"banner-fr-fr":456,"footer-fr-fr":464,"engineering-category-page-total-items-fr-fr":703,"engineering-category-page-featured-fr-fr":704,"engineering-category-page-1-fr-fr":1096},{"id":4,"title":5,"body":6,"category":6,"config":7,"content":11,"description":6,"extension":13,"meta":14,"navigation":15,"path":16,"seo":17,"slug":6,"stem":19,"testContent":6,"type":6,"__hash__":20},"blogCategories/fr-fr/blog/categories/engineering.yml","Engineering",null,{"template":8,"slug":9,"hide":10},"BlogCategory","engineering",false,{"name":12},"Ingénierie","yml",{},true,"/fr-fr/blog/categories/engineering",{"title":12,"description":18},"Browse articles related to Ingénierie on the GitLab Blog","fr-fr/blog/categories/engineering","QgLZNRi6l7UgbB5sPrIeGPDanWZXCR-1E7llL3f2HA4",{"logo":22,"freeTrial":27,"sales":32,"login":37,"items":42,"search":371,"minimal":407,"duo":426,"switchNav":435,"pricingDeployment":446},{"config":23},{"href":24,"dataGaName":25,"dataGaLocation":26},"/fr-fr/","gitlab logo","header",{"text":28,"config":29},"Commencer un essai gratuit",{"href":30,"dataGaName":31,"dataGaLocation":26},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr&glm_content=default-saas-trial/","free trial",{"text":33,"config":34},"Demander une démo",{"href":35,"dataGaName":36,"dataGaLocation":26},"/fr-fr/sales/?contact-topic=request-demo","sales",{"text":38,"config":39},"Connexion",{"href":40,"dataGaName":41,"dataGaLocation":26},"https://gitlab.com/users/sign_in/","sign in",[43,72,174,179,293,349],{"text":44,"config":45,"menu":47},"Plateforme",{"dataNavLevelOne":46},"platform",{"type":48,"columns":49},"cards",[50,56,64],{"title":44,"description":51,"link":52},"La plateforme d'orchestration intelligente pour le DevSecOps",{"text":53,"config":54},"Explorer notre plateforme",{"href":55,"dataGaName":46,"dataGaLocation":26},"/fr-fr/platform/",{"title":57,"description":58,"link":59},"GitLab Duo Agent Platform","L'IA agentique pour l'ensemble du cycle de développement logiciel",{"text":60,"config":61},"Découvrir GitLab Duo",{"href":62,"dataGaName":63,"dataGaLocation":26},"/fr-fr/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":65,"description":66,"link":67},"Pourquoi GitLab ?","Découvrez les principales raisons pour lesquelles les entreprises choisissent GitLab",{"text":68,"config":69},"En savoir plus",{"href":70,"dataGaName":71,"dataGaLocation":26},"/fr-fr/why-gitlab/","why gitlab",{"text":73,"left":15,"config":74,"menu":76},"Produit",{"dataNavLevelOne":75},"solutions",{"type":77,"link":78,"columns":82,"feature":153},"lists",{"text":79,"config":80},"Voir toutes les solutions",{"href":81,"dataGaName":75,"dataGaLocation":26},"/fr-fr/solutions/",[83,108,131],{"title":84,"description":85,"link":86,"items":91},"Automatisation","CI/CD et automatisation pour accélérer le déploiement",{"config":87},{"icon":88,"href":89,"dataGaName":90,"dataGaLocation":26},"AutomatedCodeAlt","/fr-fr/solutions/delivery-automation/","automated software delivery",[92,96,99,104],{"text":93,"config":94},"CI/CD",{"href":95,"dataGaLocation":26,"dataGaName":93},"/fr-fr/solutions/continuous-integration/",{"text":57,"config":97},{"href":62,"dataGaLocation":26,"dataGaName":98},"gitlab duo agent platform - product menu",{"text":100,"config":101},"Gestion du code source",{"href":102,"dataGaLocation":26,"dataGaName":103},"/fr-fr/solutions/source-code-management/","Source Code Management",{"text":105,"config":106},"Livraison de logiciels automatisée",{"href":89,"dataGaLocation":26,"dataGaName":107},"Automated software delivery",{"title":109,"description":110,"link":111,"items":116},"Sécurité","Livrez du code plus rapidement sans compromettre la sécurité",{"config":112},{"href":113,"dataGaName":114,"dataGaLocation":26,"icon":115},"/fr-fr/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[117,121,126],{"text":118,"config":119},"Tests de sécurité des applications",{"href":113,"dataGaName":120,"dataGaLocation":26},"Application security testing",{"text":122,"config":123},"Sécurité de la chaîne d'approvisionnement logicielle",{"href":124,"dataGaLocation":26,"dataGaName":125},"/fr-fr/solutions/supply-chain/","Software supply chain security",{"text":127,"config":128},"Conformité logicielle",{"href":129,"dataGaName":130,"dataGaLocation":26},"/fr-fr/solutions/software-compliance/","software compliance",{"title":132,"link":133,"items":138},"Mesures",{"config":134},{"icon":135,"href":136,"dataGaName":137,"dataGaLocation":26},"DigitalTransformation","/fr-fr/solutions/visibility-measurement/","visibility and measurement",[139,143,148],{"text":140,"config":141},"Visibilité et mesures",{"href":136,"dataGaLocation":26,"dataGaName":142},"Visibility and Measurement",{"text":144,"config":145},"Gestion de la chaîne de valeur",{"href":146,"dataGaLocation":26,"dataGaName":147},"/fr-fr/solutions/value-stream-management/","Value Stream Management",{"text":149,"config":150},"Analyses et informations",{"href":151,"dataGaLocation":26,"dataGaName":152},"/fr-fr/solutions/analytics-and-insights/","Analytics and insights",{"title":154,"type":77,"items":155},"GitLab",[156,162,168],{"text":157,"config":158},"Entreprises",{"icon":159,"href":160,"dataGaLocation":26,"dataGaName":161},"Building","/fr-fr/enterprise/","enterprise",{"text":163,"config":164},"Pour les PME",{"icon":165,"href":166,"dataGaLocation":26,"dataGaName":167},"Work","/fr-fr/small-business/","small business",{"text":169,"config":170},"Pour le secteur public",{"icon":171,"href":172,"dataGaLocation":26,"dataGaName":173},"Organization","/fr-fr/solutions/public-sector/","public sector",{"text":175,"config":176},"Tarifs",{"href":177,"dataGaName":178,"dataGaLocation":26,"dataNavLevelOne":178},"/fr-fr/pricing/","pricing",{"text":180,"config":181,"menu":183},"Ressources",{"dataNavLevelOne":182},"resources",{"type":77,"link":184,"columns":188,"feature":282},{"text":185,"config":186},"Afficher toutes les ressources",{"href":187,"dataGaName":182,"dataGaLocation":26},"/fr-fr/resources/",[189,222,249],{"title":190,"items":191},"Premiers pas",[192,197,202,207,212,217],{"text":193,"config":194},"Installation",{"href":195,"dataGaName":196,"dataGaLocation":26},"/fr-fr/install/","install",{"text":198,"config":199},"Guides de démarrage",{"href":200,"dataGaName":201,"dataGaLocation":26},"/fr-fr/get-started/","quick setup checklists",{"text":203,"config":204},"Apprentissage",{"href":205,"dataGaLocation":26,"dataGaName":206},"https://university.gitlab.com/","learn",{"text":208,"config":209},"Documentation",{"href":210,"dataGaName":211,"dataGaLocation":26},"https://docs.gitlab.com/","product documentation",{"text":213,"config":214},"Vidéos sur les bonnes pratiques",{"href":215,"dataGaName":216,"dataGaLocation":26},"/fr-fr/getting-started-videos/","best practice videos",{"text":218,"config":219},"Intégrations",{"href":220,"dataGaName":221,"dataGaLocation":26},"/fr-fr/integrations/","integrations",{"title":223,"items":224},"Découvrir",[225,230,235,240,244],{"text":226,"config":227},"Témoignages clients",{"href":228,"dataGaName":229,"dataGaLocation":26},"/fr-fr/customers/","customer success stories",{"text":231,"config":232},"Blog",{"href":233,"dataGaName":234,"dataGaLocation":26},"/fr-fr/blog/","blog",{"text":236,"config":237},"Demo Hub",{"href":238,"dataGaName":239,"dataGaLocation":26},"/fr-fr/demo-hub/","demo hub",{"text":241,"config":242},"The Source",{"href":243,"dataGaName":234,"dataGaLocation":26},"/fr-fr/the-source/",{"text":245,"config":246},"Travail à distance",{"href":247,"dataGaName":248,"dataGaLocation":26},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":250,"items":251},"Connecter",[252,257,262,267,272,277],{"text":253,"config":254},"Services GitLab",{"href":255,"dataGaName":256,"dataGaLocation":26},"/fr-fr/services/","services",{"text":258,"config":259},"Contribuer",{"href":260,"dataGaName":261,"dataGaLocation":26},"https://contributors.gitlab.com","contribute",{"text":263,"config":264},"Communauté",{"href":265,"dataGaName":266,"dataGaLocation":26},"/community/","community",{"text":268,"config":269},"Forum",{"href":270,"dataGaName":271,"dataGaLocation":26},"https://forum.gitlab.com/","forum",{"text":273,"config":274},"Événements",{"href":275,"dataGaName":276,"dataGaLocation":26},"/events/","events",{"text":278,"config":279},"Partenaires",{"href":280,"dataGaName":281,"dataGaLocation":26},"/fr-fr/partners/","partners",{"config":283,"title":286,"text":287,"link":288},{"background":284,"textColor":285},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","Nouveautés de GitLab","Découvrez les dernières fonctionnalités et améliorations.",{"text":289,"config":290},"Lire les articles les plus récents",{"href":291,"dataGaName":292,"dataGaLocation":26},"/fr-fr/whats-new/","whats new",{"text":294,"config":295,"menu":297},"Société",{"dataNavLevelOne":296},"company",{"type":77,"columns":298},[299],{"items":300},[301,306,312,314,319,324,329,334,339,344],{"text":302,"config":303},"À propos",{"href":304,"dataGaName":305,"dataGaLocation":26},"/fr-fr/company/","about",{"text":307,"config":308,"footerGa":311},"Carrières",{"href":309,"dataGaName":310,"dataGaLocation":26},"/jobs/","jobs",{"dataGaName":310},{"text":273,"config":313},{"href":275,"dataGaName":276,"dataGaLocation":26},{"text":315,"config":316},"Leadership",{"href":317,"dataGaName":318,"dataGaLocation":26},"/company/team/e-group/","leadership",{"text":320,"config":321},"Manuel",{"href":322,"dataGaName":323,"dataGaLocation":26},"https://handbook.gitlab.com/","handbook",{"text":325,"config":326},"Relations avec les investisseurs",{"href":327,"dataGaName":328,"dataGaLocation":26},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":330,"config":331},"Trust Center",{"href":332,"dataGaName":333,"dataGaLocation":26},"/fr-fr/security/","trust center",{"text":335,"config":336},"Centre pour la transparence de l'IA",{"href":337,"dataGaName":338,"dataGaLocation":26},"/fr-fr/ai-transparency-center/","ai transparency center",{"text":340,"config":341},"Newsletter",{"href":342,"dataGaName":343,"dataGaLocation":26},"/company/contact/#contact-forms","newsletter",{"text":345,"config":346},"Presse",{"href":347,"dataGaName":348,"dataGaLocation":26},"/press/","press",{"text":350,"config":351,"menu":352},"Nous contacter",{"dataNavLevelOne":296},{"type":77,"columns":353},[354],{"items":355},[356,361,366],{"text":357,"config":358},"Contacter l'équipe commerciale",{"href":359,"dataGaName":360,"dataGaLocation":26},"/fr-fr/sales/","talk to sales",{"text":362,"config":363},"Assistance GitLab",{"href":364,"dataGaName":365,"dataGaLocation":26},"https://support.gitlab.com/hc/en-us","support portal",{"text":367,"config":368},"Portail clients GitLab",{"href":369,"dataGaName":370,"dataGaLocation":26},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":372,"login":373,"suggestions":380},"Fermer",{"text":374,"link":375},"Pour rechercher des dépôts et des projets, connectez-vous à",{"text":376,"config":377},"GitLab.com",{"href":40,"dataGaName":378,"dataGaLocation":379},"search login","search",{"text":381,"default":382},"Suggestions",[383,386,391,393,398,403],{"text":57,"config":384},{"href":62,"dataGaName":385,"dataGaLocation":379},"GitLab Duo Agent Platform",{"text":387,"config":388},"Suggestions de code (IA)",{"href":389,"dataGaName":390,"dataGaLocation":379},"/fr-fr/solutions/code-suggestions/","Code Suggestions (AI)",{"text":93,"config":392},{"href":95,"dataGaName":93,"dataGaLocation":379},{"text":394,"config":395},"GitLab sur AWS",{"href":396,"dataGaName":397,"dataGaLocation":379},"/fr-fr/partners/technology-partners/aws/","GitLab on AWS",{"text":399,"config":400},"GitLab sur Google Cloud",{"href":401,"dataGaName":402,"dataGaLocation":379},"/fr-fr/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":404,"config":405},"Pourquoi utiliser GitLab ?",{"href":70,"dataGaName":406,"dataGaLocation":379},"Why GitLab?",{"freeTrial":408,"mobileIcon":413,"desktopIcon":418,"secondaryButton":421},{"text":409,"config":410},"Commencer votre essai gratuit",{"href":411,"dataGaName":31,"dataGaLocation":412},"https://gitlab.com/-/trials/new/","nav",{"altText":414,"config":415},"Icône GitLab",{"src":416,"dataGaName":417,"dataGaLocation":412},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":414,"config":419},{"src":420,"dataGaName":417,"dataGaLocation":412},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":422,"config":423},"Commencer",{"href":424,"dataGaName":425,"dataGaLocation":412},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr/get-started/","get started",{"freeTrial":427,"mobileIcon":431,"desktopIcon":433},{"text":428,"config":429},"En savoir plus sur GitLab Duo",{"href":62,"dataGaName":430,"dataGaLocation":412},"gitlab duo",{"altText":414,"config":432},{"src":416,"dataGaName":417,"dataGaLocation":412},{"altText":414,"config":434},{"src":420,"dataGaName":417,"dataGaLocation":412},{"button":436,"mobileIcon":441,"desktopIcon":443},{"text":437,"config":438},"/switch",{"href":439,"dataGaName":440,"dataGaLocation":412},"#contact","switch",{"altText":414,"config":442},{"src":416,"dataGaName":417,"dataGaLocation":412},{"altText":414,"config":444},{"src":445,"dataGaName":417,"dataGaLocation":412},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":447,"mobileIcon":452,"desktopIcon":454},{"text":448,"config":449},"Retour aux tarifs",{"href":177,"dataGaName":450,"dataGaLocation":412,"icon":451},"back to pricing","GoBack",{"altText":414,"config":453},{"src":416,"dataGaName":417,"dataGaLocation":412},{"altText":414,"config":455},{"src":420,"dataGaName":417,"dataGaLocation":412},{"title":457,"button":458,"config":462},"GitLab Orbit est arrivé : la couche de contexte pour les agents d'IA.",{"text":68,"config":459},{"href":460,"dataGaName":461,"dataGaLocation":26},"/fr-fr/gitlab-orbit/","orbit",{"layout":463,"disabled":10},"release",{"data":465},{"text":466,"source":467,"edit":473,"contribute":478,"config":482,"items":487,"minimal":695},"Git est une marque déposée de Software Freedom Conservancy et notre utilisation de « GitLab » est sous licence.",{"text":468,"config":469},"Afficher le code source de la page",{"href":470,"dataGaName":471,"dataGaLocation":472},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":474,"config":475},"Modifier cette page",{"href":476,"dataGaName":477,"dataGaLocation":472},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":258,"config":479},{"href":480,"dataGaName":481,"dataGaLocation":472},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":483,"facebook":484,"youtube":485,"linkedin":486},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[488,534,587,630,662],{"title":175,"links":489,"subMenu":504},[490,494,499],{"text":491,"config":492},"Voir les forfaits",{"href":177,"dataGaName":493,"dataGaLocation":472},"view plans",{"text":495,"config":496},"GitLab Premium",{"href":497,"dataGaName":498,"dataGaLocation":472},"/fr-fr/pricing/premium/","why premium",{"text":500,"config":501},"GitLab Ultimate",{"href":502,"dataGaName":503,"dataGaLocation":472},"/fr-fr/pricing/ultimate/","why ultimate",[505],{"title":350,"links":506},[507,509,511,514,519,524,529],{"text":357,"config":508},{"href":359,"dataGaName":36,"dataGaLocation":472},{"text":362,"config":510},{"href":364,"dataGaName":365,"dataGaLocation":472},{"text":512,"config":513},"Portail clients",{"href":369,"dataGaName":370,"dataGaLocation":472},{"text":515,"config":516},"Statut",{"href":517,"dataGaName":518,"dataGaLocation":472},"https://status.gitlab.com/","status",{"text":520,"config":521},"Conditions d'utilisation",{"href":522,"dataGaName":523,"dataGaLocation":472},"/terms/","terms of use",{"text":525,"config":526},"Politique de confidentialité",{"href":527,"dataGaName":528,"dataGaLocation":472},"/fr-fr/privacy/","privacy statement",{"text":530,"config":531},"Gestion des cookies",{"dataGaName":532,"dataGaLocation":472,"id":533,"isOneTrustButton":15},"cookie preferences","ot-sdk-btn",{"title":73,"links":535,"subMenu":544},[536,540],{"text":537,"config":538},"Plateforme DevSecOps",{"href":55,"dataGaName":539,"dataGaLocation":472},"devsecops platform",{"text":541,"config":542},"Développement assisté par l'IA",{"href":62,"dataGaName":543,"dataGaLocation":472},"ai-assisted development",[545],{"title":546,"links":547},"Thèmes",[548,552,557,562,567,572,577,582],{"text":93,"config":549},{"href":550,"dataGaName":551,"dataGaLocation":472},"/fr-fr/topics/ci-cd/","cicd",{"text":553,"config":554},"GitOps",{"href":555,"dataGaName":556,"dataGaLocation":472},"/fr-fr/topics/gitops/","gitops",{"text":558,"config":559},"DevOps",{"href":560,"dataGaName":561,"dataGaLocation":472},"/fr-fr/topics/devops/","devops",{"text":563,"config":564},"Contrôle de version",{"href":565,"dataGaName":566,"dataGaLocation":472},"/fr-fr/topics/version-control/","version control",{"text":568,"config":569},"DevSecOps",{"href":570,"dataGaName":571,"dataGaLocation":472},"/fr-fr/topics/devsecops/","devsecops",{"text":573,"config":574},"Cloud-native",{"href":575,"dataGaName":576,"dataGaLocation":472},"/fr-fr/topics/cloud-native/","cloud native",{"text":578,"config":579},"IA pour la programmation",{"href":580,"dataGaName":581,"dataGaLocation":472},"/fr-fr/topics/devops/ai-for-coding/","ai for coding",{"text":583,"config":584},"IA agentique",{"href":585,"dataGaName":586,"dataGaLocation":472},"/fr-fr/topics/agentic-ai/","agentic ai",{"title":588,"links":589},"Solutions",[590,593,595,600,603,606,609,612,614,617,620,625],{"text":118,"config":591},{"href":113,"dataGaName":592,"dataGaLocation":472},"Application Security Testing",{"text":105,"config":594},{"href":89,"dataGaName":90,"dataGaLocation":472},{"text":596,"config":597},"Développement Agile",{"href":598,"dataGaName":599,"dataGaLocation":472},"/fr-fr/solutions/agile-delivery/","agile delivery",{"text":100,"config":601},{"href":102,"dataGaName":602,"dataGaLocation":472},"source code management",{"text":93,"config":604},{"href":95,"dataGaName":605,"dataGaLocation":472},"continuous integration & delivery",{"text":144,"config":607},{"href":146,"dataGaName":608,"dataGaLocation":472},"value stream management",{"text":553,"config":610},{"href":611,"dataGaName":556,"dataGaLocation":472},"/fr-fr/solutions/gitops/",{"text":157,"config":613},{"href":160,"dataGaName":161,"dataGaLocation":472},{"text":615,"config":616},"PME",{"href":166,"dataGaName":167,"dataGaLocation":472},{"text":618,"config":619},"Secteur public",{"href":172,"dataGaName":173,"dataGaLocation":472},{"text":621,"config":622},"Éducation",{"href":623,"dataGaName":624,"dataGaLocation":472},"/fr-fr/solutions/education/","education",{"text":626,"config":627},"Services financiers",{"href":628,"dataGaName":629,"dataGaLocation":472},"/fr-fr/solutions/finance/","financial services",{"title":180,"links":631},[632,634,636,638,641,643,646,648,650,652,654,656,658,660],{"text":193,"config":633},{"href":195,"dataGaName":196,"dataGaLocation":472},{"text":198,"config":635},{"href":200,"dataGaName":201,"dataGaLocation":472},{"text":203,"config":637},{"href":205,"dataGaName":206,"dataGaLocation":472},{"text":208,"config":639},{"href":210,"dataGaName":640,"dataGaLocation":472},"docs",{"text":231,"config":642},{"href":233,"dataGaName":234,"dataGaLocation":472},{"text":644,"config":645},"Nouveautés",{"href":291,"dataGaName":292,"dataGaLocation":472},{"text":226,"config":647},{"href":228,"dataGaName":229,"dataGaLocation":472},{"text":245,"config":649},{"href":247,"dataGaName":248,"dataGaLocation":472},{"text":253,"config":651},{"href":255,"dataGaName":256,"dataGaLocation":472},{"text":258,"config":653},{"href":260,"dataGaName":261,"dataGaLocation":472},{"text":263,"config":655},{"href":265,"dataGaName":266,"dataGaLocation":472},{"text":268,"config":657},{"href":270,"dataGaName":271,"dataGaLocation":472},{"text":273,"config":659},{"href":275,"dataGaName":276,"dataGaLocation":472},{"text":278,"config":661},{"href":280,"dataGaName":281,"dataGaLocation":472},{"title":294,"links":663},[664,666,668,670,672,674,679,684,686,688,690],{"text":302,"config":665},{"href":304,"dataGaName":296,"dataGaLocation":472},{"text":307,"config":667},{"href":309,"dataGaName":310,"dataGaLocation":472},{"text":315,"config":669},{"href":317,"dataGaName":318,"dataGaLocation":472},{"text":320,"config":671},{"href":322,"dataGaName":323,"dataGaLocation":472},{"text":325,"config":673},{"href":327,"dataGaName":328,"dataGaLocation":472},{"text":675,"config":676},"Développement durable",{"href":677,"dataGaName":678,"dataGaLocation":472},"/sustainability/","Sustainability",{"text":680,"config":681},"Diversité, inclusion et appartenance (DIB)",{"href":682,"dataGaName":683,"dataGaLocation":472},"/fr-fr/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":330,"config":685},{"href":332,"dataGaName":333,"dataGaLocation":472},{"text":340,"config":687},{"href":342,"dataGaName":343,"dataGaLocation":472},{"text":345,"config":689},{"href":347,"dataGaName":348,"dataGaLocation":472},{"text":691,"config":692},"Déclaration de transparence sur l'esclavage moderne",{"href":693,"dataGaName":694,"dataGaLocation":472},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":696},[697,699,701],{"text":520,"config":698},{"href":522,"dataGaName":523,"dataGaLocation":472},{"text":530,"config":700},{"dataGaName":532,"dataGaLocation":472,"id":533,"isOneTrustButton":15},{"text":525,"config":702},{"href":527,"dataGaName":528,"dataGaLocation":472},28,{"id":705,"title":706,"authors":707,"body":709,"category":9,"date":1081,"description":1082,"extension":1083,"externalUrl":6,"faq":6,"featured":15,"heroImage":1084,"meta":1085,"navigation":15,"path":1086,"seo":1087,"slug":1090,"stem":1091,"tags":1092,"template":1094,"updatedDate":6,"__hash__":1095},"blogPosts/fr-fr/blog/green-devops-carbon-measurement-cicd-pipeline.md","Green DevOps : l'importance de mesurer le bilan carbone de vos pipelines CI/CD",[708],"Lysanne Pinto",{"type":710,"value":711,"toc":1069},"minimark",[712,723,729,739,744,747,751,754,759,767,770,774,811,814,824,828,835,970,973,977,983,986,989,992,996,999,1008,1016,1024,1028,1037,1040,1044,1065],[713,714,715,716,722],"p",{},"Une équipe logicielle type exécute des centaines de jobs ",[717,718,93],"a",{"href":719,"rel":720,"title":721},"https://about.gitlab.com/fr-fr/topics/ci-cd/",[],"Qu'est-ce que le CI/CD ?"," par jour. Chacun d'entre eux consomme des ressources de calcul et de l'énergie qui n'apparaissent pas dans les logs de vos pipelines, tout comme son empreinte carbone. C’est précisément cette invisibilité qui pose problème.",[713,724,725],{},[726,727,728],"strong",{},"Vous ne pouvez pas réduire ce que vous ne mesurez pas.",[713,730,731,732,738],{},"Les intégrations tierces Eco CI et Carmen ajoutent des données sur l'impact carbone aux pipelines que vous exécutez déjà dans GitLab. Ces deux outils ",[717,733,737],{"href":734,"rel":735,"title":736},"https://about.gitlab.com/fr-fr/blog/what-is-open-source/",[],"Qu'est-ce que l'open source ?","open source"," peuvent être intégrés dès aujourd'hui à n'importe quel pipeline. Découvrez pourquoi leur intégration en vaut la peine et comment vous lancer dans le Green DevOps.",[740,741,743],"h2",{"id":742},"limportance-du-green-devops","L'importance du Green DevOps",[713,745,746],{},"L'empreinte de calcul d'un pipeline moderne ne cesse de croître. Les tests assistés par l'IA, la revue de code et l'automatisation des pipelines génèrent tous des jobs qui n'existaient pas il y a quelques années, et impliquent tous un coût énergétique qui n'apparaît jamais dans les métriques de vos pipelines ni dans votre schéma d'architecture. Le Green DevOps vise à changer cette situation : il consiste à mesurer les émissions par exécution de pipeline, par service et par pod, puis à utiliser ces données pour prendre de meilleures décisions d'ingénierie.",[740,748,750],{"id":749},"où-lempreinte-carbone-apparaît-elle-dans-votre-pile","Où l'empreinte carbone apparaît-elle dans votre pile ?",[713,752,753],{},"Les deux couches les plus exploitables pour les équipes d'ingénierie sont les suivantes :",[755,756,758],"h3",{"id":757},"le-pipeline","Le pipeline",[713,760,761,766],{},[717,762,765],{"href":763,"rel":764},"https://docs.gitlab.com/ci/sustainability/eco_ci/",[],"Eco CI"," mesure la consommation d'énergie et les émissions de carbone de vos jobs CI/CD. Il s'exécute sous forme de scripts Bash légers, sans serveurs ni bases de données distincts. Vous obtenez des données d'émissions par job, identifiez les jobs les plus gourmands en ressources, suivez les tendances dans le temps et affichez un badge carbone dans votre README.",[713,768,769],{},"Pour la plupart des équipes, il s'agit d'un bon point de départ. Votre pipeline est déjà instrumenté ; Eco CI y ajoute simplement des données sur l'empreinte carbone.",[755,771,773],{"id":772},"linfrastructure-et-les-applications","L'infrastructure et les applications",[713,775,776,781,782,787,788,794,795,801,802,806,807,810],{},[717,777,780],{"href":778,"rel":779},"https://docs.gitlab.com/ci/sustainability/carmen/",[],"Carmen"," (Carbon Measurement Engine) va plus loin. Basé sur le ",[717,783,786],{"href":784,"rel":785},"https://if.greensoftware.foundation/",[],"Green Software Foundation Impact Framework",", il mesure les émissions des machines virtuelles, des pods et des charges de travail applicatives individuelles qui s'exécutent dans ",[717,789,793],{"href":790,"rel":791,"title":792},"https://about.gitlab.com/fr-fr/blog/kubernetes-the-container-orchestration-solution/",[],"Qu'est-ce que Kubernetes ?","Kubernetes",". Vous obtenez un rapport CSV par composant, ventilé entre carbone opérationnel (consommation d'énergie) et carbone incorporé (fabrication et mise au rebut du matériel), que vous pouvez injecter dans Grafana, dans vos tableaux de bord ",[717,796,800],{"href":797,"rel":798,"title":799},"https://about.gitlab.com/fr-fr/blog/what-is-finops/",[],"Qu'est-ce que FinOps ?","FinOps"," ou dans vos propres outils. Les champs de sortie incluent ",[803,804,805],"code",{},"EnergykWh"," et ",[803,808,809],{},"TotalCarbonGramsCO2eq"," par composant : les données s'intègrent donc aux tableaux de bord existants sans avoir besoin d'être transformées.",[713,812,813],{},"Carmen se révèle particulièrement puissant pour répondre aux questions suivantes :",[815,816,817,821],"ul",{},[818,819,820],"li",{},"Quel service de notre pile émet le plus de CO2 ?",[818,822,823],{},"Comment se positionne notre passerelle API face à notre couche de traitement des données ?",[740,825,827],{"id":826},"testez-ces-intégrations-dans-votre-pipeline","Testez ces intégrations dans votre pipeline",[713,829,830,831,834],{},"Les deux outils s'intègrent directement dans ",[803,832,833],{},".gitlab-ci.yml",". Voici à quoi ressemble un job Carmen :",[836,837,842],"pre",{"className":838,"code":839,"language":840,"meta":841,"style":841},"language-yaml shiki shiki-themes github-light","carbon-report:\n  image: python:3.12\n  before_script:\n    # Install Carmen and the IF toolchain\n    - apt-get update && apt-get install -y nodejs npm git lsb-release\n    - git clone https://github.com/Green-Software-Foundation/if-carmen.git\n    - npm install -g \"@grnsft/if@1.0.0\" \"@grnsft/if-plugins@0.3.2\" \"@grnsft/if-unofficial-plugins@0.3.1\"\n    - pip install --upgrade pip && pip install -e $CI_PROJECT_DIR/if-carmen\n  script:\n    - cd $CI_PROJECT_DIR/if-carmen/example-data && carbon-daemon\n  artifacts:\n    paths:\n      - if-carmen/example-data/output/\n    expire_in: 1 week\n","yaml","",[803,843,844,857,870,878,885,894,902,910,918,926,934,942,950,959],{"__ignoreMap":841},[845,846,849,853],"span",{"class":847,"line":848},"line",1,[845,850,852],{"class":851},"shJU0","carbon-report",[845,854,856],{"class":855},"sgsFI",":\n",[845,858,860,863,866],{"class":847,"line":859},2,[845,861,862],{"class":851},"  image",[845,864,865],{"class":855},": ",[845,867,869],{"class":868},"sYBdl","python:3.12\n",[845,871,873,876],{"class":847,"line":872},3,[845,874,875],{"class":851},"  before_script",[845,877,856],{"class":855},[845,879,881],{"class":847,"line":880},4,[845,882,884],{"class":883},"sAwPA","    # Install Carmen and the IF toolchain\n",[845,886,888,891],{"class":847,"line":887},5,[845,889,890],{"class":855},"    - ",[845,892,893],{"class":868},"apt-get update && apt-get install -y nodejs npm git lsb-release\n",[845,895,897,899],{"class":847,"line":896},6,[845,898,890],{"class":855},[845,900,901],{"class":868},"git clone https://github.com/Green-Software-Foundation/if-carmen.git\n",[845,903,905,907],{"class":847,"line":904},7,[845,906,890],{"class":855},[845,908,909],{"class":868},"npm install -g \"@grnsft/if@1.0.0\" \"@grnsft/if-plugins@0.3.2\" \"@grnsft/if-unofficial-plugins@0.3.1\"\n",[845,911,913,915],{"class":847,"line":912},8,[845,914,890],{"class":855},[845,916,917],{"class":868},"pip install --upgrade pip && pip install -e $CI_PROJECT_DIR/if-carmen\n",[845,919,921,924],{"class":847,"line":920},9,[845,922,923],{"class":851},"  script",[845,925,856],{"class":855},[845,927,929,931],{"class":847,"line":928},10,[845,930,890],{"class":855},[845,932,933],{"class":868},"cd $CI_PROJECT_DIR/if-carmen/example-data && carbon-daemon\n",[845,935,937,940],{"class":847,"line":936},11,[845,938,939],{"class":851},"  artifacts",[845,941,856],{"class":855},[845,943,945,948],{"class":847,"line":944},12,[845,946,947],{"class":851},"    paths",[845,949,856],{"class":855},[845,951,953,956],{"class":847,"line":952},13,[845,954,955],{"class":855},"      - ",[845,957,958],{"class":868},"if-carmen/example-data/output/\n",[845,960,962,965,967],{"class":847,"line":961},14,[845,963,964],{"class":851},"    expire_in",[845,966,865],{"class":855},[845,968,969],{"class":868},"1 week\n",[713,971,972],{},"Exécutez-le et téléchargez l'artefact pour obtenir votre premier rapport carbone.",[740,974,976],{"id":975},"en-pratique","En pratique",[713,978,979,980,982],{},"Imaginez une équipe qui exécute des centaines de jobs de pipeline chaque jour. Elle ajoute Eco CI en un après-midi, avec quelques lignes dans ",[803,981,833],{}," et un badge dans le README. Son premier rapport hebdomadaire fait apparaître un constat inattendu : sa suite de tests d'intégration représente une part disproportionnée des émissions totales du pipeline, plus que tout autre type de job.",[713,984,985],{},"Le coupable n'est pas les tests eux-mêmes, mais leur configuration : chaque exécution réinstalle l'intégralité de ses dépendances à partir de zéro. Mettre en cache la couche des dépendances peut réduire à la fois la durée d'exécution des jobs de test et leur empreinte carbone. Aucune nouvelle infrastructure est nécessaire, ni aucune décision d'architecture. Il suffit d'ajouter une simple ligne de configuration du cache.",[713,987,988],{},"Six semaines plus tard, l'équipe exécute Carmen sur son cluster de préproduction et découvre un problème d'un autre ordre : un service de traitement de données hérité d'une fonctionnalité obsolète tourne toujours, à vide, et consomme du carbone incorporé et opérationnel pour des tâches qui n'ont plus lieu d'être. L'équipe n'a alors qu'à ouvrir un ticket pour terminer le service.",[713,990,991],{},"Aucun de ces correctifs n'a exigé d'initiative dédiée au développement durable, il suffisait juste de les rendre visibles. La plupart des pertes carbone ne sont pas intentionnelles : elles sont invisibles, et c'est précisément ce qu'Eco CI et Carmen visent à corriger.",[740,993,995],{"id":994},"peu-defforts-un-vrai-retour-sur-investissement","Peu d'efforts, un vrai retour sur investissement",[713,997,998],{},"Cette stratégie Green DevOps demande peu d'efforts, car elle s'intègre à des pipelines que vous exécutez déjà. Elle offre également un vrai retour sur investissement : les données s'accumulent, que ce soit sous forme de socle de conformité ou de facture CI réduite.",[713,1000,1001,1004,1007],{},[726,1002,1003],{},"Les petits chiffres permettent d’établir une base de référence",[1005,1006],"br",{},"\nAu niveau d'une entreprise, les émissions des pipelines représentent probablement un chiffre négligeable. Mais la mesure ne concerne pas uniquement une part dans le total. Il s'agit de construire les données, les outils et la culture dont vous aurez besoin à mesure que les exigences en matière de rapports sur les émissions évoluent. Les équipes qui mesurent dès aujourd'hui leur empreinte carbone disposeront déjà de bases de référence et d'habitudes internes le jour venu, au lieu de partir de zéro sous la pression.",[713,1009,1010,1013,1015],{},[726,1011,1012],{},"Le processus s'intègre aux pipelines dont vous disposez déjà",[1005,1014],{},"\nEco CI se résume à quelques lignes et un script Bash. Il ne déclenche pas d'infrastructure supplémentaire et n'ajoute pas de latence significative. Carmen s'exécute comme un job distinct et non bloquant. Aucun des deux n'est situé sur votre chemin critique. Si votre pipeline peut exécuter une vérification de linting, il peut exécuter une mesure de l'empreinte carbone.",[713,1017,1018,1021,1023],{},[726,1019,1020],{},"Le retour sur investissement se reflète aussi dans vos indicateurs FinOps",[1005,1022],{},"\nUn code économe en carbone est souvent aussi un code plus rapide et moins coûteux. Les pipelines surdimensionnés consomment du temps de développement et du budget cloud avant de consommer du carbone. Le cache qui réduit les émissions peut également contribuer à réduire votre facture CI. Le dimensionnement optimal des runners représente un atout tant pour le FinOps que pour le développement durable, et vous n'avez pas besoin de le présenter comme une initiative environnementale pour en tirer profit.",[740,1025,1027],{"id":1026},"une-perspective-plus-large","Une perspective plus large",[713,1029,1030,1031,1036],{},"La conscience de son empreinte carbone devient une exigence professionnelle pour l'ingénierie, et non plus un simple atout. Des réglementations comme la ",[717,1032,1035],{"href":1033,"rel":1034},"https://finance.ec.europa.eu/financial-markets/company-reporting-and-auditing/company-reporting/corporate-sustainability-reporting_en",[],"directive concernant la publication d'informations en matière de durabilité par les entreprises"," obligent les grandes entreprises à publier les émissions générées tout au long de leur chaîne de valeur, y compris celles liées à l'usage du cloud. Les entreprises interrogent de plus en plus leurs fournisseurs sur leurs pratiques en matière de développement durable lors des processus d'achat.",[713,1038,1039],{},"Vous n'avez pas besoin d'attendre une obligation réglementaire pour vous lancer : ajoutez Eco CI à un pipeline, puis introduisez Carmen pour obtenir une vision au niveau de l'infrastructure.",[740,1041,1043],{"id":1042},"pour-aller-plus-loin","Pour aller plus loin",[815,1045,1046,1053,1059],{},[818,1047,1048],{},[717,1049,1052],{"href":1050,"rel":1051},"https://docs.gitlab.com/ci/sustainability/",[],"Vue d'ensemble du développement durable CI/CD",[818,1054,1055],{},[717,1056,1058],{"href":763,"rel":1057},[],"Intégration d'Eco CI",[818,1060,1061],{},[717,1062,1064],{"href":778,"rel":1063},[],"Intégration de Carmen",[1066,1067,1068],"style",{},"html pre.shiki code .shJU0, html code.shiki .shJU0{--shiki-default:#22863A}html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":841,"searchDepth":859,"depth":859,"links":1070},[1071,1072,1076,1077,1078,1079,1080],{"id":742,"depth":859,"text":743},{"id":749,"depth":859,"text":750,"children":1073},[1074,1075],{"id":757,"depth":872,"text":758},{"id":772,"depth":872,"text":773},{"id":826,"depth":859,"text":827},{"id":975,"depth":859,"text":976},{"id":994,"depth":859,"text":995},{"id":1026,"depth":859,"text":1027},{"id":1042,"depth":859,"text":1043},"2026-07-22","Les pipelines CI/CD ont un bilan carbone caché. Découvrez pourquoi il est crucial de le mesurer et comment vous lancer avec Eco CI et Carmen dans GitLab.","md","https://res.cloudinary.com/about-gitlab-com/image/upload/v1765809212/noh0mdfn9o94ry9ykura.png",{},"/fr-fr/blog/green-devops-carbon-measurement-cicd-pipeline",{"title":1088,"description":1089},"Green DevOps : mesurer le bilan carbone des pipelines CI/CD","Les pipelines CI/CD ont un bilan carbone caché. Découvrez pourquoi il est important de le mesurer et comment vous lancer avec Eco CI et Carmen dans GitLab.","green-devops-carbon-measurement-cicd-pipeline","fr-fr/blog/green-devops-carbon-measurement-cicd-pipeline",[1093,561],"ci-cd","BlogPost","p0N4scA8qi4VcwOz66bsQXTkfqxALe-LV-OMf15jOI4",[1097,1104,1111,1118,1125,1132,1140,1147,1154],{"title":1098,"heroImage":1099,"category":9,"description":1100,"authors":1101,"slug":1103,"externalUrl":6},"Comment mettre en place l'observabilité CI/CD à grande échelle","https://res.cloudinary.com/about-gitlab-com/image/upload/f_auto,q_auto,c_lfill/v1774465167/n5hlvrsrheadeccyr1oz.png","Ce guide pratique consacré à l'analyse des pipelines GitLab aide les utilisateurs de GitLab Self-Managed à obtenir des indicateurs opérationnels exploitables grâce à Prometheus et Grafana.",[1102],"Paul Meresanu","how-to-build-ci-cd-observability-at-scale",{"title":1105,"heroImage":1106,"category":9,"description":1107,"authors":1108,"slug":1110,"externalUrl":6},"5 modèles de pipeline GitLab pour résoudre vos enjeux d'ingénierie","https://res.cloudinary.com/about-gitlab-com/image/upload/v1772721753/frfsm1qfscwrmsyzj1qn.png","Découvrez comment faire évoluer votre approche CI/CD avec des modèles composables pour les monorepos, les microservices, les environnements et la gouvernance.",[1109],"Omid Khan","5-ways-gitlab-pipeline-logic-solves-real-engineering-problems",{"title":1112,"heroImage":1113,"category":9,"description":1114,"authors":1115,"slug":1117,"externalUrl":6},"Comment utiliser le registre de conteneurs GitLab avec les images durcies Docker","https://res.cloudinary.com/about-gitlab-com/image/upload/f_auto,q_auto,c_lfill/v1772111172/mwhgbjawn62kymfwrhle.png","Simplifiez la gestion des images de conteneurs grâce à ce guide pas à pas.",[1116],"Tim Rizzi","using-gitlab-container-virtual-registry-with-docker-hardened-images",{"title":1119,"heroImage":1120,"category":9,"description":1121,"authors":1122,"slug":1124,"externalUrl":6},"GitLab Duo Agentic Chat : renforcez votre code avec les règles personnalisées","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099203/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2820%29_2bJGC5ZP3WheoqzlLT05C5_1750099203484.png","Découvrez comment l'IA peut comprendre votre code source, suivre vos conventions et générer du code prêt pour la production avec un minimum de cycles de revue.",[1123],"Michael Friedrich","custom-rules-duo-agentic-chat-deep-dive",{"title":1126,"heroImage":1127,"category":9,"description":1128,"authors":1129,"slug":1131,"externalUrl":6},"Comment déployer la plus grande instance GitLab 12 fois par jour","https://res.cloudinary.com/about-gitlab-com/image/upload/f_auto,q_auto,c_lfill/v1764108112/tyntnsy3xotlmehtnfkb.png","Plongez au cœur du pipeline de déploiement de GitLab.com, des déploiements progressifs, des stratégies canari aux migrations de base de données en passant par la compatibilité multi-versions.",[1130],"John Skarbek","continuously-deploying-the-largest-gitlab-instance",{"title":1133,"heroImage":1134,"category":9,"description":1135,"authors":1136,"slug":1139,"externalUrl":6},"Migrer d'Azure DevOps vers GitLab :  le guide complet","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749658924/Blog/Hero%20Images/securitylifecycle-light.png","Découvrez comment migrer d'Azure DevOps vers GitLab à l'aide des outils de migration des Services professionnels de GitLab, de la planification à l'exécution en passant par les tâches de suivi post-migration.",[1137,1138],"Evgeny Rudinsky","Michael Leopard","migration-from-azure-devops-to-gitlab",{"title":1141,"heroImage":1142,"category":9,"description":1143,"authors":1144,"slug":1146,"externalUrl":6},"Rust : développement sécurisé avec GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1756314674/tct6zf6evw0xgddd2vo3.png","Découvrez comment GitLab prend en charge le développement en Rust grâce à ses capacités CI/CD, ses analyses de sécurité, ses intégrations dédiées et ses fonctionnalités d'IA.",[1145],"Fernando Diaz","secure-rust-development-with-gitlab",{"title":1148,"heroImage":1120,"category":9,"description":1149,"authors":1150,"slug":1153,"externalUrl":6},"GitLab transforme les cycles de test des systèmes embarqués","Découvrez comment les environnements de cycle de vie gérés rationalisent et automatisent les tests virtuels grâce à un retour rapide sans multiplication des environnements ni augmentation des coûts.",[1151,1152],"Matt DeLaney","Darwin Sanoy","how-gitlab-transforms-embedded-systems-testing-cycles",{"title":1155,"heroImage":1156,"category":9,"description":1157,"authors":1158,"slug":1159,"externalUrl":6},"Clonage Git : optimisez vos workflows avec Git Much Faster","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098264/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_519147119_2RafH61mqosMZv8HGAlsUj_1750098264407.jpg","Avec le script Git Much Faster, diminuez considérablement les temps de clonage Git et l'espace disque utilisé, jusqu'à 93 et 98 %, respectivement.",[1152],"supercharge-your-git-workflows",1786803746356]