[{"data":1,"prerenderedAt":1449},["ShallowReactive",2],{"/fr-fr/blog/gitlab-as-your-aws-control-plane":3,"navigation-fr-fr":690,"banner-fr-fr":1122,"footer-fr-fr":1129,"blog-post-authors-fr-fr-Javier Urones Monteserín, Clober|Péter Bozsó":1377,"blog-related-posts-fr-fr-gitlab-as-your-aws-control-plane":1405,"blog-share-wrapper-fr-fr":1430,"next-steps-fr-fr":1440},{"id":4,"title":5,"authors":6,"body":9,"category":670,"date":671,"description":672,"extension":673,"externalUrl":674,"faq":674,"featured":675,"heroImage":676,"meta":677,"navigation":678,"path":679,"seo":680,"slug":683,"stem":684,"tags":685,"template":688,"updatedDate":674,"__hash__":689},"blogPosts/fr-fr/blog/gitlab-as-your-aws-control-plane.md","D'OpenTofu à Argo CD, avec GitLab comme plan de contrôle AWS",[7,8],"Javier Urones Monteserín, Clober","Péter Bozsó",{"type":10,"value":11,"toc":659},"minimark",[12,16,46,51,61,64,101,111,137,140,182,185,188,205,219,223,226,236,243,281,306,309,320,327,330,342,345,351,354,358,361,364,370,373,376,379,420,424,427,430,433,439,442,445,477,480,483,486,497,500,504,507,510,516,519,543,546,549,576,579,585,588,592,595,616,634,638],[13,14,15],"p",{},"La configuration d'environnements cloud est une opération complexe, qui implique de prendre en compte la mise en réseau, les abonnements, les services et l'ensemble des composants constituant l'infrastructure sous-jacente. Une configuration manuelle est source d'erreurs, manque de cohérence et s'avère difficile à reproduire.",[13,17,18,19,25,26,32,33,39,40,45],{},"Ce tutoriel explique comment mettre en place un environnement cloud entièrement automatisé en utilisant GitLab comme plateforme opérationnelle centrale. L'intégralité de l'infrastructure cloud est définie sous forme de code (hébergé sur GitLab) et déployée sur AWS avec ",[20,21,24],"a",{"href":22,"rel":23},"https://opentofu.org/",[],"OpenTofu"," via des pipelines ",[20,27,31],{"href":28,"rel":29,"title":30},"https://about.gitlab.com/fr-fr/blog/what-is-gitlab-ci-cd/",[],"Qu'est-ce que GitLab CI/CD ?","GitLab CI/CD",". Ces pipelines gèrent également le build et le déploiement d'une application web réelle, en appliquant les pratiques ",[20,34,38],{"href":35,"rel":36,"title":37},"https://about.gitlab.com/fr-fr/topics/gitops/",[],"Qu'est-ce que GitOps ?","GitOps"," avec ",[20,41,44],{"href":42,"rel":43},"https://argoproj.github.io/cd/",[],"Argo CD",".",[47,48,50],"h2",{"id":49},"pourquoi-linfrastructure-as-code-et-gitops","Pourquoi l'Infrastructure as Code et GitOps ?",[13,52,53,54,60],{},"Avant tout, il est important de comprendre pourquoi l'",[20,55,59],{"href":56,"rel":57,"title":58},"https://about.gitlab.com/fr-fr/topics/gitops/infrastructure-as-code/",[],"Qu'est-ce que l'infrastructure en tant que code ?","Infrastructure as Code (IaC)"," et GitOps sont essentiels, et comment GitLab réunit ces pratiques au sein d'une seule et même plateforme.",[13,62,63],{},"L'IaC garantit que les environnements sont :",[65,66,67,75,95],"ul",{},[68,69,70,74],"li",{},[71,72,73],"strong",{},"Reproductibles"," : la même configuration peut être déployée n'importe où.",[68,76,77,80,81,87,88,94],{},[71,78,79],{},"Versionnés"," : chaque modification est suivie dans un système de ",[20,82,86],{"href":83,"rel":84,"title":85},"https://about.gitlab.com/fr-fr/topics/version-control/",[],"Qu'est-ce que le contrôle de version ?","contrôle de version (VCS)",", ",[20,89,93],{"href":90,"rel":91,"title":92},"https://about.gitlab.com/fr-fr/blog/what-is-git/",[],"Qu'est-ce que Git ?","Git"," étant le choix de référence.",[68,96,97,100],{},[71,98,99],{},"Automatisés"," : aucune intervention humaine n'est nécessaire.",[13,102,103,104,110],{},"GitOps étend ces principes au cycle de vie des applications. Plutôt que d'appliquer manuellement des modifications aux clusters ",[20,105,109],{"href":106,"rel":107,"title":108},"https://about.gitlab.com/fr-fr/blog/kubernetes-the-container-orchestration-solution/",[],"Qu'est-ce que Kubernetes ?","Kubernetes"," (ou à d'autres infrastructures), l'état souhaité des applications est défini dans Git. Un opérateur GitOps comme Argo CD veille en permanence à ce que le cluster reflète le contenu du dépôt. Cette approche assure :",[65,112,113,119,125,131],{},[68,114,115,118],{},[71,116,117],{},"Une cohérence"," entre les environnements.",[68,120,121,124],{},[71,122,123],{},"Une reprise accélérée"," grâce à des retours à la version précédente aussi simples que l'annulation d'un commit.",[68,126,127,130],{},[71,128,129],{},"Une meilleure collaboration",", car les équipes peuvent vérifier et approuver les modifications via des merge requests.",[68,132,133,136],{},[71,134,135],{},"Une sécurité renforcée",", les déploiements étant effectués sans que les équipes de développement aient besoin d'un accès direct au cluster.",[13,138,139],{},"GitLab réunit toutes les capacités nécessaires à cette approche :",[65,141,142,152,162,172],{},[68,143,144,151],{},[71,145,146],{},[20,147,150],{"href":148,"rel":149},"https://docs.gitlab.com/user/get_started/get_started_managing_code/",[],"Gestion du code source"," : suivez l'infrastructure et le code applicatif au même endroit.",[68,153,154,161],{},[71,155,156],{},[20,157,160],{"href":158,"rel":159},"https://docs.gitlab.com/ci/",[],"Pipelines CI/CD"," : automatisez le provisionnement avec OpenTofu et les déploiements avec les manifestes Kubernetes.",[68,163,164,171],{},[71,165,166],{},[20,167,170],{"href":168,"rel":169},"https://docs.gitlab.com/user/infrastructure/iac/terraform_state/",[],"États Terraform"," : stockez et gérez les fichiers d'état de l'infrastructure en toute sécurité.",[68,173,174,181],{},[71,175,176],{},[20,177,180],{"href":178,"rel":179},"https://docs.gitlab.com/user/packages/container_registry/",[],"Registre de conteneurs"," : compilez, stockez et gérez les images de conteneurs aux côtés du code et des pipelines.",[13,183,184],{},"Avec GitLab, toutes les étapes, du provisionnement de l'infrastructure cloud à la livraison des applications, s'effectuent sur une seule et même plateforme.",[13,186,187],{},"Pour suivre ce tutoriel, vous aurez besoin des éléments suivants :",[65,189,190,193,196,199,202],{},[68,191,192],{},"Des connaissances de base sur les pipelines GitLab CI/CD et Git",[68,194,195],{},"Des connaissances de base sur l'IaC (Terraform ou OpenTofu) et GitOps",[68,197,198],{},"Un compte AWS",[68,200,201],{},"Un cluster Kubernetes (EKS est provisionné dans le tutoriel)",[68,203,204],{},"Un Dockerfile pour l'application web de démonstration",[13,206,207,208,213,214,45],{},"Poursuivez votre lecture pour découvrir comment reproduire cet exemple dans votre propre environnement GitLab. Le code source de cet ",[20,209,212],{"href":210,"rel":211},"https://gitlab.com/gitlab-partners-public/satec/aws-summit-2025-demo",[],"exemple"," est disponible dans le ",[20,215,218],{"href":216,"rel":217},"https://gitlab.com/gitlab-partners-public/satec",[],"groupe de démos publiques SATEC",[47,220,222],{"id":221},"provisionner-un-environnement-aws-complet-réseau-eks-avec-opentofu","Provisionner un environnement AWS complet (réseau, EKS) avec OpenTofu",[13,224,225],{},"La première étape consiste à provisionner l'infrastructure cloud avec OpenTofu (le fork open source de Terraform). Nous pouvons définir de manière déclarative les composants réseau et créer un cluster Amazon EKS.",[13,227,228,229,235],{},"Pour assurer la reproductibilité et la sécurité de ce processus, nous nous appuyons sur les ",[20,230,234],{"href":231,"rel":232,"title":233},"https://about.gitlab.com/fr-fr/blog/demystifying-ci-cd-variables/",[],"Variables CI/CD","variables CI/CD"," de GitLab plutôt que sur des valeurs codées en dur. Ces variables permettent de configurer l'environnement AWS de façon dynamique d'un pipeline à l'autre.",[13,237,238,239,242],{},"Les variables d'environnement suivantes sont requises et doivent être déclarées sous ",[71,240,241],{},"Paramètres > CI/CD > Variables"," dans le groupe parent (afin d'être héritées par tous les projets) :",[65,244,245,251,257,263,269,275],{},[68,246,247,250],{},[71,248,249],{},"TF_VAR_region"," : région AWS où l'infrastructure sera créée (ex. : eu-west-1)",[68,252,253,256],{},[71,254,255],{},"TF_VAR_instance_type"," : type d'instance EC2 pour les nœuds de travail (ex. : t3.medium)",[68,258,259,262],{},[71,260,261],{},"TF_VAR_instance_count"," : nombre de nœuds de travail dans le cluster",[68,264,265,268],{},[71,266,267],{},"TF_VAR_cluster_name"," : nom du cluster EKS à provisionner",[68,270,271,274],{},[71,272,273],{},"AWS_ACCESS_KEY_ID"," : clé d'accès AWS pour l'authentification",[68,276,277,280],{},[71,278,279],{},"AWS_SECRET_ACCESS_KEY"," : clé secrète AWS pour l'authentification",[13,282,283,284,288,289,292,293,299,300,305],{},"Toutes les variables sont définies comme ",[285,286,287],"em",{},"protégées"," dans GitLab, et les plus sensibles, comme la clé d'accès secrète AWS, sont également ",[285,290,291],{},"masquées",", ce qui garantit qu'elles ne sont exposées que dans des contextes ",[20,294,298],{"href":295,"rel":296,"title":297},"https://about.gitlab.com/fr-fr/topics/ci-cd/",[],"Qu'est-ce que le CI/CD ?","CI/CD"," sécurisés. La sécurité peut être renforcée davantage en suivant ",[20,301,304],{"href":302,"rel":303},"https://docs.gitlab.com/ci/variables/#cicd-variable-security",[],"ce tutoriel sur les variables CI/CD",". La séparation du code et de la configuration assure la flexibilité du pipeline et son indépendance face aux environnements.",[13,307,308],{},"Une fois configuré, le pipeline OpenTofu peut être exécuté automatiquement pour :",[65,310,311,314,317],{},[68,312,313],{},"Provisionner les ressources réseau (VPC, sous-réseaux, passerelles, tables de routage)",[68,315,316],{},"Provisionner le plan de contrôle EKS et les groupes de nœuds de travail",[68,318,319],{},"Déclencher le pipeline de déploiement d'Argo CD et de CertManager dans le nouveau cluster",[13,321,322],{},[323,324],"img",{"alt":325,"src":326},"Fonctionnement du processus de provisionnement de l'infrastructure","https://res.cloudinary.com/about-gitlab-com/image/upload/v1786721848/raobe2rbwouolxuakbdl.png",[13,328,329],{},"Le schéma ci-dessus illustre le fonctionnement du processus de provisionnement de l'infrastructure.",[331,332,333,336,339],"ol",{},[68,334,335],{},"Un pipeline GitLab est déclenché depuis le dépôt d'infrastructure, qui contient les fichiers de configuration Terraform/OpenTofu.",[68,337,338],{},"GitLab CI/CD exécute les commandes OpenTofu, en utilisant le backend d'état Terraform intégré pour gérer le fichier d'état de manière sécurisée dans GitLab.",[68,340,341],{},"OpenTofu se connecte à AWS via des fournisseurs configurés pour créer toutes les ressources nécessaires : le VPC, les sous-réseaux, les passerelles, les équilibreurs de charge et le cluster Amazon EKS réparti sur plusieurs zones de disponibilité.",[13,343,344],{},"À l'issue de cette étape, l'environnement AWS et le cluster Kubernetes sont entièrement provisionnés et prêts à fonctionner.",[13,346,347],{},[323,348],{"alt":349,"src":350},"Environnement AWS et cluster Kubernetes entièrement provisionnés","https://res.cloudinary.com/about-gitlab-com/image/upload/v1786721902/z6fbu78rw9xprgkrju9p.png",[13,352,353],{},"La dernière étape de ce processus (post-déploiement) consiste à déclencher un second pipeline GitLab (hébergé dans un dépôt dédié), chargé de déployer automatiquement Argo CD et CertManager dans le nouveau cluster EKS à l'aide du fournisseur Helm.",[47,355,357],{"id":356},"configurer-automatiquement-les-outils-kubernetes-argo-cd-certmanager","Configurer automatiquement les outils Kubernetes (Argo CD, CertManager)",[13,359,360],{},"Une fois l'infrastructure AWS et le cluster EKS provisionnés avec succès, l'étape suivante consiste à configurer les outils Kubernetes nécessaires au fonctionnement de l'environnement : Argo CD, CertManager et Ingress NGINX Controller.",[13,362,363],{},"Ce processus est entièrement automatisé via un second pipeline GitLab hébergé dans un dépôt distinct.",[13,365,366],{},[323,367],{"alt":368,"src":369},"Second pipeline GitLab hébergé dans un dépôt distinct","https://res.cloudinary.com/about-gitlab-com/image/upload/v1786721969/tgupmzi9q557f0nivgb7.png",[13,371,372],{},"L'exécution de ce second pipeline est déclenchée automatiquement depuis le pipeline d'infrastructure, via un job de déclenchement, dès que l'étape de provisionnement OpenTofu s'est achevée avec succès.",[13,374,375],{},"Concrètement, le déploiement de ces composants essentiels s'effectue de manière transparente dans le cadre du même workflow de bout en bout, sans aucune étape manuelle. Le déploiement lui-même est géré par OpenTofu via le fournisseur Helm, ce qui permet de gérer les charts Helm de façon déclarative sous forme de code via GitLab.",[13,377,378],{},"Voici un workflow simplifié :",[331,380,381,387,410,413],{},[68,382,383,386],{},[71,384,385],{},"Le premier pipeline"," fournit le cluster EKS et déclenche le second via un job de déclenchement GitLab.",[68,388,389,392,393],{},[71,390,391],{},"Le second pipeline"," utilise OpenTofu avec le fournisseur Helm pour :",[65,394,395,398,401,404],{},[68,396,397],{},"Télécharger le fichier kubeconfig depuis le cluster EKS.",[68,399,400],{},"Installer Argo CD (pour la gestion GitOps).",[68,402,403],{},"Installer CertManager (pour la gestion automatisée des certificats TLS).",[68,405,406,407],{},"Installer Ingress NGINX Controller (pour le routage du trafic entrant). ",[285,408,409],{},"Remarque : Ingress NGINX Controller est en cours de dépréciation dans l'écosystème Kubernetes ; pour les nouveaux déploiements, il est recommandé d'envisager d'autres options telles que Traefik ou une approche basée sur une passerelle API.",[68,411,412],{},"Chaque release Helm est définie dans la configuration OpenTofu, ce qui permet les mises à niveau ou les retours à la version précédente via des modifications standard du code d'infrastructure.",[68,414,415,416,419],{},"Enfin, ",[71,417,418],{},"un troisième pipeline"," est déclenché pour déployer l'application web de démonstration. Ce pipeline applique les manifestes d'application Argo CD qui définissent l'application web et ses ressources associées.",[47,421,423],{"id":422},"déployer-une-application-web-de-démonstration-selon-les-principes-gitops-avec-argo-cd","Déployer une application web de démonstration selon les principes GitOps avec Argo CD",[13,425,426],{},"Une fois tous les composants Kubernetes essentiels installés (Argo CD, CertManager et Ingress NGINX Controller), la dernière étape du pipeline d'automatisation commence. Cette étape est exécutée automatiquement dès la fin du processus d'installation du chart Helm.",[13,428,429],{},"Un troisième pipeline GitLab est déclenché, chargé de déployer une application web de démonstration dans le cluster EKS nouvellement créé via Argo CD.",[13,431,432],{},"Le schéma ci-dessous illustre le processus global :",[13,434,435],{},[323,436],{"alt":437,"src":438},"GitLab utilise le fichier kubeconfig généré par OpenTofu pour se connecter au cluster et appliquer les manifestes d'application Argo CD qui définissent l'état souhaité de l'application web","https://res.cloudinary.com/about-gitlab-com/image/upload/v1786722029/aw36utqgxlj6ipmw6rgj.png",[13,440,441],{},"Dans cette étape, GitLab utilise le fichier kubeconfig généré par OpenTofu pour se connecter au cluster et appliquer les manifestes d'application Argo CD qui définissent l'état souhaité de l'application web.",[13,443,444],{},"Le pipeline :",[65,446,447,453,459,465,471],{},[68,448,449,452],{},[71,450,451],{},"Télécharge et met à jour le fichier kubeconfig"," pour se connecter au cluster EKS.",[68,454,455,458],{},[71,456,457],{},"Met à jour les identifiants et les informations du dépôt"," de façon dynamique via des variables CI/CD.",[68,460,461,464],{},[71,462,463],{},"Crée l'espace de nommage Kubernetes"," pour l'application (aws-summit-app).",[68,466,467,470],{},[71,468,469],{},"Applique les manifestes Argo CD"," (repository.yaml, application.yaml, cluster-issuer.yaml).",[68,472,473,476],{},[71,474,475],{},"Crée un secret pour le registre de conteneurs"," afin de permettre à l'application de récupérer les images de manière sécurisée depuis GitLab à l'aide d'un jeton d'accès.",[13,478,479],{},"Toutes ces actions sont effectuées automatiquement via GitLab CI/CD, sans aucune intervention manuelle.",[13,481,482],{},"Une fois les manifestes appliqués, le contrôleur Argo CD les détecte et synchronise l'état de l'application avec le dépôt, déployant ainsi l'application web de démonstration dans le cluster EKS.",[13,484,485],{},"Le résultat est un environnement Kubernetes entièrement opérationnel, dans lequel :",[65,487,488,491,494],{},[68,489,490],{},"L'infrastructure est provisionnée avec OpenTofu.",[68,492,493],{},"Les outils du cluster sont installés de façon déclarative avec Helm.",[68,495,496],{},"Les applications sont déployées et gérées via GitOps avec Argo CD.",[13,498,499],{},"Cette approche garantit une automatisation, une traçabilité et une reproductibilité de bout en bout, le tout géré par GitLab.",[47,501,503],{"id":502},"compiler-et-empaqueter-une-application-web-de-démonstration-avec-gitlab-cicd","Compiler et empaqueter une application web de démonstration avec GitLab CI/CD",[13,505,506],{},"Avant d'être déployée via Argo CD, l'application doit d'abord être compilée, conteneurisée et publiée dans le registre de conteneurs de GitLab.",[13,508,509],{},"Ce processus est géré par un pipeline CI/CD dédié et suit une structure de dépôt GitOps, dans laquelle le code source et les manifestes Kubernetes sont stockés dans des dépôts distincts.",[13,511,512],{},[323,513],{"alt":514,"src":515},"Un pipeline CI/CD dédié suivant une structure de dépôt GitOps","https://res.cloudinary.com/about-gitlab-com/image/upload/v1786722075/nqscss5qee8sdydrej0d.png",[13,517,518],{},"Dans cette configuration, le groupe GitLab est organisé en deux sections principales :",[65,520,521,532],{},[68,522,523,526,527],{},[71,524,525],{},"Apps/"," contient les dépôts de code source des applications.",[65,528,529],{},[68,530,531],{},"Exemple : aws-summit-app/web héberge le code source de l'application web de démonstration.",[68,533,534,537,538],{},[71,535,536],{},"Deployments/"," contient les dépôts avec les manifestes Kubernetes pour chaque application.",[65,539,540],{},[68,541,542],{},"Exemple : aws-summit-app/web, sous Deployments/, définit les manifestes Kubernetes permettant de déployer la page web (deployment.yaml, ingress.yaml, service.yaml, etc.).",[13,544,545],{},"Cette séparation assure un workflow GitOps clair, car le code applicatif et les configurations de déploiement sont indépendants tout en restant synchronisés grâce à l'automatisation.",[13,547,548],{},"Le pipeline CI/CD défini dans le dépôt de l'application automatise les tâches suivantes :",[65,550,551,564,570],{},[68,552,553,556,557,563],{},[71,554,555],{},"Build et empaquetage"," : le pipeline compile le code source et construit l'image ",[20,558,562],{"href":559,"rel":560,"title":561},"https://about.gitlab.com/fr-fr/blog/what-is-docker-comprehensive-guide/",[],"Qu'est-ce que Docker ?","Docker"," à partir du Dockerfile fourni.",[68,565,566,569],{},[71,567,568],{},"Publication dans le registre de conteneurs de GitLab"," : l'image est automatiquement taguée et envoyée vers le registre de conteneurs de GitLab intégré.",[68,571,572,575],{},[71,573,574],{},"Mise à jour des manifestes de déploiement"," : une fois l'image publiée, le pipeline exécute un job qui met à jour la référence de l'image dans le dépôt de déploiement correspondant (sous Deployments/aws-summit-app/web).",[13,577,578],{},"Ces opérations sont effectuées automatiquement par un commit avec le nouveau tag d'image ou la création d'une merge request.",[13,580,581],{},[323,582],{"alt":583,"src":584},"Création d'un commit avec le nouveau tag d'image ou création d'une merge request","https://res.cloudinary.com/about-gitlab-com/image/upload/v1786722113/zdh3bk63swvxibhaw5m9.png",[13,586,587],{},"Une fois le commit ou la merge request créés, Argo CD détecte automatiquement la modification dans le dépôt de déploiement et synchronise les manifestes mis à jour avec le cluster Kubernetes afin de garantir le déploiement de la nouvelle version de l'application sans aucune intervention manuelle.",[47,589,591],{"id":590},"récapitulatif","Récapitulatif",[13,593,594],{},"Ce tutoriel a montré comment mettre en place un environnement cloud entièrement automatisé avec GitLab comme hub central pour atteindre les objectifs fixés : une infrastructure reproductible, versionnée et automatisée. En combinant OpenTofu pour le provisionnement de l'infrastructure, GitLab CI/CD pour l'orchestration des pipelines et Argo CD pour la livraison d'applications basée sur GitOps, les équipes peuvent gérer l'intégralité du cycle de vie, des ressources cloud aux applications en production, via une plateforme unique.",[13,596,597,598,87,604,609,610,615],{},"En tant que partenaire GitLab disposant d'une expertise approfondie en matière d'infrastructure cloud et en pratiques ",[20,599,603],{"href":600,"rel":601,"title":602},"https://about.gitlab.com/fr-fr/topics/devsecops/",[],"Qu'est-ce que DevSecOps ?","DevSecOps",[20,605,608],{"href":606,"rel":607},"https://www.clober.tech/",[],"Clober"," (groupe ",[20,611,614],{"href":612,"rel":613},"https://www.satec.es/en",[],"SATEC",") peut aider les organisations à mettre en œuvre des environnements automatisés similaires, adaptés à leurs besoins spécifiques.",[13,617,618],{},[285,619,620,621,626,627,609,630,633],{},"Remarque : cet article de blog est basé sur une démonstration en direct présentée à l'origine lors de l'",[20,622,625],{"href":623,"rel":624},"https://aws.amazon.com/es/events/summits/madrid/",[],"AWS Summit Madrid 2025"," par l'équipe DevSecOps de ",[20,628,608],{"href":606,"rel":629},[],[20,631,614],{"href":612,"rel":632},[],").",[47,635,637],{"id":636},"ressources","Ressources",[65,639,640,647,653],{},[68,641,642],{},[20,643,646],{"href":644,"rel":645},"https://docs.gitlab.com/ci/components/",[],"Composants GitLab CI/CD",[68,648,649],{},[20,650,652],{"href":178,"rel":651},[],"Registre de conteneurs de GitLab",[68,654,655],{},[20,656,658],{"href":168,"rel":657},[],"Gestion des états Terraform avec GitLab",{"title":660,"searchDepth":661,"depth":661,"links":662},"",2,[663,664,665,666,667,668,669],{"id":49,"depth":661,"text":50},{"id":221,"depth":661,"text":222},{"id":356,"depth":661,"text":357},{"id":422,"depth":661,"text":423},{"id":502,"depth":661,"text":503},{"id":590,"depth":661,"text":591},{"id":636,"depth":661,"text":637},"engineering","2026-09-02","Automatisez l'infrastructure AWS et la livraison d'applications de bout en bout : OpenTofu provisionne EKS, GitLab CI/CD compile et empaquète, Argo CD déploie via GitOps.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773865762/yti4ngyppos6amxsv0dj.png",{},true,"/fr-fr/blog/gitlab-as-your-aws-control-plane",{"title":681,"description":672,"config":682},"D'OpenTofu à Argo CD : GitLab comme plan de contrôle AWS",{"noIndex":675},"gitlab-as-your-aws-control-plane","fr-fr/blog/gitlab-as-your-aws-control-plane",[686,38,687],"AWS","partners","BlogPost","mqfEfzvkq_dJKM8Ty1w_dpydQliIqp-rNUQc-EMgz-A",{"logo":691,"freeTrial":696,"sales":701,"login":706,"items":711,"search":1038,"minimal":1073,"duo":1092,"switchNav":1101,"pricingDeployment":1112},{"config":692},{"href":693,"dataGaName":694,"dataGaLocation":695},"/fr-fr/","gitlab logo","header",{"text":697,"config":698},"Commencer un essai gratuit",{"href":699,"dataGaName":700,"dataGaLocation":695},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr&glm_content=default-saas-trial/","free trial",{"text":702,"config":703},"Demander une démo",{"href":704,"dataGaName":705,"dataGaLocation":695},"/request-a-demo/","sales",{"text":707,"config":708},"Connexion",{"href":709,"dataGaName":710,"dataGaLocation":695},"https://gitlab.com/users/sign_in/","sign in",[712,796,884,889,962,1016],{"text":713,"left":678,"config":714,"menu":716},"Plateforme",{"dataNavLevelOne":715},"platform",{"type":717,"link":718,"columns":722,"feature":785},"lists",{"text":719,"config":720},"Explorer la plateforme",{"href":721,"dataGaName":715,"dataGaLocation":695},"/fr-fr/platform/",[723,744,767],{"title":724,"items":725},"Exécution et workflows",[726,730,734,739],{"text":298,"config":727},{"href":728,"dataGaLocation":695,"dataGaName":729},"/fr-fr/solutions/continuous-integration/","ci/cd",{"text":150,"config":731},{"href":732,"dataGaLocation":695,"dataGaName":733},"/fr-fr/solutions/source-code-management/","source code management",{"text":735,"config":736},"Méthode de livraison selon les principes Agile",{"href":737,"dataGaLocation":695,"dataGaName":738},"/fr-fr/solutions/agile-delivery/","agile delivery",{"text":740,"config":741},"Gestion des artefacts",{"href":742,"dataGaLocation":695,"dataGaName":743},"/fr-fr/artifact-central/","artifact management",{"title":745,"items":746},"Sécurité et gouvernance",[747,752,757,762],{"text":748,"config":749},"Test de sécurité des applications",{"href":750,"dataGaLocation":695,"dataGaName":751},"/fr-fr/solutions/application-security-testing/","application security testing",{"text":753,"config":754},"Gouvernance et conformité",{"href":755,"dataGaLocation":695,"dataGaName":756},"/fr-fr/solutions/software-compliance/","governance and compliance",{"text":758,"config":759},"Gestion des secrets",{"href":760,"dataGaLocation":695,"dataGaName":761},"/fr-fr/gitlab-secrets-manager/","secrets management",{"text":763,"config":764},"Sécurité de la chaîne d'approvisionnement",{"href":765,"dataGaLocation":695,"dataGaName":766},"/fr-fr/solutions/supply-chain/","supply chain security",{"title":768,"items":769},"Contexte et IA",[770,775,780],{"text":771,"config":772},"Orchestration agentique",{"href":773,"dataGaLocation":695,"dataGaName":774},"/fr-fr/gitlab-duo-agent-platform/","agentic orchestration",{"text":776,"config":777},"Graphe de contexte",{"href":778,"dataGaLocation":695,"dataGaName":779},"/fr-fr/gitlab-orbit/","context graph",{"text":781,"config":782},"Visibilité et mesures",{"href":783,"dataGaLocation":695,"dataGaName":784},"/fr-fr/solutions/visibility-measurement/","visibility and measurement",{"config":786,"title":789,"text":790,"link":791},{"background":787,"textColor":788},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1790185102/o7dn32anqcb6z8dgd3as.jpg')","#000","Pourquoi utiliser GitLab","Une plateforme unique offrant une rapidité maîtrisée tout au long du cycle de développement logiciel.",{"text":792,"config":793},"En savoir plus",{"href":794,"dataGaName":795,"dataGaLocation":695},"/fr-fr/why-gitlab/","why gitlab",{"text":797,"left":678,"config":798,"menu":800},"Solutions",{"dataNavLevelOne":799},"solutions",{"type":717,"link":801,"columns":805,"feature":875},{"text":802,"config":803},"Voir toutes les solutions",{"href":804,"dataGaName":799,"dataGaLocation":695},"/fr-fr/solutions/",[806,824,842],{"title":807,"items":808},"Résultats",[809,814,819],{"text":810,"config":811},"Modernisation DevOps",{"href":812,"dataGaLocation":695,"dataGaName":813},"/fr-fr/assessments/devops-modernization-assessment/","devops modernization",{"text":815,"config":816},"Modernisation de la sécurité",{"href":817,"dataGaLocation":695,"dataGaName":818},"/fr-fr/assessments/security-modernization-assessment/","security modernization",{"text":820,"config":821},"Modernisation de l'IA",{"href":822,"dataGaLocation":695,"dataGaName":823},"/fr-fr/assessments/ai-modernization-assessment/","ai modernization",{"title":825,"items":826},"Par taille",[827,832,837],{"text":828,"config":829},"Entreprises",{"href":830,"dataGaLocation":695,"dataGaName":831},"/fr-fr/enterprise/","enterprise",{"text":833,"config":834},"PME",{"href":835,"dataGaLocation":695,"dataGaName":836},"/fr-fr/small-business/","small business",{"text":838,"config":839},"Start-up",{"href":840,"dataGaLocation":695,"dataGaName":841},"/fr-fr/solutions/startups/","startups",{"title":843,"items":844},"Secteurs",[845,850,855,860,865,870],{"text":846,"config":847},"Services financiers",{"href":848,"dataGaLocation":695,"dataGaName":849},"/fr-fr/solutions/finance/","financial services",{"text":851,"config":852},"Secteur public",{"href":853,"dataGaLocation":695,"dataGaName":854},"/fr-fr/solutions/public-sector/","public sector",{"text":856,"config":857},"Télécommunications",{"href":858,"dataGaLocation":695,"dataGaName":859},"/fr-fr/solutions/telecommunications/","telecommunications",{"text":861,"config":862},"Automobile",{"href":863,"dataGaLocation":695,"dataGaName":864},"/fr-fr/solutions/automotive/","automotive",{"text":866,"config":867},"Éducation",{"href":868,"dataGaLocation":695,"dataGaName":869},"/fr-fr/solutions/education/","education",{"text":871,"config":872},"Aérospatiale",{"href":873,"dataGaLocation":695,"dataGaName":874},"/fr-fr/solutions/aerospace/","aerospace",{"config":876,"title":877,"text":878,"link":879},{"background":787,"textColor":788},"GitLab Security Standard","Découvrez comment renforcer votre usine logicielle et permettre aux agents d'IA de gagner en autonomie sans sacrifier la sécurité.",{"text":880,"config":881},"Découvrir GitLab Security Standard",{"href":882,"dataGaName":883,"dataGaLocation":695},"/fr-fr/gitlab-security-standard/","gitlab security standard",{"text":885,"config":886},"Tarifs",{"href":887,"dataGaName":888,"dataGaLocation":695,"dataNavLevelOne":888},"/fr-fr/pricing/","pricing",{"text":637,"config":890,"menu":892},{"dataNavLevelOne":891},"resources",{"type":717,"link":893,"columns":897,"feature":953},{"text":894,"config":895},"Afficher toutes les ressources",{"href":896,"dataGaName":891,"dataGaLocation":695},"/fr-fr/resources/",[898,926],{"title":899,"items":900},"Découvrir",[901,906,911,916,921],{"text":902,"config":903},"Documentation",{"href":904,"dataGaName":905,"dataGaLocation":695},"https://docs.gitlab.com/","docs",{"text":907,"config":908},"GitLab University",{"href":909,"dataGaName":910,"dataGaLocation":695},"https://university.gitlab.com/","university",{"text":912,"config":913},"Démos",{"href":914,"dataGaName":915,"dataGaLocation":695},"/fr-fr/gitlab-technical-demo-series/","demo series",{"text":917,"config":918},"Centre de démos",{"href":919,"dataGaName":920,"dataGaLocation":695},"/fr-fr/demo-hub/","demo hub",{"text":922,"config":923},"Services",{"href":924,"dataGaName":925,"dataGaLocation":695},"/fr-fr/services/","services",{"title":927,"items":928},"Connecter",[929,934,939,944,948],{"text":930,"config":931},"Blog",{"href":932,"dataGaName":933,"dataGaLocation":695},"/fr-fr/blog/","blog",{"text":935,"config":936},"Communauté",{"href":937,"dataGaName":938,"dataGaLocation":695},"/community/","community",{"text":940,"config":941},"Clients",{"href":942,"dataGaName":943,"dataGaLocation":695},"/fr-fr/customers/","customers",{"text":945,"config":946},"Partenaires",{"href":947,"dataGaName":687,"dataGaLocation":695},"/fr-fr/partners/",{"text":949,"config":950},"Événements",{"href":951,"dataGaName":952,"dataGaLocation":695},"/events/","events",{"config":954,"title":955,"text":956,"link":957},{"background":787,"textColor":788},"Nouveautés de GitLab","Découvrez les dernières fonctionnalités et améliorations.",{"text":958,"config":959},"Lire les articles les plus récents",{"href":960,"dataGaName":961,"dataGaLocation":695},"/fr-fr/whats-new/","whats new",{"text":963,"config":964,"menu":966},"Société",{"dataNavLevelOne":965},"company",{"type":717,"columns":967},[968],{"items":969},[970,975,981,986,991,996,1001,1006,1011],{"text":971,"config":972},"À propos",{"href":973,"dataGaName":974,"dataGaLocation":695},"/fr-fr/company/","about",{"text":976,"config":977,"footerGa":980},"Carrières",{"href":978,"dataGaName":979,"dataGaLocation":695},"/jobs/","jobs",{"dataGaName":979},{"text":982,"config":983},"Presse",{"href":984,"dataGaName":985,"dataGaLocation":695},"/press/","press",{"text":987,"config":988},"Manuel",{"href":989,"dataGaName":990,"dataGaLocation":695},"https://handbook.gitlab.com/","handbook",{"text":992,"config":993},"Leadership",{"href":994,"dataGaName":995,"dataGaLocation":695},"/company/team/e-group/","leadership",{"text":997,"config":998},"Relations avec les investisseurs",{"href":999,"dataGaName":1000,"dataGaLocation":695},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":1002,"config":1003},"Trust Center",{"href":1004,"dataGaName":1005,"dataGaLocation":695},"/fr-fr/security/","trust center",{"text":1007,"config":1008},"Centre pour la transparence de l'IA",{"href":1009,"dataGaName":1010,"dataGaLocation":695},"/fr-fr/ai-transparency-center/","ai transparency center",{"text":1012,"config":1013},"Newsletter",{"href":1014,"dataGaName":1015,"dataGaLocation":695},"/company/contact/#contact-forms","newsletter",{"text":1017,"config":1018,"menu":1019},"Nous contacter",{"dataNavLevelOne":965},{"type":717,"columns":1020},[1021],{"items":1022},[1023,1028,1033],{"text":1024,"config":1025},"Contacter l'équipe commerciale",{"href":1026,"dataGaName":1027,"dataGaLocation":695},"/fr-fr/sales/","talk to sales",{"text":1029,"config":1030},"Assistance GitLab",{"href":1031,"dataGaName":1032,"dataGaLocation":695},"https://support.gitlab.com/hc/en-us","support portal",{"text":1034,"config":1035},"Portail clients GitLab",{"href":1036,"dataGaName":1037,"dataGaLocation":695},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":1039,"login":1040,"suggestions":1047},"Fermer",{"text":1041,"link":1042},"Pour rechercher des dépôts et des projets, connectez-vous à",{"text":1043,"config":1044},"GitLab.com",{"href":709,"dataGaName":1045,"dataGaLocation":1046},"search login","search",{"text":1048,"default":1049},"Suggestions",[1050,1054,1058,1060,1065,1070],{"text":1051,"config":1052},"GitLab Duo Agent Platform",{"href":773,"dataGaName":1053,"dataGaLocation":1046},"GitLab Duo Agent Platform",{"text":1055,"config":1056},"Suggestions de code (IA)",{"href":773,"dataGaName":1057,"dataGaLocation":1046},"Code Suggestions (AI)",{"text":298,"config":1059},{"href":728,"dataGaName":298,"dataGaLocation":1046},{"text":1061,"config":1062},"GitLab sur AWS",{"href":1063,"dataGaName":1064,"dataGaLocation":1046},"/fr-fr/partners/technology-partners/aws/","GitLab on AWS",{"text":1066,"config":1067},"GitLab sur Google Cloud",{"href":1068,"dataGaName":1069,"dataGaLocation":1046},"/fr-fr/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":789,"config":1071},{"href":794,"dataGaName":1072,"dataGaLocation":1046},"Why GitLab?",{"freeTrial":1074,"mobileIcon":1079,"desktopIcon":1084,"secondaryButton":1087},{"text":1075,"config":1076},"Commencer votre essai gratuit",{"href":1077,"dataGaName":700,"dataGaLocation":1078},"https://gitlab.com/-/trials/new/","nav",{"altText":1080,"config":1081},"Icône GitLab",{"src":1082,"dataGaName":1083,"dataGaLocation":1078},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":1080,"config":1085},{"src":1086,"dataGaName":1083,"dataGaLocation":1078},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":1088,"config":1089},"Commencer",{"href":1090,"dataGaName":1091,"dataGaLocation":1078},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr/get-started/","get started",{"freeTrial":1093,"mobileIcon":1097,"desktopIcon":1099},{"text":1094,"config":1095},"En savoir plus sur GitLab Duo",{"href":773,"dataGaName":1096,"dataGaLocation":1078},"gitlab duo",{"altText":1080,"config":1098},{"src":1082,"dataGaName":1083,"dataGaLocation":1078},{"altText":1080,"config":1100},{"src":1086,"dataGaName":1083,"dataGaLocation":1078},{"button":1102,"mobileIcon":1107,"desktopIcon":1109},{"text":1103,"config":1104},"/switch",{"href":1105,"dataGaName":1106,"dataGaLocation":1078},"#contact","switch",{"altText":1080,"config":1108},{"src":1082,"dataGaName":1083,"dataGaLocation":1078},{"altText":1080,"config":1110},{"src":1111,"dataGaName":1083,"dataGaLocation":1078},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":1113,"mobileIcon":1118,"desktopIcon":1120},{"text":1114,"config":1115},"Retour aux tarifs",{"href":887,"dataGaName":1116,"dataGaLocation":1078,"icon":1117},"back to pricing","GoBack",{"altText":1080,"config":1119},{"src":1082,"dataGaName":1083,"dataGaLocation":1078},{"altText":1080,"config":1121},{"src":1086,"dataGaName":1083,"dataGaLocation":1078},{"title":1123,"button":1124,"config":1127},"GitLab Orbit est arrivé : la couche de contexte pour les agents d'IA.",{"text":792,"config":1125},{"href":778,"dataGaName":1126,"dataGaLocation":695},"orbit",{"layout":1128,"disabled":675},"release",{"data":1130},{"text":1131,"source":1132,"edit":1138,"contribute":1143,"config":1148,"items":1153,"minimal":1369},"Git est une marque déposée de Software Freedom Conservancy et notre utilisation de « GitLab » est sous licence.",{"text":1133,"config":1134},"Afficher le code source de la page",{"href":1135,"dataGaName":1136,"dataGaLocation":1137},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":1139,"config":1140},"Modifier cette page",{"href":1141,"dataGaName":1142,"dataGaLocation":1137},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":1144,"config":1145},"Contribuer",{"href":1146,"dataGaName":1147,"dataGaLocation":1137},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":1149,"facebook":1150,"youtube":1151,"linkedin":1152},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[1154,1199,1254,1295,1336],{"title":885,"links":1155,"subMenu":1170},[1156,1160,1165],{"text":1157,"config":1158},"Voir les forfaits",{"href":887,"dataGaName":1159,"dataGaLocation":1137},"view plans",{"text":1161,"config":1162},"GitLab Premium",{"href":1163,"dataGaName":1164,"dataGaLocation":1137},"/fr-fr/pricing/premium/","why premium",{"text":1166,"config":1167},"GitLab Ultimate",{"href":1168,"dataGaName":1169,"dataGaLocation":1137},"/fr-fr/pricing/ultimate/","why ultimate",[1171],{"title":1017,"links":1172},[1173,1175,1177,1179,1184,1189,1194],{"text":1024,"config":1174},{"href":1026,"dataGaName":705,"dataGaLocation":1137},{"text":1029,"config":1176},{"href":1031,"dataGaName":1032,"dataGaLocation":1137},{"text":1034,"config":1178},{"href":1036,"dataGaName":1037,"dataGaLocation":1137},{"text":1180,"config":1181},"Statut",{"href":1182,"dataGaName":1183,"dataGaLocation":1137},"https://status.gitlab.com/","status",{"text":1185,"config":1186},"Conditions d'utilisation",{"href":1187,"dataGaName":1188,"dataGaLocation":1137},"/terms/","terms of use",{"text":1190,"config":1191},"Politique de confidentialité",{"href":1192,"dataGaName":1193,"dataGaLocation":1137},"/fr-fr/privacy/","privacy statement",{"text":1195,"config":1196},"Gestion des cookies",{"dataGaName":1197,"dataGaLocation":1137,"id":1198,"isOneTrustButton":678},"cookie preferences","ot-sdk-btn",{"title":713,"links":1200,"subMenu":1213},[1201,1203,1205,1207,1209,1211],{"text":719,"config":1202},{"href":721,"dataGaName":715,"dataGaLocation":1137},{"text":771,"config":1204},{"href":773,"dataGaName":774,"dataGaLocation":1137},{"text":298,"config":1206},{"href":728,"dataGaName":729,"dataGaLocation":1137},{"text":776,"config":1208},{"href":778,"dataGaName":779,"dataGaLocation":1137},{"text":758,"config":1210},{"href":760,"dataGaName":761,"dataGaLocation":1137},{"text":789,"config":1212},{"href":794,"dataGaName":795,"dataGaLocation":1137},[1214],{"title":1215,"links":1216},"Thèmes",[1217,1221,1225,1230,1235,1239,1244,1249],{"text":298,"config":1218},{"href":1219,"dataGaName":1220,"dataGaLocation":1137},"/fr-fr/topics/ci-cd/","cicd",{"text":38,"config":1222},{"href":1223,"dataGaName":1224,"dataGaLocation":1137},"/fr-fr/topics/gitops/","gitops",{"text":1226,"config":1227},"DevOps",{"href":1228,"dataGaName":1229,"dataGaLocation":1137},"/fr-fr/topics/devops/","devops",{"text":1231,"config":1232},"Contrôle de version",{"href":1233,"dataGaName":1234,"dataGaLocation":1137},"/fr-fr/topics/version-control/","version control",{"text":603,"config":1236},{"href":1237,"dataGaName":1238,"dataGaLocation":1137},"/fr-fr/topics/devsecops/","devsecops",{"text":1240,"config":1241},"Cloud-native",{"href":1242,"dataGaName":1243,"dataGaLocation":1137},"/fr-fr/topics/cloud-native/","cloud native",{"text":1245,"config":1246},"IA pour la programmation",{"href":1247,"dataGaName":1248,"dataGaLocation":1137},"/fr-fr/topics/devops/ai-for-coding/","ai for coding",{"text":1250,"config":1251},"IA agentique",{"href":1252,"dataGaName":1253,"dataGaLocation":1137},"/fr-fr/topics/agentic-ai/","agentic ai",{"title":797,"links":1255},[1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1283,1287,1291],{"text":810,"config":1257},{"href":812,"dataGaName":813,"dataGaLocation":1137},{"text":815,"config":1259},{"href":817,"dataGaName":818,"dataGaLocation":1137},{"text":820,"config":1261},{"href":822,"dataGaName":823,"dataGaLocation":1137},{"text":846,"config":1263},{"href":848,"dataGaName":849,"dataGaLocation":1137},{"text":851,"config":1265},{"href":853,"dataGaName":854,"dataGaLocation":1137},{"text":856,"config":1267},{"href":858,"dataGaName":859,"dataGaLocation":1137},{"text":861,"config":1269},{"href":863,"dataGaName":864,"dataGaLocation":1137},{"text":866,"config":1271},{"href":868,"dataGaName":869,"dataGaLocation":1137},{"text":871,"config":1273},{"href":873,"dataGaName":874,"dataGaLocation":1137},{"text":828,"config":1275},{"href":830,"dataGaName":831,"dataGaLocation":1137},{"text":833,"config":1277},{"href":835,"dataGaName":836,"dataGaLocation":1137},{"text":838,"config":1279},{"href":840,"dataGaName":841,"dataGaLocation":1137},{"text":38,"config":1281},{"href":1282,"dataGaName":1224,"dataGaLocation":1137},"/fr-fr/solutions/gitops/",{"text":1284,"config":1285},"Analyse de la composition logicielle",{"href":765,"dataGaName":1286,"dataGaLocation":1137},"software composition analysis",{"text":1288,"config":1289},"Gestion de la chaîne de valeur",{"href":783,"dataGaName":1290,"dataGaLocation":1137},"value stream management",{"text":1292,"config":1293},"Toutes les solutions",{"href":804,"dataGaName":1294,"dataGaLocation":1137},"all solutions",{"title":637,"links":1296},[1297,1302,1307,1309,1311,1313,1315,1317,1319,1321,1323,1325,1327,1329,1332],{"text":1298,"config":1299},"Installation",{"href":1300,"dataGaName":1301,"dataGaLocation":1137},"/fr-fr/install/","install",{"text":1303,"config":1304},"Guides de démarrage",{"href":1305,"dataGaName":1306,"dataGaLocation":1137},"/fr-fr/get-started/","quick setup checklists",{"text":902,"config":1308},{"href":904,"dataGaName":905,"dataGaLocation":1137},{"text":907,"config":1310},{"href":909,"dataGaName":910,"dataGaLocation":1137},{"text":912,"config":1312},{"href":914,"dataGaName":915,"dataGaLocation":1137},{"text":917,"config":1314},{"href":919,"dataGaName":920,"dataGaLocation":1137},{"text":922,"config":1316},{"href":924,"dataGaName":925,"dataGaLocation":1137},{"text":930,"config":1318},{"href":932,"dataGaName":933,"dataGaLocation":1137},{"text":935,"config":1320},{"href":937,"dataGaName":938,"dataGaLocation":1137},{"text":940,"config":1322},{"href":942,"dataGaName":943,"dataGaLocation":1137},{"text":945,"config":1324},{"href":947,"dataGaName":687,"dataGaLocation":1137},{"text":949,"config":1326},{"href":951,"dataGaName":952,"dataGaLocation":1137},{"text":1012,"config":1328},{"href":1014,"dataGaName":1015,"dataGaLocation":1137},{"text":1330,"config":1331},"Nouveautés",{"href":960,"dataGaName":961,"dataGaLocation":1137},{"text":1333,"config":1334},"Toutes les ressources",{"href":896,"dataGaName":1335,"dataGaLocation":1137},"all resources",{"title":963,"links":1337},[1338,1340,1342,1344,1346,1348,1350,1352,1354,1359,1364],{"text":971,"config":1339},{"href":973,"dataGaName":965,"dataGaLocation":1137},{"text":976,"config":1341},{"href":978,"dataGaName":979,"dataGaLocation":1137},{"text":982,"config":1343},{"href":984,"dataGaName":985,"dataGaLocation":1137},{"text":987,"config":1345},{"href":989,"dataGaName":990,"dataGaLocation":1137},{"text":992,"config":1347},{"href":994,"dataGaName":995,"dataGaLocation":1137},{"text":997,"config":1349},{"href":999,"dataGaName":1000,"dataGaLocation":1137},{"text":1002,"config":1351},{"href":1004,"dataGaName":1005,"dataGaLocation":1137},{"text":1007,"config":1353},{"href":1009,"dataGaName":1010,"dataGaLocation":1137},{"text":1355,"config":1356},"Développement durable",{"href":1357,"dataGaName":1358,"dataGaLocation":1137},"/sustainability/","Sustainability",{"text":1360,"config":1361},"Diversité, inclusion et appartenance (DIB)",{"href":1362,"dataGaName":1363,"dataGaLocation":1137},"/fr-fr/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":1365,"config":1366},"Déclaration de transparence sur l'esclavage moderne",{"href":1367,"dataGaName":1368,"dataGaLocation":1137},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1370},[1371,1373,1375],{"text":1185,"config":1372},{"href":1187,"dataGaName":1188,"dataGaLocation":1137},{"text":1195,"config":1374},{"dataGaName":1197,"dataGaLocation":1137,"id":1198,"isOneTrustButton":678},{"text":1190,"config":1376},{"href":1192,"dataGaName":1193,"dataGaLocation":1137},[1378,1392],{"id":1379,"title":1380,"body":674,"config":1381,"content":1383,"description":674,"extension":1386,"meta":1387,"navigation":678,"path":1388,"seo":1389,"stem":1390,"__hash__":1391},"blogAuthors/en-us/blog/authors/javier-urones-montesern-clober.yml","Javier Urones Montesern Clober",{"template":1382},"BlogAuthor",{"name":7,"config":1384},{"headshot":1385},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1786716301/m4ef0w9sgufwnsnjmip7.jpg","yml",{},"/en-us/blog/authors/javier-urones-montesern-clober",{},"en-us/blog/authors/javier-urones-montesern-clober","nOElEDg3yb2BENyQahBvRi_wTQHyakdSMJfSxFLyLPQ",{"id":1393,"title":1394,"body":674,"config":1395,"content":1396,"description":674,"extension":1386,"meta":1400,"navigation":678,"path":1401,"seo":1402,"stem":1403,"__hash__":1404},"blogAuthors/en-us/blog/authors/pter-bozs.yml","Pter Bozs",{"template":1382},{"name":8,"config":1397},{"headshot":1398,"ctfId":1399},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666384/Blog/Author%20Headshots/pbozso_headshot.png","4i1NVYip0RqxRnbpZ9deKp",{},"/en-us/blog/authors/pter-bozs",{},"en-us/blog/authors/pter-bozs","M3DsNH5-3AKaaKicmGt_Gqj-Vp7wbz2QaGO8u57CB04",[1406,1415,1423],{"title":1407,"description":1408,"heroImage":1409,"category":670,"date":1410,"authors":1411,"slug":1414,"externalUrl":674},"Git a été pensé pour les humains, il est temps de l'adapter aux agents","Découvrez comment la gestion du code source de nouvelle génération de GitLab s'adapte aux agents, et pourquoi un nouveau backend doit répondre aux défis liés à la traçabilité et au cycle de vie.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1773856365/gsx2c0vqlswox3ldmq88.jpg","2026-10-05",[1412,1413],"Kranthi Erusu","Jessica Taylor","gitlab-next-gen-scm",{"title":1416,"description":1417,"heroImage":1418,"category":670,"date":1419,"authors":1420,"slug":1422,"externalUrl":674},"Programme Co-Create : développer GitLab avec nos utilisateurs","Comment nous avons collaboré avec les utilisateurs de GitLab pour développer des améliorations produit au cours du premier semestre de l'année 2026.","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","2026-09-29",[1421],"Isa Huerga","co-create-h1-2026",{"title":1424,"description":1425,"heroImage":1418,"category":670,"date":1426,"authors":1427,"slug":1429,"externalUrl":674},"Du chaos au contexte : comment construire un workflow de développement assisté par l'IA","Découvrez un retour d'expérience de l'itération sur les directives d'IA, la création d'un système de mémoire et ce que l'IA ne peut toujours pas remplacer dans le développement logiciel.","2026-09-14",[1428],"Gregory Havenga","building-an-ai-dev-workflow",{"header":1431,"text":1432,"button":1436,"disclaimer":1439},"Commencez votre essai gratuit\n\nde 30 jours\n",[1433,1434,1435],"Accédez à GitLab Duo Agent Platform","Essayez nos fonctionnalités les plus avancées","Automatisez les tâches complexes avec l'IA",{"text":697,"config":1437},{"href":1438,"dataGaName":700,"dataGaLocation":933},"https://gitlab.com/-/trials/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/fr-fr/blog/","Aucune carte de crédit requise.",{"header":1441,"blurb":1442,"button":1443,"secondaryButton":1447},"Commencez à développer plus rapidement dès aujourd'hui","Découvrez ce que votre équipe peut accomplir avec la plateforme d'orchestration intelligente pour le DevSecOps.\n",{"text":697,"config":1444},{"href":1445,"dataGaName":700,"dataGaLocation":1446},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/fr-fr/","feature",{"text":1024,"config":1448},{"href":1026,"dataGaName":705,"dataGaLocation":1446},1791952282605]