[{"data":1,"prerenderedAt":1163},["ShallowReactive",2],{"/fr-fr/blog/categories/engineering/page/2":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-2-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,1113,1120,1128,1135,1142,1149,1156],{"title":1098,"heroImage":1099,"category":9,"description":1100,"authors":1101,"slug":1103,"externalUrl":6},"Kubernetes : gérer les données du cluster côté frontend","https://res.cloudinary.com/about-gitlab-com/image/upload/f_auto,q_auto,c_lfill/v1750099045/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2816%29_3L7ZP4GxJrShu6qImuS4Wo_1750099045397.png","Découvrez dans ce guide tout ce que vous devez savoir sur la solution intégrée de GitLab pour surveiller l'état de vos clusters Kubernetes.",[1102],"Anna Vovchenko","kubernetes-overview-operate-cluster-data-on-the-frontend",{"title":1105,"heroImage":1106,"category":9,"description":1107,"authors":1108,"slug":1112,"externalUrl":6},"La documentation de GitLab fait peau neuve","https://res.cloudinary.com/about-gitlab-com/image/upload/f_auto,q_auto,c_lfill/blog/hero%20images/workflow_1800x945","Découvrez les fonctionnalités de notre nouvelle documentation produit, qui facilite désormais les retours et prend en charge le mode sombre tant demandé.",[1109,1110,1111],"Suzanne Selhorn","Julia Miocene","Sarah German","docs-site-design-overhaul",{"title":1114,"heroImage":1115,"category":9,"description":1116,"authors":1117,"slug":1119,"externalUrl":6},"Amélioration de la gestion des tickets créés par la communauté GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/f_auto,q_auto,c_lfill/v1749664458/Blog/Hero%20Images/Gartner_AI_Code_Assistants_Blog_Post_Cover_Image_1800x945.png","Découvrez comment nous améliorons la gestion des tickets pour prioriser le travail stratégique, optimiser la livraison de logiciels et créer des boucles de rétroaction plus efficaces avec nos utilisateurs.",[1118],"Stan Hu","inside-gitlabs-healthy-backlog-initiative",{"title":1121,"heroImage":1122,"category":9,"description":1123,"authors":1124,"slug":1127,"externalUrl":6},"Dépôts GitLab : diminution du temps de sauvegarde de 48 h à 41 min ","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097166/Blog/Hero%20Images/Blog/Hero%20Images/REFERENCE%20-%20display%20preview%20for%20blog%20images%20%282%29_2pKf8RsKzAaThmQfqHIaa7_1750097166565.png","L'optimisation d'une fonction Git vieille de 15 ans a permis d'augmenter la productivité, de renforcer les stratégies de sauvegarde et de réduire les risques.",[1125,1126],"Karthik Nayak","Manuel Kraft","how-we-decreased-gitlab-repo-backup-times-from-48-hours-to-41-minutes",{"title":1129,"heroImage":1130,"category":9,"description":1131,"authors":1132,"slug":1134,"externalUrl":6},"Comment automatiser la migration des images de conteneurs d'Amazon ECR vers GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663129/Blog/Hero%20Images/blog-image-template-1800x945__28_.png","Suivez ce guide étape par étape pour automatiser le processus de migration de vos images de conteneurs d’Amazon ECR vers GitLab.",[1133],"Tim Rizzi","automating-container-image-migration-from-amazon-ecr-to-gitlab",{"title":1136,"heroImage":1137,"category":9,"description":1138,"authors":1139,"slug":1141,"externalUrl":6},"Déployer en continu dans de multiples environnements avec les pipelines enfants","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097012/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_397632156_3Ldy1urjMStQCl4qnOBvE0_1750097011626.jpg","Découvrez comment créer un workflow rationalisé dans GitLab pour gérer le déploiement continu dans de multiples environnements.",[1140],"Olivier Dupré","using-child-pipelines-to-continuously-deploy-to-five-environments",{"title":1143,"heroImage":1144,"category":9,"description":1145,"authors":1146,"slug":1148,"externalUrl":6},"GitLab CI/CD : comment créer facilement un pipeline pour un monorepo","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749660151/Blog/Hero%20Images/blog-image-template-1800x945__26_.png","Découvrez comment configurer un pipeline CI/CD dans GitLab pour un dépôt monorepo et simplifier l'hébergement de plusieurs applications dans un seul dépôt.",[1147],"Sam Morris","building-a-gitlab-ci-cd-pipeline-for-a-monorepo-the-easy-way",{"title":1150,"heroImage":1151,"category":9,"description":1152,"authors":1153,"slug":1155,"externalUrl":6},"Comment déployer une application React sur Amazon S3 avec GitLab CI/CD","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663291/Blog/Hero%20Images/cover1.jpg","Vous souhaitez déployer une application React sur Amazon S3 avec GitLab CI/CD ? Suivez notre guide étape par étape.",[1154],"Jeremy Wagner","how-to-deploy-react-to-amazon-s3",{"title":1157,"heroImage":1158,"category":9,"description":1159,"authors":1160,"slug":1162,"externalUrl":6},"Utiliser l'API python-gitlab pour améliorer vos workflows DevSecOps","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659883/Blog/Hero%20Images/post-cover-image.jpg","Vous souhaitez améliorer vos workflows DevSecOps ? Découvrez dans ce tutoriel des exemples et bonnes pratiques d’utilisation de l’API python-gitlab.",[1161],"Michael Friedrich","efficient-devsecops-workflows-hands-on-python-gitlab-api-automation",1786803769797]