[{"data":1,"prerenderedAt":865},["ShallowReactive",2],{"/fr-fr/blog/categories/devsecops/":3,"navigation-fr-fr":22,"banner-fr-fr":443,"footer-fr-fr":456,"devsecops-category-page-fr-fr":669},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":8,"content":11,"config":12,"_id":15,"_type":16,"title":17,"_source":18,"_file":19,"_stem":20,"_extension":21},"/fr-fr/blog/categories/devsecops","categories",false,"",{"title":9,"description":10},"DevSecOps","Browse articles related to DevSecOps on the GitLab Blog",{"name":9},{"template":13,"slug":14,"hide":6},"BlogCategory","devsecops","content:fr-fr:blog:categories:devsecops.yml","yaml","Devsecops","content","fr-fr/blog/categories/devsecops.yml","fr-fr/blog/categories/devsecops","yml",{"_path":23,"_dir":24,"_draft":6,"_partial":6,"_locale":7,"data":25,"_id":439,"_type":16,"title":440,"_source":18,"_file":441,"_stem":442,"_extension":21},"/shared/fr-fr/main-navigation","fr-fr",{"logo":26,"freeTrial":31,"sales":36,"login":41,"items":46,"search":380,"minimal":416,"duo":430},{"config":27},{"href":28,"dataGaName":29,"dataGaLocation":30},"/fr-fr/","gitlab logo","header",{"text":32,"config":33},"Commencer un essai gratuit",{"href":34,"dataGaName":35,"dataGaLocation":30},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":37,"config":38},"Contacter l'équipe commerciale",{"href":39,"dataGaName":40,"dataGaLocation":30},"/fr-fr/sales/","sales",{"text":42,"config":43},"Connexion",{"href":44,"dataGaName":45,"dataGaLocation":30},"https://gitlab.com/users/sign_in/","sign in",[47,91,190,195,301,361],{"text":48,"config":49,"cards":51,"footer":74},"Plateforme",{"dataNavLevelOne":50},"platform",[52,58,66],{"title":48,"description":53,"link":54},"La plateforme DevSecOps alimentée par l'IA la plus complète",{"text":55,"config":56},"Découvrir notre plateforme",{"href":57,"dataGaName":50,"dataGaLocation":30},"/fr-fr/platform/",{"title":59,"description":60,"link":61},"GitLab Duo (IA)","Créez des logiciels plus rapidement en tirant parti de l'IA à chaque étape du développement",{"text":62,"config":63},"Découvrez GitLab Duo",{"href":64,"dataGaName":65,"dataGaLocation":30},"/fr-fr/gitlab-duo/","gitlab duo ai",{"title":67,"description":68,"link":69},"Choisir GitLab","10 raisons pour lesquelles les entreprises choisissent GitLab",{"text":70,"config":71},"En savoir plus",{"href":72,"dataGaName":73,"dataGaLocation":30},"/fr-fr/why-gitlab/","why gitlab",{"title":75,"items":76},"Démarrer avec",[77,82,87],{"text":78,"config":79},"Ingénierie de plateforme",{"href":80,"dataGaName":81,"dataGaLocation":30},"/fr-fr/solutions/platform-engineering/","platform engineering",{"text":83,"config":84},"Expérience développeur",{"href":85,"dataGaName":86,"dataGaLocation":30},"/fr-fr/developer-experience/","Developer experience",{"text":88,"config":89},"MLOps",{"href":90,"dataGaName":88,"dataGaLocation":30},"/fr-fr/topics/devops/the-role-of-ai-in-devops/",{"text":92,"left":93,"config":94,"link":96,"lists":100,"footer":172},"Produit",true,{"dataNavLevelOne":95},"solutions",{"text":97,"config":98},"Voir toutes les solutions",{"href":99,"dataGaName":95,"dataGaLocation":30},"/fr-fr/solutions/",[101,127,150],{"title":102,"description":103,"link":104,"items":109},"Automatisation","CI/CD et automatisation pour accélérer le déploiement",{"config":105},{"icon":106,"href":107,"dataGaName":108,"dataGaLocation":30},"AutomatedCodeAlt","/fr-fr/solutions/delivery-automation/","automated software delivery",[110,114,118,123],{"text":111,"config":112},"CI/CD",{"href":113,"dataGaLocation":30,"dataGaName":111},"/fr-fr/solutions/continuous-integration/",{"text":115,"config":116},"Développement assisté par l'IA",{"href":64,"dataGaLocation":30,"dataGaName":117},"AI assisted development",{"text":119,"config":120},"Gestion du code source",{"href":121,"dataGaLocation":30,"dataGaName":122},"/fr-fr/solutions/source-code-management/","Source Code Management",{"text":124,"config":125},"Livraison de logiciels automatisée",{"href":107,"dataGaLocation":30,"dataGaName":126},"Automated software delivery",{"title":128,"description":129,"link":130,"items":135},"Securité","Livrez du code plus rapidement sans compromettre la sécurité",{"config":131},{"href":132,"dataGaName":133,"dataGaLocation":30,"icon":134},"/fr-fr/solutions/security-compliance/","security and compliance","ShieldCheckLight",[136,140,145],{"text":137,"config":138},"Sécurité et conformité",{"href":132,"dataGaLocation":30,"dataGaName":139},"Security & Compliance",{"text":141,"config":142},"Sécurité de la chaîne d'approvisionnement logicielle",{"href":143,"dataGaLocation":30,"dataGaName":144},"/fr-fr/solutions/supply-chain/","Software supply chain security",{"text":146,"config":147},"Conformité et gouvernance",{"href":148,"dataGaLocation":30,"dataGaName":149},"/fr-fr/solutions/continuous-software-compliance/","Compliance and governance",{"title":151,"link":152,"items":157},"Mesures",{"config":153},{"icon":154,"href":155,"dataGaName":156,"dataGaLocation":30},"DigitalTransformation","/fr-fr/solutions/visibility-measurement/","visibility and measurement",[158,162,167],{"text":159,"config":160},"Visibilité et mesures",{"href":155,"dataGaLocation":30,"dataGaName":161},"Visibility and Measurement",{"text":163,"config":164},"Gestion de la chaîne de valeur",{"href":165,"dataGaLocation":30,"dataGaName":166},"/fr-fr/solutions/value-stream-management/","Value Stream Management",{"text":168,"config":169},"Données d'analyse et informations clés",{"href":170,"dataGaLocation":30,"dataGaName":171},"/fr-fr/solutions/analytics-and-insights/","Analytics and insights",{"title":173,"items":174},"GitLab pour",[175,180,185],{"text":176,"config":177},"Entreprises",{"href":178,"dataGaLocation":30,"dataGaName":179},"/fr-fr/enterprise/","enterprise",{"text":181,"config":182},"PME",{"href":183,"dataGaLocation":30,"dataGaName":184},"/fr-fr/small-business/","small business",{"text":186,"config":187},"Secteur public",{"href":188,"dataGaLocation":30,"dataGaName":189},"/fr-fr/solutions/public-sector/","public sector",{"text":191,"config":192},"Tarifs",{"href":193,"dataGaName":194,"dataGaLocation":30,"dataNavLevelOne":194},"/fr-fr/pricing/","pricing",{"text":196,"config":197,"link":199,"lists":203,"feature":288},"Ressources",{"dataNavLevelOne":198},"resources",{"text":200,"config":201},"Afficher toutes les ressources",{"href":202,"dataGaName":198,"dataGaLocation":30},"/fr-fr/resources/",[204,237,260],{"title":205,"items":206},"Premiers pas",[207,212,217,222,227,232],{"text":208,"config":209},"Installation",{"href":210,"dataGaName":211,"dataGaLocation":30},"/fr-fr/install/","install",{"text":213,"config":214},"Guides de démarrage rapide",{"href":215,"dataGaName":216,"dataGaLocation":30},"/fr-fr/get-started/","quick setup checklists",{"text":218,"config":219},"Apprentissage",{"href":220,"dataGaLocation":30,"dataGaName":221},"https://university.gitlab.com/","learn",{"text":223,"config":224},"Documentation sur le produit",{"href":225,"dataGaName":226,"dataGaLocation":30},"https://docs.gitlab.com/","product documentation",{"text":228,"config":229},"Vidéos sur les bonnes pratiques",{"href":230,"dataGaName":231,"dataGaLocation":30},"/fr-fr/getting-started-videos/","best practice videos",{"text":233,"config":234},"Intégrations",{"href":235,"dataGaName":236,"dataGaLocation":30},"/fr-fr/integrations/","integrations",{"title":238,"items":239},"Découvrir",[240,245,250,255],{"text":241,"config":242},"Histoires de succès client",{"href":243,"dataGaName":244,"dataGaLocation":30},"/fr-fr/customers/","customer success stories",{"text":246,"config":247},"Blog",{"href":248,"dataGaName":249,"dataGaLocation":30},"/fr-fr/blog/","blog",{"text":251,"config":252},"Travail à distance",{"href":253,"dataGaName":254,"dataGaLocation":30},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"text":256,"config":257},"TeamOps",{"href":258,"dataGaName":259,"dataGaLocation":30},"/fr-fr/teamops/","teamops",{"title":261,"items":262},"Connecter",[263,268,273,278,283],{"text":264,"config":265},"Services GitLab",{"href":266,"dataGaName":267,"dataGaLocation":30},"/fr-fr/services/","services",{"text":269,"config":270},"Communauté",{"href":271,"dataGaName":272,"dataGaLocation":30},"/community/","community",{"text":274,"config":275},"Forum",{"href":276,"dataGaName":277,"dataGaLocation":30},"https://forum.gitlab.com/","forum",{"text":279,"config":280},"Événements",{"href":281,"dataGaName":282,"dataGaLocation":30},"/events/","events",{"text":284,"config":285},"Partenaires",{"href":286,"dataGaName":287,"dataGaLocation":30},"/fr-fr/partners/","partners",{"backgroundColor":289,"textColor":290,"text":291,"image":292,"link":296},"#2f2a6b","#fff","L'avenir du développement logiciel. Tendances et perspectives.",{"altText":293,"config":294},"carte promo The Source",{"src":295},"/images/navigation/the-source-promo-card.svg",{"text":297,"config":298},"Lire les articles les plus récents",{"href":299,"dataGaName":300,"dataGaLocation":30},"/fr-fr/the-source/","the source",{"text":302,"config":303,"lists":305},"Société",{"dataNavLevelOne":304},"company",[306],{"items":307},[308,313,319,321,326,331,336,341,346,351,356],{"text":309,"config":310},"À propos",{"href":311,"dataGaName":312,"dataGaLocation":30},"/fr-fr/company/","about",{"text":314,"config":315,"footerGa":318},"Emplois",{"href":316,"dataGaName":317,"dataGaLocation":30},"/jobs/","jobs",{"dataGaName":317},{"text":279,"config":320},{"href":281,"dataGaName":282,"dataGaLocation":30},{"text":322,"config":323},"Leadership",{"href":324,"dataGaName":325,"dataGaLocation":30},"/company/team/e-group/","leadership",{"text":327,"config":328},"Équipe",{"href":329,"dataGaName":330,"dataGaLocation":30},"/company/team/","team",{"text":332,"config":333},"Manuel",{"href":334,"dataGaName":335,"dataGaLocation":30},"https://handbook.gitlab.com/","handbook",{"text":337,"config":338},"Relations avec les investisseurs",{"href":339,"dataGaName":340,"dataGaLocation":30},"https://ir.gitlab.com/","investor relations",{"text":342,"config":343},"Centre de confiance",{"href":344,"dataGaName":345,"dataGaLocation":30},"/fr-fr/security/","trust center",{"text":347,"config":348},"Centre pour la transparence de l'IA",{"href":349,"dataGaName":350,"dataGaLocation":30},"/fr-fr/ai-transparency-center/","ai transparency center",{"text":352,"config":353},"Newsletter",{"href":354,"dataGaName":355,"dataGaLocation":30},"/company/contact/","newsletter",{"text":357,"config":358},"Presse",{"href":359,"dataGaName":360,"dataGaLocation":30},"/press/","press",{"text":362,"config":363,"lists":364},"Nous contacter",{"dataNavLevelOne":304},[365],{"items":366},[367,370,375],{"text":37,"config":368},{"href":39,"dataGaName":369,"dataGaLocation":30},"talk to sales",{"text":371,"config":372},"Aide",{"href":373,"dataGaName":374,"dataGaLocation":30},"/support/","get help",{"text":376,"config":377},"Portail clients GitLab",{"href":378,"dataGaName":379,"dataGaLocation":30},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":381,"login":382,"suggestions":389},"Fermer",{"text":383,"link":384},"Pour rechercher des dépôts et des projets, connectez-vous à",{"text":385,"config":386},"gitlab.com",{"href":44,"dataGaName":387,"dataGaLocation":388},"search login","search",{"text":390,"default":391},"Suggestions",[392,395,400,402,407,412],{"text":59,"config":393},{"href":64,"dataGaName":394,"dataGaLocation":388},"GitLab Duo (AI)",{"text":396,"config":397},"Suggestions de code (IA)",{"href":398,"dataGaName":399,"dataGaLocation":388},"/fr-fr/solutions/code-suggestions/","Code Suggestions (AI)",{"text":111,"config":401},{"href":113,"dataGaName":111,"dataGaLocation":388},{"text":403,"config":404},"GitLab sur AWS",{"href":405,"dataGaName":406,"dataGaLocation":388},"/fr-fr/partners/technology-partners/aws/","GitLab on AWS",{"text":408,"config":409},"GitLab sur Google Cloud ",{"href":410,"dataGaName":411,"dataGaLocation":388},"/fr-fr/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":413,"config":414},"Pourquoi utiliser GitLab ?",{"href":72,"dataGaName":415,"dataGaLocation":388},"Why GitLab?",{"freeTrial":417,"mobileIcon":422,"desktopIcon":427},{"text":418,"config":419},"Commencer votre essai gratuit",{"href":420,"dataGaName":35,"dataGaLocation":421},"https://gitlab.com/-/trials/new/","nav",{"altText":423,"config":424},"Icône GitLab",{"src":425,"dataGaName":426,"dataGaLocation":421},"/images/brand/gitlab-logo-tanuki.svg","gitlab icon",{"altText":423,"config":428},{"src":429,"dataGaName":426,"dataGaLocation":421},"/images/brand/gitlab-logo-type.svg",{"freeTrial":431,"mobileIcon":435,"desktopIcon":437},{"text":432,"config":433},"En savoir plus sur GitLab Duo",{"href":64,"dataGaName":434,"dataGaLocation":421},"gitlab duo",{"altText":423,"config":436},{"src":425,"dataGaName":426,"dataGaLocation":421},{"altText":423,"config":438},{"src":429,"dataGaName":426,"dataGaLocation":421},"content:shared:fr-fr:main-navigation.yml","Main Navigation","shared/fr-fr/main-navigation.yml","shared/fr-fr/main-navigation",{"_path":444,"_dir":24,"_draft":6,"_partial":6,"_locale":7,"title":445,"titleMobile":445,"button":446,"config":451,"_id":453,"_type":16,"_source":18,"_file":454,"_stem":455,"_extension":21},"/shared/fr-fr/banner","GitLab 18 et la prochaine étape du DevSecOps intelligent. Rejoignez-nous le 24 juin.",{"text":447,"config":448},"S'inscrire",{"href":449,"dataGaName":450,"dataGaLocation":30},"/fr-fr/eighteen/","gitlab 18 banner",{"layout":452},"release","content:shared:fr-fr:banner.yml","shared/fr-fr/banner.yml","shared/fr-fr/banner",{"_path":457,"_dir":24,"_draft":6,"_partial":6,"_locale":7,"data":458,"_id":665,"_type":16,"title":666,"_source":18,"_file":667,"_stem":668,"_extension":21},"/shared/fr-fr/main-footer",{"text":459,"source":460,"edit":466,"contribute":471,"config":476,"items":481,"minimal":656},"Git est une marque déposée de Software Freedom Conservancy et notre utilisation de « GitLab » est sous licence",{"text":461,"config":462},"Afficher le code source de la page",{"href":463,"dataGaName":464,"dataGaLocation":465},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":467,"config":468},"Modifier cette page",{"href":469,"dataGaName":470,"dataGaLocation":465},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":472,"config":473},"Veuillez contribuer",{"href":474,"dataGaName":475,"dataGaLocation":465},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":477,"facebook":478,"youtube":479,"linkedin":480},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[482,505,559,592,627],{"title":48,"links":483,"subMenu":488},[484],{"text":485,"config":486},"Plateforme DevSecOps",{"href":57,"dataGaName":487,"dataGaLocation":465},"devsecops platform",[489],{"title":191,"links":490},[491,495,500],{"text":492,"config":493},"Voir les forfaits",{"href":193,"dataGaName":494,"dataGaLocation":465},"view plans",{"text":496,"config":497},"Pourquoi choisir GitLab Premium ?",{"href":498,"dataGaName":499,"dataGaLocation":465},"/fr-fr/pricing/premium/","why premium",{"text":501,"config":502},"Pourquoi choisir GitLab Ultimate ?",{"href":503,"dataGaName":504,"dataGaLocation":465},"/fr-fr/pricing/ultimate/","why ultimate",{"title":506,"links":507},"Solutions",[508,513,516,518,523,528,532,535,538,543,545,547,549,554],{"text":509,"config":510},"Transformation digitale",{"href":511,"dataGaName":512,"dataGaLocation":465},"/fr-fr/topics/digital-transformation/","digital transformation",{"text":137,"config":514},{"href":132,"dataGaName":515,"dataGaLocation":465},"security & compliance",{"text":124,"config":517},{"href":107,"dataGaName":108,"dataGaLocation":465},{"text":519,"config":520},"Développement agile",{"href":521,"dataGaName":522,"dataGaLocation":465},"/fr-fr/solutions/agile-delivery/","agile delivery",{"text":524,"config":525},"Transformation cloud",{"href":526,"dataGaName":527,"dataGaLocation":465},"/fr-fr/topics/cloud-native/","cloud transformation",{"text":529,"config":530},"SCM",{"href":121,"dataGaName":531,"dataGaLocation":465},"source code management",{"text":111,"config":533},{"href":113,"dataGaName":534,"dataGaLocation":465},"continuous integration & delivery",{"text":163,"config":536},{"href":165,"dataGaName":537,"dataGaLocation":465},"value stream management",{"text":539,"config":540},"GitOps",{"href":541,"dataGaName":542,"dataGaLocation":465},"/fr-fr/solutions/gitops/","gitops",{"text":176,"config":544},{"href":178,"dataGaName":179,"dataGaLocation":465},{"text":181,"config":546},{"href":183,"dataGaName":184,"dataGaLocation":465},{"text":186,"config":548},{"href":188,"dataGaName":189,"dataGaLocation":465},{"text":550,"config":551},"Formation",{"href":552,"dataGaName":553,"dataGaLocation":465},"/fr-fr/solutions/education/","education",{"text":555,"config":556},"Services financiers",{"href":557,"dataGaName":558,"dataGaLocation":465},"/fr-fr/solutions/finance/","financial services",{"title":196,"links":560},[561,563,565,567,570,572,576,578,580,582,584,586,588,590],{"text":208,"config":562},{"href":210,"dataGaName":211,"dataGaLocation":465},{"text":213,"config":564},{"href":215,"dataGaName":216,"dataGaLocation":465},{"text":218,"config":566},{"href":220,"dataGaName":221,"dataGaLocation":465},{"text":223,"config":568},{"href":225,"dataGaName":569,"dataGaLocation":465},"docs",{"text":246,"config":571},{"href":248,"dataGaName":249},{"text":573,"config":574},"Histoires de réussite client",{"href":575,"dataGaLocation":465},"/customers/",{"text":241,"config":577},{"href":243,"dataGaName":244,"dataGaLocation":465},{"text":251,"config":579},{"href":253,"dataGaName":254,"dataGaLocation":465},{"text":264,"config":581},{"href":266,"dataGaName":267,"dataGaLocation":465},{"text":256,"config":583},{"href":258,"dataGaName":259,"dataGaLocation":465},{"text":269,"config":585},{"href":271,"dataGaName":272,"dataGaLocation":465},{"text":274,"config":587},{"href":276,"dataGaName":277,"dataGaLocation":465},{"text":279,"config":589},{"href":281,"dataGaName":282,"dataGaLocation":465},{"text":284,"config":591},{"href":286,"dataGaName":287,"dataGaLocation":465},{"title":302,"links":593},[594,596,598,600,602,604,606,611,616,618,620,622],{"text":309,"config":595},{"href":311,"dataGaName":304,"dataGaLocation":465},{"text":314,"config":597},{"href":316,"dataGaName":317,"dataGaLocation":465},{"text":322,"config":599},{"href":324,"dataGaName":325,"dataGaLocation":465},{"text":327,"config":601},{"href":329,"dataGaName":330,"dataGaLocation":465},{"text":332,"config":603},{"href":334,"dataGaName":335,"dataGaLocation":465},{"text":337,"config":605},{"href":339,"dataGaName":340,"dataGaLocation":465},{"text":607,"config":608},"Stratégie environnementale, sociale et de gouvernance (ESG)",{"href":609,"dataGaName":610,"dataGaLocation":465},"/fr-fr/environmental-social-governance/","environmental, social and governance",{"text":612,"config":613},"Diversité, inclusion et appartenance (DIB)",{"href":614,"dataGaName":615,"dataGaLocation":465},"/fr-fr/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":342,"config":617},{"href":344,"dataGaName":345,"dataGaLocation":465},{"text":352,"config":619},{"href":354,"dataGaName":355,"dataGaLocation":465},{"text":357,"config":621},{"href":359,"dataGaName":360,"dataGaLocation":465},{"text":623,"config":624},"Déclaration de transparence sur l'esclavage moderne",{"href":625,"dataGaName":626,"dataGaLocation":465},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":362,"links":628},[629,632,634,636,641,646,651],{"text":630,"config":631},"Échanger avec un expert",{"href":39,"dataGaName":40,"dataGaLocation":465},{"text":371,"config":633},{"href":373,"dataGaName":374,"dataGaLocation":465},{"text":376,"config":635},{"href":378,"dataGaName":379,"dataGaLocation":465},{"text":637,"config":638},"Statut",{"href":639,"dataGaName":640,"dataGaLocation":465},"https://status.gitlab.com/","status",{"text":642,"config":643},"Conditions d'utilisation",{"href":644,"dataGaName":645},"/terms/","terms of use",{"text":647,"config":648},"Déclaration de confidentialité",{"href":649,"dataGaName":650,"dataGaLocation":465},"/fr-fr/privacy/","privacy statement",{"text":652,"config":653},"Préférences en matière de cookies",{"dataGaName":654,"dataGaLocation":465,"id":655,"isOneTrustButton":93},"cookie preferences","ot-sdk-btn",{"items":657},[658,660,663],{"text":642,"config":659},{"href":644,"dataGaName":645,"dataGaLocation":465},{"text":661,"config":662},"Politique de confidentialité",{"href":649,"dataGaName":650,"dataGaLocation":465},{"text":652,"config":664},{"dataGaName":654,"dataGaLocation":465,"id":655,"isOneTrustButton":93},"content:shared:fr-fr:main-footer.yml","Main Footer","shared/fr-fr/main-footer.yml","shared/fr-fr/main-footer",{"featuredPost":670,"allPosts":697,"totalPages":863,"initialPosts":864},{"_path":671,"_dir":249,"_draft":6,"_partial":6,"_locale":7,"seo":672,"content":680,"config":690,"_id":693,"_type":16,"title":694,"_source":18,"_file":695,"_stem":696,"_extension":21},"/fr-fr/blog/ultimate-guide-to-ci-cd-fundamentals-to-advanced-implementation",{"ogTitle":673,"schema":674,"ogImage":675,"ogDescription":676,"ogSiteName":677,"noIndex":6,"ogType":678,"ogUrl":679,"title":673,"canonicalUrls":679,"description":676},"Approche CI/CD : notre guide complet","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Guide complet sur l'approche CI/CD : des principes fondamentaux à la mise en œuvre avancée\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sandra Gittlen\"}],\n        \"datePublished\": \"2025-06-25\",\n      }\n                  ","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749660151/Blog/Hero%20Images/blog-image-template-1800x945__26_.png","Découvrez comment transformer vos processus CI/CD en automatisant le développement et la livraison de logiciels tout en renforçant la sécurité des pipelines.","https://about.gitlab.com","article","https://about.gitlab.com/blog/ultimate-guide-to-ci-cd-fundamentals-to-advanced-implementation",{"title":673,"description":676,"authors":681,"heroImage":675,"date":683,"body":684,"category":14,"tags":685},[682],"Sandra Gittlen","2025-06-25","L'adoption des pratiques [CI/CD](https://about.gitlab.com/fr-fr/topics/ci-cd/ \"Qu'est-ce que le CI/CD ?\") a révolutionné la création de valeur dans le développement logiciel. L'époque des déploiements manuels et des défis d'intégration complexes est désormais révolue : aujourd'hui, le développement logiciel moderne met l'accent sur l'automatisation, la fiabilité et la rapidité.\n\nL'approche CI/CD repose sur la mise en place d'un pipeline fluide et automatisé qui permet de transférer le code de l'environnement de développement vers l'environnement de production, tout en intégrant les retours et suggestions de modification en temps réel. L'intégration continue (CI) aide les équipes à détecter rapidement les problèmes avant qu'ils ne deviennent coûteux. Les modifications de code sont fréquemment fusionnées dans un dépôt partagé, puis testées automatiquement et validées. La livraison continue (CD) vient compléter cette démarche. Elle vise à automatiser le processus de déploiement, rendant les sorties de nouvelles versions prévisibles et harmonieuses.\n\nGrâce à un pipeline CI/CD robuste, les équipes peuvent compiler, tester et déployer leurs logiciels sans dépendre de processus manuels ou de chaînes d’outils complexes. L'intégration de l'IA aide à optimiser encore davantage ce processus, en générant automatiquement des pipelines CI/CD qui garantissent la cohérence des contrôles de qualité, de conformité et de sécurité.\n\nDécouvrez dans ce guide tout ce que vous devez sur les pipelines CI/CD modernes, des principes de base aux bonnes pratiques, en passant par les stratégies avancées. Apprenez également comment les grandes entreprises leaders dans leur domaine tirent parti de l'approche CI/CD pour atteindre des résultats impressionnants. À l’issue de cette lecture, vous saurez comment faire évoluer votre environnement [DevSecOps](https://about.gitlab.com/fr-fr/topics/devsecops/ \"Qu'est-ce que le DevSecOps ?\") afin de développer et de livrer des logiciels de manière [agile](https://about.gitlab.com/fr-fr/topics/ci-cd/continuous-integration-agile/ \"Intégration continue et développement agile\"), automatisée et efficace.\n\n## Qu'est-ce que l'intégration continue ?\n\nL'[intégration continue](https://about.gitlab.com/fr-fr/topics/ci-cd/benefits-continuous-integration/ \"Qu'est-ce que l’intégration continue ?\") (CI) est une pratique qui consiste à intégrer régulièrement les modifications de code dans la branche principale d'un dépôt de code source partagé. Cette intégration s'effectue dès que possible, et fréquemment. Après chaque validation ou merge, les modifications sont automatiquement testées, puis une compilation est déclenchée sans intervention manuelle. Grâce à l'intégration continue, les équipes peuvent identifier et corriger les erreurs, ainsi que les failles de sécurité, plus facilement et beaucoup plus tôt dans le processus de développement.\n\n## Qu'est-ce que la livraison continue ?\n\n[La livraison continue](https://about.gitlab.com/fr-fr/topics/ci-cd/#what-is-continuous-delivery-cd \"Qu'est-ce que la livraison continue ?\") (CD), également appelée *déploiement continu*, automatise le processus de mise en production des applications. Les équipes de développement ont ainsi plus de temps à consacrer au suivi des déploiements en cours pour en garantir la réussite. Avec la livraison continue, les équipes DevSecOps définissent à l'avance les critères de mise à disposition du code. Une fois ces critères remplis et validés, le code est automatiquement déployé dans l'environnement de production. Cette automatisation permet aux entreprises de gagner en flexibilité et de mettre plus rapidement de nouvelles fonctionnalités à disposition des utilisateurs.\n\n## Quel est le lien entre la gestion du code source et l'approche CI/CD ?\n\nLa [gestion du code source (SCM)](https://about.gitlab.com/fr-fr/solutions/source-code-management/ \"Gestion du code source\") et l'approche CI/CD constituent la base des pratiques modernes de développement logiciel. Les systèmes SCM, comme [Git](https://about.gitlab.com/blog/what-is-git-the-ultimate-guide-to-gits-role-and-functionality/ \"Qu'est-ce que Git?\"), offrent une solution centralisée pour suivre les modifications, gérer les versions de code et faciliter la collaboration entre les membres de l'équipe. Lorsqu’un développeur travaille sur une nouvelle fonctionnalité ou une correction de bogues, il crée une branche à partir du code source et apporte ses modifications avant de les [fusionner à l'aide des merge requests](https://docs.gitlab.com/ee/user/project/merge_requests/). Cette stratégie de gestion de branches permet à plusieurs développeurs de travailler simultanément sans interférer avec le code de leurs collègues, tout en maintenant une branche principale stable qui contient un code prêt à être déployé dans l'environnement de production.\n\nL'approche CI/CD automatise les étapes de compilation, de test et de validation du code géré par le système SCM à chaque push de modifications. Lorsqu'un développeur soumet ses modifications de code, le système CI/CD récupère automatiquement le code le plus récent, le combine avec le code source existant, puis exécute une série de vérifications automatisées. Celles-ci comprennent généralement la compilation du code, l'exécution de tests unitaires, l'analyse statique du code et la vérification de la couverture de code. En cas d’échec d’une de ces étapes, l'équipe en est immédiatement informée, ce qui lui permet de résoudre les problèmes avant qu'ils n'affectent d'autres développeurs ou qu'ils n’apparaissent dans l'environnement de production. Cette intégration étroite entre le contrôle de version et l'intégration continue crée une boucle de rétroaction constante qui garantit la qualité du code et prévient l'accumulation de problèmes d'intégration.\n\n## Quels sont les avantages de l'approche CI/CD ?\n\n[L'approche CI/CD apporte de nombreux avantages qui transforment le développement logiciel moderne](https://about.gitlab.com/blog/ten-reasons-why-your-business-needs-ci-cd/) et réduisent considérablement les délais ainsi que les risques associés à la livraison de nouvelles fonctionnalités et corrections de bogues. Grâce à une boucle de rétroaction continue, les équipes DevSecOps peuvent garantir que leurs modifications sont automatiquement validées sur l'ensemble du code source. \n\nRésultat : des logiciels de meilleure qualité, des cycles de livraison plus courts et des sorties de nouvelles versions plus fréquentes pour répondre rapidement aux besoins des utilisateurs et aux demandes du marché.\n\nAu-delà des aspects techniques, l'approche CI/CD favorise une culture de collaboration et de transparence au sein des équipes de développement logiciel. Grâce à une visibilité en temps réel du statut des compilations, des tests et des déploiements, il est plus facile d'identifier et de résoudre les goulots d'étranglement dans le processus de livraison. L'automatisation offerte par l'approche CI/CD réduit également la charge cognitive des équipes de développement qui peuvent ainsi se concentrer sur l'écriture de code plutôt que sur la gestion de processus de déploiement manuels. La satisfaction et la productivité des équipes s’améliorent, tandis que les risques généralement associés aux étapes critiques du processus de publication de logiciel diminuent. Les équipes peuvent expérimenter de nouvelles idées sans craindre de compromettre le projet, sachant que des mécanismes de contrôle robustes, comme les revues de code rapides, sont intégrés au processus. Elles peuvent rapidement annuler les modifications si nécessaire. L'approche CI/CD encourage donc une culture d'innovation et d'amélioration continue.\n\n### Quelles sont les principales différences entre l'approche CI/CD et le développement traditionnel ?\n\nL'approche CI/CD diffère du développement logiciel traditionnel à bien des égards, notamment en ce qui concerne les points suivants :\n\n**Validations fréquentes du code**\n\nDans le développement traditionnel, les équipes de développement travaillent souvent de manière isolée et intègrent rarement leurs modifications dans le code source. Cette situation entraîne des conflits de merge et d'autres problèmes chronophages. Avec l'approche CI/CD, les équipes effectuent régulièrement des push de validation, parfois plusieurs fois par jour. De cette manière, les conflits de merge sont détectés rapidement et le code source est maintenu à jour.\n\n**Réduction des risques**\n\nLes méthodes de développement logiciel traditionnelles reposent sur des cycles de test à rallonge et une planification rigoureuse avant la sortie de chaque nouvelle version. Bien que ce type de développement ait pour objectif de réduire au maximum les risques, il entrave souvent la capacité à identifier et à résoudre les problèmes. À l’inverse, l'approche CI/CD permet de gérer les risques en appliquant de petites modifications incrémentielles. Ces changements, surveillés de près, peuvent être facilement annulés en cas de problème.\n\n**Tests automatisés et continus**\n\nDans le cadre du développement logiciel traditionnel, les tests sont généralement exécutés à la fin du processus de développement, ce qui peut entraîner des retards de livraison et des corrections de bogues coûteuses. L'approche CI/CD, en revanche, intègre des tests automatisés qui sont exécutés en continu tout au long du processus de développement logiciel et déclenchés à chaque validation de code. Cette approche permet aux équipes de développement de recevoir des retours immédiats et d’implémenter rapidement les correctifs nécessaires.\n\n**Déploiements automatisés, reproductibles et fréquents**\n\nL’automatisation des déploiements dans l’approche CI/CD réduit le stress et les efforts habituellement associés aux déploiements massifs de logiciels. Ce processus automatisé est reproductible dans tous les environnements et garantit ainsi un gain de temps, une réduction des risques d’erreurs ainsi qu'une cohérence accrue dans chaque déploiement.\n\n## Quels sont les principes fondamentaux de l'approche CI/CD ?\n\nL'approche CI/CD constitue un framework essentiel pour la mise en place de processus de livraison de logiciels évolutifs et régulièrement mis à jour. Pour les équipes DevSecOps, une maîtrise parfaite de ses concepts fondamentaux est indispensable. Une solide compréhension des principes CI/CD permet aux équipes d'adapter leurs stratégies et leurs pratiques aux évolutions technologiques, en s’affranchissant des limitations des méthodes traditionnelles. \n\n### Qu'est-ce qu'un pipeline CI/CD ?\n\nUn [pipeline CI/CD](https://about.gitlab.com/fr-fr/topics/ci-cd/cicd-pipeline/) est une série d'étapes (compilation, test et déploiement) qui automatise et rationalise le processus de livraison de logiciels. [Chaque étape agit comme un mur qualité](https://about.gitlab.com/blog/guide-to-ci-cd-pipelines/) et permet de s'assurer que seul le code validé passe à l'étape suivante. Les premières étapes gèrent les vérifications de base, telles que la compilation et les tests unitaires. Les étapes ultérieures, quant à elles, peuvent inclure des tests d'intégration, de performance et de conformité, ainsi que des déploiements échelonnés dans divers environnements.\n\nLe pipeline peut être configuré de manière à nécessiter des approbations manuelles aux points critiques, par exemple avant le déploiement en production, tout en automatisant les tâches routinières. Les équipes de développement obtiennent ainsi un retour rapide sur l'état de leurs modifications. Cette approche structurée assure la cohérence, réduit les erreurs humaines et fournit une piste d'audit claire du transfert des modifications de code de l'environnement de développement vers l'environnement de production. Les pipelines modernes sont souvent implémentés sous forme de code et peuvent ainsi être contrôlés, testés et tenus à jour, de la même manière que le code applicatif.\n\nVoici d'autres termes associés à l'approche CI/CD qu'il est important de connaître :\n\n* **Validation :** une modification apportée au code\n* **Job :** une série d'instructions qu'un runner doit exécuter\n* **Runner :** un agent ou serveur qui exécute chaque job individuellement et qui peut se mettre à l'échelle selon les besoins\n* **Étapes :** un mot-clé qui définit certaines phases spécifiques d'un job, comme la phase de « compilation » et de « déploiement ». Les jobs d'une même étape s’exécutent en parallèle. Les pipelines sont configurés à l'aide d'un fichier YAML nommé `.gitlab-ci.yml`, soumis au contrôle de version et situé à la racine du projet.\n\n![Diagramme représentant un pipeline CI/CD](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673928/Blog/Content%20Images/1690824533476.png)\n\n## Bonnes pratiques pour réussir votre approche CI/CD\n\nVotre maîtrise de l'approche CI/CD dépend grandement des [bonnes pratiques](https://about.gitlab.com/fr-fr/blog/how-to-keep-up-with-ci-cd-best-practices/) que vous mettez en œuvre. \n\n#### Les bonnes pratiques en matière d'intégration continue\n\n* Validez tôt et souvent.\n* Optimisez les étapes du pipeline.\n* Simplifiez et accélérez les compilations.\n* Utilisez les échecs pour améliorer les processus.\n* Assurez-vous que l'environnement de test reflète l'environnement de production.\n\n#### Les bonnes pratiques en matière de livraison continue\n\n* Lancez-vous avec les outils et infrastructures disponibles, puis itérez pour améliorer vos processus.\n* Utilisez le moins d'outils possibles pour optimiser la livraison continue.\n* Surveillez l’avancée des projets en continu afin d’éviter l’accumulation de tickets ou de merge requests.\n* Simplifiez les tests d'acceptation par l'utilisateur et le déploiement vers l'environnement de préproduction grâce à l'automatisation.\n* Automatisez la gestion du pipeline de sortie des nouvelles versions.\n* Mettez en œuvre la surveillance du pipeline pour gagner en visibilité et en productivité. \n\n> ### Pour en savoir plus sur l'approche CI/CD, consultez notre [webinaire « Intro to CI/CD »](https://www.youtube.com/watch?v=sQ7Nw3o0izc).\n\n\u003C!-- blank line -->\n\n\u003Cfigure class=\"video_container\">\n\u003Ciframe src=\"https://www.youtube.com/embed/sQ7Nw3o0izc?si=3HpNqIClrc2ncr7Y\" title=\"Intro to CI/CD webinar\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\u003C!-- blank line -->\n\n## Premiers pas avec l'approche CI/CD\n\nPour commencer à utiliser l'approche CI/CD, identifiez un projet simple mais représentatif qui servira de projet pilote. Sélectionnez une application simple avec des exigences de test basiques. Vous pourrez ainsi vous concentrer sur l'apprentissage du fonctionnement des pipelines plutôt que sur des scénarios de déploiement complexes. Assurez-vous que votre code est soumis au [contrôle de version](https://about.gitlab.com/fr-fr/topics/version-control/ \"Qu'est-ce que le contrôle de version ?\") et qu'il comporte des [tests automatisés basiques](https://about.gitlab.com/blog/develop-c-unit-testing-with-catch2-junit-and-gitlab-ci/). Même quelques tests unitaires suffisent pour débuter. L'objectif est de [créer un pipeline basique](https://about.gitlab.com/blog/how-to-learn-ci-cd-fast/) que vous pourrez améliorer progressivement à mesure que vos compétences progressent.\n\nDans le cas de GitLab, le processus commence par la création d'un fichier `.gitlab-ci.yml` dans le répertoire racine de votre projet. Ce fichier YAML définit les étapes de base (comme la compilation, les tests et le déploiement) et les jobs de votre pipeline. Voici un exemple de pipeline simple : l'étape de « Compilation » compile votre code et crée des artefacts, l'étape de « Test » exécute les tests unitaires et l'étape de « Déploiement » effectue le push de votre application vers un environnement de préproduction. GitLab détecte automatiquement ce fichier et commence à exécuter votre pipeline chaque fois que des modifications sont transmises via un push vers votre dépôt. La plateforme fournit des [runners intégrés](https://docs.gitlab.com/runner/) pour exécuter les jobs de votre pipeline, mais vous pouvez également configurer vos propres runners si vous souhaitez davantage de contrôle.\n\nÀ mesure que vous maîtrisez les éléments de base, enrichissez votre pipeline progressivement avec des fonctionnalités plus avancées. Par exemple, ajoutez des contrôles de qualité du code, [le scanning de sécurité](https://docs.gitlab.com/ee/user/application_security/#security-scanning) ou le déploiement automatisé du nouveau code en production. La plateforme DevSecOps de GitLab inclut des fonctionnalités telles que la [gestion de la conformité](https://about.gitlab.com/blog/meet-regulatory-standards-with-gitlab/), les [variables de déploiement](https://about.gitlab.com/fr-fr/blog/demystifying-ci-cd-variables/) et les portes d'approbation manuelle que vous pouvez intégrer à mesure que votre pipeline évolue. Soyez attentif à la durée d'exécution du pipeline et exécutez dans la mesure du possible des jobs en parallèle. Pensez à ajouter des notifications et un traitement approprié des erreurs afin que les membres de l'équipe soient rapidement informés en cas d’échec de pipeline. Commencez à documenter les problèmes que vous rencontrez le plus souvent et les solutions adoptées. Ces données seront très utiles quand votre équipe s'agrandira.\n\n> ### Vous souhaitez en savoir plus sur l'approche CI/CD ? Inscrivez-vous à notre [cours GitLab University gratuit sur l'approche CI/CD](https://university.gitlab.com/courses/continuous-integration-and-delivery-ci-cd-with-gitlab).\n\n## Sécurité, conformité et approche CI/CD\n\nL'un des plus grands avantages de l'approche CI/CD est la possibilité d'intégrer des contrôles de sécurité et de conformité réguliers, et ce dès les premières étapes du cycle de développement logiciel. Dans GitLab, les équipes peuvent utiliser la configuration `.gitlab-ci.yml` pour déclencher automatiquement des scans de sécurité à plusieurs étapes, de la validation initiale du code à son déploiement en production. Les fonctionnalités d'analyse des conteneurs, d'analyse des dépendances et de scanning de sécurité ([Test dynamique de sécurité des applications](https://docs.gitlab.com/ee/user/application_security/dast/) et [Analyseur Advanced SAST de GitLab](https://about.gitlab.com/blog/gitlab-advanced-sast-is-now-generally-available/)) de la plateforme peuvent être configurées pour s'exécuter automatiquement à chaque modification de code afin de rechercher les vulnérabilités, les violations des exigences de conformité et les erreurs de configuration de sécurité. L'API de la plateforme permet l'intégration avec des [outils de sécurité externes](https://about.gitlab.com/blog/integrate-external-security-scanners-into-your-devsecops-workflow/), tandis que les fonctionnalités de couverture des tests garantissent que les tests de sécurité répondent aux seuils requis.\n\nLes rapports de test de sécurité de GitLab fournissent des informations détaillées sur les découvertes de vulnérabilités afin de remédier rapidement aux problèmes de sécurité avant qu'ils n'atteignent l'environnement de production. Le tableau de bord relatif à la sécurité fournit une vue centralisée des vulnérabilités détectées dans les différents projets, tandis que des [stratégies de sécurité peuvent être appliquées](https://about.gitlab.com/blog/how-gitlab-supports-the-nsa-and-cisa-cicd-security-guidance/) via les approbations de merge request et les portes dans les pipelines. GitLab offre plusieurs niveaux de gestion des secrets pour protéger les données sensibles tout au long du processus CI/CD, y compris des journaux d'audit permettant de suivre l'accès à ces secrets. De plus, un contrôle d'accès basé sur les rôles (RBAC) garantit que seuls les utilisateurs autorisés peuvent consulter ou modifier les données de configuration sensibles.\n\nGitLab prend également en charge la génération de [nomenclatures logicielles (SBOM)](https://about.gitlab.com/fr-fr/blog/the-ultimate-guide-to-sboms/), qui fournissent un inventaire complet de l'ensemble des composants logiciels, dépendances et licences dans une application. Elles permettent aux équipes d'identifier et de corriger rapidement les vulnérabilités, ainsi que de se conformer aux exigences réglementaires.\n\n## Approche CI/CD et cloud\n\nLa plateforme CI/CD de GitLab offre une intégration robuste avec les principaux fournisseurs de services cloud, notamment [Amazon Web Services](https://about.gitlab.com/fr-fr/partners/technology-partners/aws/), [Google Cloud Platform](https://about.gitlab.com/blog/provision-group-runners-with-google-cloud-platform-and-gitlab-ci/) et [Microsoft Azure](https://docs.gitlab.com/ee/install/azure/). Les équipes de développement logiciel peuvent ainsi automatiser leurs déploiements cloud directement à partir de leurs pipelines. Grâce aux intégrations cloud de GitLab, elles peuvent également gérer les ressources cloud, déployer des applications et surveiller les services cloud directement depuis l'interface de GitLab. Les templates de déploiement cloud intégrés et les fonctionnalités [Auto DevOps](https://docs.gitlab.com/ee/topics/autodevops/) de la plateforme réduisent considérablement la complexité des déploiements cloud. Les membres de l'équipe peuvent ainsi se concentrer sur le développement d'applications plutôt que sur la gestion de l'infrastructure. Pour les entreprises qui souhaitent automatiser leur infrastructure informatique à l'aide de [GitOps](https://about.gitlab.com/fr-fr/topics/gitops/ \"Qu'est-ce que GitOps ?\"), GitLab propose l'[intégration Flux CD](https://about.gitlab.com/blog/why-did-we-choose-to-integrate-fluxcd-with-gitlab/).\n\nLes fonctionnalités cloud de GitLab vont au-delà de la simple automatisation des déploiements. L'[intégration Kubernetes](https://about.gitlab.com/fr-fr/blog/kubernetes-the-container-orchestration-solution/ \"Qu'est-ce que Kubernetes ?\") à la plateforme GitLab permet aux équipes de gérer l'orchestration des conteneurs entre plusieurs fournisseurs de services cloud. De plus, les [options d'installation cloud-native de GitLab](https://about.gitlab.com/fr-fr/topics/ci-cd/cloud-native-continuous-integration/) permettent à la plateforme elle-même de fonctionner dans des environnements cloud. Grâce à ces fonctionnalités cloud-native, les équipes peuvent mettre en œuvre des runners à mise à l'échelle automatique qui provisionnent dynamiquement les ressources cloud pour l'exécution de pipelines afin d'optimiser les coûts et les performances. Enfin, l'intégration de la plateforme avec les services de sécurité des fournisseurs de services cloud garantit le respect des exigences de sécurité et de conformité tout au long du processus de déploiement.\n\nPour les environnements multicloud, GitLab fournit des workflows et des outils cohérents, quel que soit le fournisseur de services cloud sous-jacent. Les équipes de développement peuvent utiliser les fonctionnalités de gestion de l'environnement de GitLab pour gérer différentes configurations cloud dans les environnements de développement, de préproduction et de production. La prise en charge de l'[Infrastructure as Code (IaC)](https://docs.gitlab.com/ee/user/infrastructure/iac/) de la plateforme GitLab, en particulier son intégration native avec Terraform, permet aux équipes de développement de contrôler les versions et d'automatiser le provisionnement de leur infrastructure cloud. Les fonctionnalités de surveillance et d'[observabilité](https://about.gitlab.com/fr-fr/blog/observability-vs-monitoring-in-devops/ \"Qu'est-ce que l'observabilité ?\") de GitLab s'intègrent aux indicateurs des fournisseurs de services cloud, offrant une visibilité complète de l'intégrité des applications et de l'infrastructure dans les différents environnements cloud.\n\n## Pipeline CI/CD avancé\n\nL'approche CI/CD a connu une évolution significative qui va bien au-delà de la simple construction et du déploiement de pipelines. Dans les mises en œuvre avancées, elle implique une orchestration sophistiquée des tests automatisés, du scanning de sécurité, du provisionnement de l'infrastructure, de l'IA et de bien d'autres aspects. Voici quelques stratégies CI/CD avancées pour aider les équipes d'ingénierie à améliorer leurs pipelines et à résoudre les problèmes qui surviennent, même lorsque la complexité de l'architecture augmente.\n\n### Réutilisation et automatisation des pipelines CI/CD\n\nGitLab révolutionne les pratiques des équipes de développement logiciel et de gestion des pipelines CI/CD en introduisant deux innovations majeures : le [catalogue CI/CD](https://about.gitlab.com/blog/ci-cd-catalog-goes-ga-no-more-building-pipelines-from-scratch/) et [CI/CD Steps](https://about.gitlab.com/blog/introducing-ci-cd-steps-a-programming-language-for-devsecops-automation/). Ce dernier est un nouveau langage de programmation expérimental dédié à l'automatisation DevSecOps. Le catalogue CI/CD est une plateforme centralisée où les équipes peuvent découvrir, réutiliser et optimiser les différents composants CI/CD. Ces derniers fonctionnent comme des blocs de construction réutilisables et à usage unique qui simplifient la configuration des pipelines au sein des workflows CI/CD. Parallèlement, CI/CD Steps offre la possibilité de gérer des workflows complexes en permettant aux équipes de configurer les entrées et sorties pour chaque job CI/CD. Avec le catalogue CI/CD et CI/CD Steps, les équipes DevSecOps peuvent facilement standardiser l'approche CI/CD et ses composants, et ainsi simplifier le processus de développement et de maintenance des pipelines CI/CD.\n\n> Pour en savoir plus, consultez notre [FAQ sur le catalogue CI/CD](https://about.gitlab.com/blog/faq-gitlab-ci-cd-catalog/) et notre [documentation sur CI/CD Steps](https://docs.gitlab.com/ee/ci/steps/).\n\n### Dépannage des pipelines avec l'IA\n\nBien qu'une défaillance des pipelines CI/CD soit possible, le dépannage rapide du problème peut considérablement réduire son impact. L'analyse des causes profondes de [GitLab Duo](https://about.gitlab.com/fr-fr/gitlab-duo/ \"Qu'est-ce que GitLab Duo ?\"), l'une des fonctionnalités alimentées par l'IA, élimine les hypothèses en [déterminant la cause profonde de l'échec d'un pipeline CI/CD](https://about.gitlab.com/fr-fr/blog/quickly-resolve-broken-ci-cd-pipelines-with-ai/ \"Échecs de pipelines CI/CD\"). Lorsqu'un pipeline échoue, GitLab fournit des job logs détaillés, des messages d'erreur et des traces d'exécution qui indiquent exactement où et pourquoi l'échec s'est produit. L'analyse des causes profondes utilise ensuite l'IA pour suggérer une solution.\n\nDécouvrez la fonctionnalité d'analyse des causes profondes de GitLab Duo en action :\n\n\u003C!-- blank line -->\n\n\u003Cfigure class=\"video_container\">\n\u003Ciframe src=\"https://www.youtube.com/embed/sTpSLwX5DIs?si=J6-0Bf6PtYjrHX1K\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\u003C!-- blank line -->\n\n## Comment migrer son code vers un pipeline GitLab CI/CD ?\n\nLa migration vers la plateforme DevSecOps de GitLab et son pipeline CI/CD intégré implique l'analyse systématique de vos configurations de pipeline, dépendances et processus de déploiement existants pour les mapper aux fonctionnalités et à la syntaxe équivalentes de GitLab. \n\nConsultez nos ressources pour faciliter votre migration vers GitLab CI/CD : \n\n* [Migration de Bamboo vers GitLab CI/CD](https://about.gitlab.com/blog/migrating-from-bamboo-to-gitlab-cicd/)\n* [De Jenkins à GitLab : le guide complet pour moderniser votre environnement CI/CD](https://about.gitlab.com/blog/jenkins-gitlab-ultimate-guide-to-modernizing-cicd-environment/)\n* [Migrer de GitHub Advanced Security vers GitLab Ultimate : notre guide complet](https://about.gitlab.com/fr-fr/blog/migration-guide-github-advanced-security-to-gitlab-ultimate/)\n\n## Témoignages d'entreprises leaders dans leur domaine\n\nCes entreprises de premier plan ont migré vers GitLab et profitent des innombrables avantages de l'approche CI/CD. Découvrez leurs témoignages.\n\n* [Lockheed Martin](https://about.gitlab.com/fr-fr/customers/lockheed-martin/)\n* [Indeed](https://about.gitlab.com/fr-fr/blog/how-indeed-transformed-its-ci-platform-with-gitlab/)\n* [CARFAX](https://about.gitlab.com/fr-fr/customers/carfax/)\n* [HackerOne](https://about.gitlab.com/fr-fr/customers/hackerone/)\n* [Betstudios](https://about.gitlab.com/blog/betstudios-cto-on-improving-ci-cd-capabilities-with-gitlab-premium/)\n* [Thales et Carrefour](https://about.gitlab.com/blog/how-carrefour-and-thales-are-evolving-their-ci-cd-platforms/)\n\n## Tutoriels CI/CD\n\nDevenez un expert des pipelines CI/CD à l'aide de ces tutoriels : \n\n* [Intégration continue : créez votre premier pipeline CI avec GitLab](https://about.gitlab.com/fr-fr/blog/basics-of-gitlab-ci-updated/)\n* [Configuration de votre premier composant GitLab CI/CD](https://about.gitlab.com/blog/tutorial-how-to-set-up-your-first-gitlab-ci-cd-component/)\n* [GitLab CI/CD : comment créer facilement un pipeline pour un monorepo](https://about.gitlab.com/fr-fr/blog/building-a-gitlab-ci-cd-pipeline-for-a-monorepo-the-easy-way/)\n* [Déployer en continu dans de multiples environnements avec les pipelines enfants](https://about.gitlab.com/fr-fr/blog/using-child-pipelines-to-continuously-deploy-to-five-environments/)\n* [Refactorisation d'un template CI/CD en composant CI/CD](https://about.gitlab.com/blog/refactoring-a-ci-cd-template-to-a-ci-cd-component/)\n\n> ### Commencez un [essai de GitLab Ultimate](https://gitlab.com/-/trials/new) et essayez gratuitement GitLab CI/CD pendant 60 jours.",[111,9,686,687,688,689],"DevSecOps platform","tutorial","security","product",{"slug":691,"featured":93,"template":692},"ultimate-guide-to-ci-cd-fundamentals-to-advanced-implementation","BlogPost","content:fr-fr:blog:ultimate-guide-to-ci-cd-fundamentals-to-advanced-implementation.yml","Ultimate Guide To Ci Cd Fundamentals To Advanced Implementation","fr-fr/blog/ultimate-guide-to-ci-cd-fundamentals-to-advanced-implementation.yml","fr-fr/blog/ultimate-guide-to-ci-cd-fundamentals-to-advanced-implementation",[698,718,740,760,779,801,822,843],{"_path":699,"_dir":249,"_draft":6,"_partial":6,"_locale":7,"seo":700,"content":706,"config":712,"_id":714,"_type":16,"title":715,"_source":18,"_file":716,"_stem":717,"_extension":21},"/fr-fr/blog/why-are-organizations-moving-to-a-unified-devsecops-platform",{"ogTitle":701,"schema":702,"ogImage":703,"ogDescription":704,"ogSiteName":677,"noIndex":6,"ogType":678,"ogUrl":705,"title":701,"canonicalUrls":705,"description":704},"Pourquoi choisir une plateforme DevSecOps unifiée ?","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Pourquoi choisir une plateforme DevSecOps unifiée ?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Itzik Gan Baruch\"}],\n        \"datePublished\": \"2025-06-19\",\n      }\n                  ","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097063/Blog/Hero%20Images/Blog/Hero%20Images/securitylifecycle-light_securitylifecycle-light.png_1750097063583.png","Découvrez comment GitLab combine des outils et fonctionnalités avancés, une sécurité renforcée, tout en tirant parti de l'IA pour accélérer et optimiser le développement logiciel.","https://about.gitlab.com/blog/why-are-organizations-moving-to-a-unified-devsecops-platform",{"title":701,"description":704,"authors":707,"heroImage":703,"date":709,"body":710,"category":14,"tags":711},[708],"Itzik Gan Baruch","2025-06-19","Face aux défis croissants du développement logiciel moderne, de nombreuses entreprises migrent vers le cloud et adoptent des processus DevSecOps. Elles sont cependant confrontées à un défi de taille : les nombreux outils et systèmes hérités ne sont pas adaptés à cette évolution et les obligent souvent à créer des intégrations complexes entre une multitude d'outils pour la gestion des tâches, les pipelines CI/CD, la sécurité, la surveillance, entre autres. Cette mosaïque d’outils entraîne une complexité opérationnelle, des coûts de maintenance élevés et freine la collaboration entre les équipes de développement et celles des opérations. Les développeurs, quant à eux, éprouvent de la frustration, car ils passent constamment d'un outil à l'autre pour un même workflow de développement, de la planification à la production.\n\n![Complexité et coûts opérationnels inhérents à l'intégration de plusieurs outils dans un processus DevSecOps](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097077/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750097077287.jpg)\n\n\u003Ccenter>\u003Ci>Degré de complexité de l'intégration de plusieurs outils dans un processus DevSecOps\u003C/i>\u003C/center> \n\n\u003Cbr>\u003C/br>\n\nBonne nouvelle, une solution existe : une plateforme DevSecOps complète offrant une approche unifiée du développement logiciel.\n\nCette plateforme est conçue pour les entreprises opérant dans des environnements cloud et [DevSecOps](https://about.gitlab.com/fr-fr/topics/devsecops/ \"Qu'est-ce que le DevSecOps?\") : tous les aspects du développement logiciel (gestion du code, processus CI/CD, gestion des tâches, sécurité, automatisation pilotée par l'IA) s'effectuent depuis une seule interface. Ainsi, tous les workflows sont centralisés, offrant aux équipes de développement et des opérations une collaboration optimisée, une communication rationalisée et une réduction significative des complexités et des perturbations opérationnelles. \n\nEn outre, l'expérience développeur s'améliore considérablement : les équipes d’ingénierie sont beaucoup plus heureuses de travailler avec un produit conçu spécifiquement pour les besoins du développement moderne.\n\nDécouvrez comment GitLab simplifie la gestion de projet, renforce la [sécurité et la conformité](https://about.gitlab.com/fr-fr/solutions/security-compliance/ \"Sécurité et conformité\"), et intègre l’IA pour transformer le développement logiciel et aider les équipes à surmonter les défis courants.\n\n## Gestion de projet Agile intégrée\n\nGitLab fournit une solution holistique qui rassemble toutes les fonctionnalités nécessaires pour la gestion des projets et des tâches. Cette intégration couvre toutes les étapes du développement logiciel, y compris les [pipelines CI/CD](https://about.gitlab.com/fr-fr/topics/ci-cd/cicd-pipeline/ \"Qu'est-ce qu'un pipeline CI/CD ?\"). Les équipes peuvent ainsi suivre en temps réel la progression du projet. Les tickets et les epics sont directement liés aux processus d'automatisation. De la planification au déploiement en production, toutes les étapes s'effectuent sans accroc. La transparence entre les équipes est ainsi renforcée, les retards sont réduits et toutes les parties prenantes ont une vision claire de l'état du développement en temps réel.\n\n![Les tickets et les epics sont directement liés aux processus d'automatisation. De la planification au déploiement en production, toutes les étapes s'effectuent sans accroc.](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097077/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750097077288.jpg)\n\n## Sécurité intégrée\n\nLa sécurité est au cœur de GitLab avec l'intégration de fonctionnalités de sécurité complètes. La plateforme intègre un large éventail de [scanners de sécurité](https://about.gitlab.com/fr-fr/blog/2024/02/27/how-to-integrate-custom-security-scanners-into-gitlab/ \"Qu'est-ce qu'un scanner de securité ?\") automatisés, notamment :\n\n* [L'analyse des dépendances](https://docs.gitlab.com/user/application_security/dependency_scanning/) \n* [Les tests statiques de sécurité des applications (SAST)](https://docs.gitlab.com/user/application_security/sast/) \n* [Les tests dynamiques de sécurité des applications (DAST)](https://docs.gitlab.com/user/application_security/dast/) \n* [La détection des secrets](https://docs.gitlab.com/user/application_security/secret_detection/)\n* [L'analyse des conteneurs](https://docs.gitlab.com/user/application_security/container_scanning/)\n\n![Fonctionnalités de scanning de sécurité intégrées dans le processus CI/CD à différentes étapes du développement](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097077/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750097077289.jpg)\n\n\u003Ccenter>\u003Ci>Fonctionnalités de scanning de sécurité intégrées dans le processus CI/CD à différentes étapes du développement\u003C/i>\u003C/center>\n\n\u003Cbr>\u003C/br>\n\nCes contrôles de sécurité sont intégrés à chaque étape du cycle de développement logiciel, y compris dans les pipelines CI/CD, et offrent aux équipes de développement des retours immédiats sur les failles de sécurité potentielles, et ce dès le début du cycle de développement.\n\n## Conformité et exigences réglementaires\n\nAu-delà de la productivité et de l'expérience utilisateur, de nombreuses entreprises, en particulier celles opérant dans les secteurs réglementés tels que les institutions financières ou les grands groupes, doivent s'assurer que leurs processus respectent des normes de sécurité et de conformité strictes. Elles doivent pouvoir appliquer des stratégies pour différents projets, par exemple en rendant obligatoire l'utilisation d'un scanner de sécurité chaque fois qu'un pipeline CI/CD s'exécute sur des branches de code spécifiques (par exemple, les branches principales ou protégées) ou en exigeant des approbations spécifiques avant de fusionner le code dans la branche principale.\n\nTout devient plus facile avec les [frameworks de conformité](https://about.gitlab.com/blog/2025/04/17/introducing-custom-compliance-frameworks-in-gitlab/) de GitLab : cette fonctionnalité permet aux entreprises de définir et d'appliquer des stratégies structurées aux projets sélectionnés. Cette approche garantit la conformité en appliquant sans intervention manuelle des exigences réglementaires et de sécurité, tout en maintenant un workflow de développement fluide et efficace.\n\n## Développement alimenté par l'IA\n\n[GitLab Duo](https://about.gitlab.com/fr-fr/gitlab-duo/) offre une assistance pilotée par l'IA à chaque étape du développement logiciel. Par conséquent, aucun outil externe n'est nécessaire. Chaque requête alimentée par l'IA est traitée dans le contexte complet du projet et du code base, ce qui permet de travailler de façon plus intelligente et plus efficace.\n\nL'IA peut effectuer de nombreuses tâches, notamment :\n\n* Générer automatiquement des descriptions de tâches\n* Synthétiser les discussions des tickets pour gagner un temps précieux\n* Enrichir la revue de code\n* Suggérer des améliorations pour optimiser le code\n* Automatiser la génération de tests\n* Détecter et corriger les failles de sécurité\n* Réaliser une analyse des causes profondes en cas d'échec des pipelines CI\n* Garantir le respect de la confidentialité et la sécurité des données\n\nGrâce à sa compréhension des besoins des entreprises opérant dans les secteurs fortement réglementés, en particulier dans le [secteur public](https://about.gitlab.com/fr-fr/solutions/public-sector/) et le [secteur financier](https://about.gitlab.com/fr-fr/solutions/finance/), GitLab offre une plateforme unique qui permet d'exécuter des modèles d'IA dans un environnement sécurisé. \n\n[GitLab Duo Self-Hosted](https://about.gitlab.com/fr-fr/blog/2025/02/27/gitlab-duo-self-hosted-enterprise-ai-built-for-data-privacy/ \"GitLab Duo Self-Hosted\") permet de garder un contrôle total sur la confidentialité des données, la sécurité et le déploiement de [grands modèles de langage (LLM)](https://about.gitlab.com/blog/2025/05/29/what-is-a-large-language-model-llm/ \"Qu'est-ce qu'un grand modèle de language ?\") dans leur propre infrastructure et garantit ainsi :\n\n* La protection de la confidentialité des données\n* La conformité aux exigences réglementaires\n* Une sécurité maximale\n* Tous les avantages de l’IA, sans dépendre d’un réseau externe ni exposer vos systèmes à des risques\n\n## GitLab, une plateforme moderne et complète\n\nLes entreprises ont besoin d'une plateforme DevSecOps complète pour rationaliser leurs processus, renforcer la sécurité et accélérer l'innovation. C'est précisément ce qu'offre GitLab : une application unique, qui regroupe tous les outils essentiels aux équipes de développement, de sécurité et des opérations, avec une sécurité intégrée et une automatisation alimentée par l'IA.\n\nPour en savoir plus sur GitLab, découvrez nos démonstrations interactives :\n\n* [GitLab Premium et Ultimate avec GitLab Duo](https://gitlab.navattic.com/gitlab-premium-with-duo) : l'assistance au développement alimentée par l'IA\n* [La sécurité dans les pipelines CI/CD](https://gitlab.navattic.com/gitlab-scans) : l'analyse de sécurité intégrée qui protège vos logiciels\n* [Frameworks de conformité](https://gitlab.navattic.com/compliance) : des stratégies appliquées à l'ensemble des projets pour une meilleure gouvernance\n\n> Participez à notre événement virtuel à l'occasion du lancement de GitLab 18 et découvrez ce que vous réserve notre plateforme DevSecOps, notamment le rôle de l'[IA agentique](https://about.gitlab.com/fr-fr/topics/agentic-ai/ \"Qu'est-ce que l'IA agentique?\"). [Inscrivez-vous dès aujourd'hui !](https://about.gitlab.com/fr-fr/eighteen/)",[9,686,689],{"slug":713,"featured":6,"template":692},"why-are-organizations-moving-to-a-unified-devsecops-platform","content:fr-fr:blog:why-are-organizations-moving-to-a-unified-devsecops-platform.yml","Why Are Organizations Moving To A Unified Devsecops Platform","fr-fr/blog/why-are-organizations-moving-to-a-unified-devsecops-platform.yml","fr-fr/blog/why-are-organizations-moving-to-a-unified-devsecops-platform",{"_path":719,"_dir":249,"_draft":6,"_partial":6,"_locale":7,"seo":720,"content":726,"config":734,"_id":736,"_type":16,"title":737,"_source":18,"_file":738,"_stem":739,"_extension":21},"/fr-fr/blog/introduction-guide-to-linux-servers",{"title":721,"description":722,"ogTitle":721,"ogDescription":722,"noIndex":6,"ogImage":723,"ogUrl":724,"ogSiteName":677,"ogType":678,"canonicalUrls":724,"schema":725},"Guide d'introduction aux serveurs Linux : définition, avantages, usage et installation","Le serveur Linux est couramment utilisé dans les entreprises. Découvrez ses fonctionnalités, ses utilisations et ses avantages.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663065/Blog/Hero%20Images/serveur-linux.jpg","https://about.gitlab.com/blog/introduction-guide-to-linux-servers","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Guide d'introduction aux serveurs Linux : définition, avantages, usage et installation\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab France Team\"}],\n        \"datePublished\": \"2024-12-04\",\n      }",{"title":721,"description":722,"authors":727,"heroImage":723,"date":729,"body":730,"category":14,"tags":731},[728],"GitLab France Team","2024-12-04","Lancé en 1991 comme alternative à Minix, il adopte la licence GNU GPL en février 1992. Linux est aujourd’hui le système d'exploitation le plus utilisé pour la gestion des serveurs d'entreprise. Les serveurs Linux répondent aux besoins d'entreprises de toutes tailles, leur fournissant une plateforme performante et économique pour piloter de nombreuses applications informatiques. Qu'est-ce qu'un serveur Linux ? Quels en sont les avantages et les usages ? Comment installer un serveur Linux ? Voici l'essentiel à savoir pour lancer votre projet sous Linux.\n\n## Qu'est-ce qu'un serveur Linux ?\n\nUn serveur Linux est un serveur informatique opéré avec le système d'exploitation Linux. Linux fut créé en 1991 par le Finlandais Linus Torvalds, sous forme de noyau de système d'exploitation de type Unix. Trois décennies plus tard, il se conçoit aujourd'hui comme une suite cohérente de logiciels formant un __système d'exploitation entièrement opérationnel__, appelée une distribution Linux.  \n\nLes distributions GNU/Linux s'utilisent principalement pour gérer des fonctions informatiques côté serveur (backend). Nous pouvons citer l'hébergement Web, la gestion de réseau et le stockage de données. Linux est open source, ainsi les équipes opérationnelles peuvent télécharger gratuitement une distribution Linux et l'adapter à leurs besoins. Le système d'exploitation Linux est disponible sous différentes distributions GNU/Linux, telles que Debian, Ubuntu ou openSUSE offrant aux équipes de développement un surcroît de flexibilité et de personnalisation. \n\n## Quels sont les avantages d’un serveur Linux ?\n\nLe succès des serveurs Linux s'explique en grande partie par leur accessibilité et leur flexibilité. Mais le système d'exploitation Linux est aussi reconnu pour sa stabilité et sa sécurité, des critères cruciaux pour les infrastructures de serveurs d'entreprise. Certifié par la Free Software Fondation, Linux est un logiciel libre dont le code source est ouvert, ce qui facilite la correction des bogues et des failles de sécurité. \n\nSon __écosystème open source__ cimente aussi la popularité de Linux auprès des développeurs et des ingénieurs informatiques. Une communauté très active promeut GNU/Linux et favorise sa sécurisation et son développement. En résumé, gérer un serveur sous Linux comporte de nombreux avantages : \n\n- __Réduction des coûts.__ Vous pouvez télécharger, utiliser et modifier Linux sans frais de licence, ce qui permet de réaliser d'importantes économies sur les dépenses informatiques. De nombreuses applications compatibles avec Linux sont aussi disponibles gratuitement.\n- __Sécurité.__ Linux offre un niveau de protection avancé, avec un logiciel libre, des mises à jour régulières, des correctifs de sécurité rapidement publiés, et un soutien de la communauté des développeurs et développeuses.\n- __Scalabilité.__ Les serveurs Linux peuvent facilement évoluer en fonction des charges de travail et du nombre d'utilisateurs. Cette souplesse est appréciée par les entreprises en croissance, et idéale pour les [projets DevOps des PME](https://about.gitlab.com/fr-fr/small-business/ \"Projets DevOps des PME\").\n- __Flexibilité.__ Linux offre un degré de personnalisation poussé, les équipes de développement pouvant adapter le logiciel aux spécificités de leur architecture et de leurs applications. Ils disposent aussi d'un large choix parmi les nombreuses distributions GNU/Linux disponibles.\n\n## Comment utiliser un serveur Linux ?\n\nPar leur versatilité, les serveurs Linux se révèlent précieux pour un grand nombre d'usages informatiques. Ils excellent dans les applications d'entreprise les plus sensibles et les plus complexes. Voici quelques exemples d'utilisations fréquentes d'un serveur sous Linux : \n\n- __Hébergement Web__, qui nécessite de gérer de fortes charges de trafic. Des outils très performants dans ce domaine comme Apache et Nginx fonctionnent de façon optimale sous Linux.\n- __Administration système et réseau.__ Avec des commandes en ligne puissantes, des fonctionnalités avancées de routage et de contrôle du trafic intégrées dans le noyau, une maintenance simple et un fonctionnement stable et sobre en ressources, Linux est le système d'exploitation de choix des administrateurs réseau. \n- __Gestion de bases de données.__ Linux procure une robustesse et une scalabilité incomparables pour utiliser les solutions de gestion des données les plus performantes, comme PostgreSQL, MongoDB ou MariaDB. \n- __Cloud et virtualisation.__ Les serveurs Linux permettent de maximiser les performances des logiciels et des serveurs virtuels. Ils sont naturellement plébiscités pour les [applications cloud-native des entreprises](https://about.gitlab.com/fr-fr/topics/cloud-native/ \"Applications cloud-natives des entreprises\").  \n\nLe champ d'utilisation des serveurs sous Linux ne se limite pas à ces exemples. Analyse de données, jeux en ligne, transferts de fichier, business intelligence, messagerie… Les équipes choisissent souvent GNU/Linux pour des projets informatiques qui nécessitent un haut degré de contrôle et de sécurisation, et font appel à des applications avancées et exigeantes en ressources.\n\n### Conseils pour administrer un serveur Linux\n\nSi vous souhaitez tirer pleinement parti des capacités offertes par Linux, nous vous conseillons de suivre certaines bonnes pratiques dans l'administration d'un serveur Linux en entreprise. Pour assurer un démarrage réussi, il est essentiel de __former votre équipe IT__ aux commandes en ligne, aux configurations de sécurité et aux techniques de dépannage. Utilisez des __outils de surveillance__ compatibles avec Linux, tels que Prometheus, Nagios ou Zabbix, pour maintenir la fiabilité de votre infrastructure à long terme.\n\nLa __planification des sauvegardes__ est un autre point crucial pour assurer la viabilité de votre projet. Vous pouvez utiliser la règle du 3-2-1. Sauvegardez trois copies des données, stockez deux copies sur des supports différents, dont une sera placée hors site. Enfin, une bonne gestion de serveur Linux requiert une attention particulière aux __mesures de sécurité__. Nous recommandons la mise en place de clés SSH pour les mots de passe, de logiciels pare-feu et de détection des intrusions comme Fail2ban, et d'une authentification à deux facteurs.\n\n## Comment installer un serveur Linux ?\n\nProlongeons ce guide d'introduction sur une note plus pratique. Voici un tutoriel sur le serveur Linux qui vous accompagnera dans l'installation de ce logiciel en entreprise. Suivez les principales étapes pour installer un serveur Linux :\n\n1. Choisissez une __distribution Linux__ adaptée. Optez par exemple pour Ubuntu Server, connu pour sa facilité d'utilisation, ou Debian, réputé pour sa robustesse.\n2. Créez une __ISO bootable__ de la distribution Linux. Téléchargez-la sur le site officiel et placez-la sur une clé USB pour lancer l'installation sur le serveur.\n3. __Installez Linux__ à partir de la clé USB. Procédez à la configuration de base, à la partition du disque, à la configuration de l'utilisateur, au redémarrage et la première connexion.\n4. __Effectuez la configuration initiale__ du serveur Linux : sécurisez l’accès par SSH, créez un utilisateur non-root, configurez le pare-feu et mettez à jour le système.\n5. __Configurez le réseau.__ Choisissez une IP statique ou dynamique, configurez les DNS et la redirection des ports.\n\nEnfin, pour terminer l'installation du serveur Linux, veillez à parfaire la sécurisation du serveur avec installation d'un pare-feu, d'un certificat SSL et d'outils de surveillance du réseau. Une fois ces étapes terminées, votre serveur Linux est prêt à fonctionner. \n\n## Lancez un projet avec GitLab et Linux\n\nSi Linux a toujours dominé le secteur des serveurs d'entreprise, il connaît aussi un regain de popularité du côté du grand public. Au succès relatif des distributions adaptées aux utilisateurs sur PC, telles que Linux Mint et Ubuntu, s'ajoute l'essor des systèmes d'exploitation Android et Chrome OS pour mobiles et tablettes, qui sont basés sur le noyau Linux. Investir dans des applications fonctionnant sous Linux apparaît comme une stratégie gagnante à long terme, tant le succès de ce logiciel ne se dément pas.\n\nGitLab et Linux offrent un environnement idéal pour développer vos activités de façon agile et profiter de tous nos outils de collaboration. La plateforme GitLab prend en charge de nombreux paquets Linux officiels, tels que Debian, Ubuntu, AlmaLinux et CentOS 7. Rendez-vous sur notre page d'information pour [installer GitLab avec un serveur Linux](https://about.gitlab.com/fr-fr/install/#official-linux-package \"Installer GitLab avec un serveur Linux\") et mener à bien votre projet.\n\n## Installer une distribution Linux avec GitLab\n\n- [Paquet Ubuntu](https://about.gitlab.com/fr-fr/install/#ubuntu \"Paquet Ubuntu\")\n- [Paquet Debian](https://about.gitlab.com/fr-fr/install/#debian \"Paquet Debian\")\n- [Paque AlmaLinux](https://about.gitlab.com/fr-fr/install/#almalinux \"Paque AlmaLinux\")\n- [Paquet CentOS 7](https://about.gitlab.com/fr-fr/install/#centos-7 \"Paquet CentOS 7\")\n- [Paquet OpenSUSE Leap](https://about.gitlab.com/fr-fr/install/#opensuse-leap \"Paquet OpenSUSE Leap\")\n- [Paquet Amazon Linux 2](https://about.gitlab.com/fr-fr/install/#amazonlinux-2 \"Paquet Amazon Linux 2\")\n- [Paquet Raspberry Pi](https://about.gitlab.com/fr-fr/install/#raspberry-pi-os \"Paquet Raspberry Pi\")\n",[732,733],"DevOps","open source",{"slug":735,"featured":6,"template":692},"introduction-guide-to-linux-servers","content:fr-fr:blog:introduction-guide-to-linux-servers.yml","Introduction Guide To Linux Servers","fr-fr/blog/introduction-guide-to-linux-servers.yml","fr-fr/blog/introduction-guide-to-linux-servers",{"_path":741,"_dir":249,"_draft":6,"_partial":6,"_locale":7,"seo":742,"content":748,"config":754,"_id":756,"_type":16,"title":757,"_source":18,"_file":758,"_stem":759,"_extension":21},"/fr-fr/blog/what-is-an-okr-definition",{"title":743,"description":744,"ogTitle":743,"ogDescription":744,"noIndex":6,"ogImage":745,"ogUrl":746,"ogSiteName":677,"ogType":678,"canonicalUrls":746,"schema":747},"OKR : la méthode pour définir ses objectifs et les atteindre","Dans cet article, découvrez la méthode OKR, comment l′appliquer au sein de votre organisation pour mieux définir vos objectifs et les atteindre.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665726/Blog/Hero%20Images/OKR.jpg","https://about.gitlab.com/blog/what-is-an-okr-definition","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"OKR : la méthode pour définir ses objectifs et les atteindre\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab France Team\"}],\n        \"datePublished\": \"2024-10-02\",\n      }",{"title":743,"description":744,"authors":749,"heroImage":745,"date":750,"body":751,"category":14,"tags":752},[728],"2024-10-02","Créés par le 3ème employé d′Intel, [Andrew Grove](https://fr.wikipedia.org/wiki/Andrew_Grove \"Biographie de Andrew Grove\"), dans les années 1970, les Objectifs & Résultats Clés (OKR) sont une méthode de gestion pour aider les organisations à atteindre leurs objectifs. Grove a conçu une idée simple mais puissante : définir où l′on veut aller (Objectif) et mesurer le progrès réalisé pour y parvenir (Résultats Clés). Il a contribué à la popularisation de la méthode dans son livre paru en 1995, « High Output Management ». Par la suite, [John Doerr](https://fr.wikipedia.org/wiki/John_Doerr \"Biographie de John Doerr\"), ancien employé d′Intel, introduit cette méthode chez Google et développe la notoriété des OKR à travers son livre « Measure What Matters » ( « Mesurez ce qui compte »). \n\nDans cet article, découvrez les principes de la méthode OKR et comment l′appliquer à votre organisation. \n\n## OKR (Objective and Key Results) : définition\n\nConcrètement, que sont les OKR ? Il s’agit d’une méthode pour définir des objectifs clairs au sein d′une entreprise. Les objectifs sont associés simultanément à des résultats spécifiques et mesurables. Ces indicateurs permettent de suivre le progrès et la réalisation de ces objectifs. \n\nLes OKR sont donc composés de deux éléments : \n- __Les objectifs :__ une description précise, courte et qualitative des objectifs à atteindre.\n- __Les résultats clés__ : l′ensemble des indicateurs pour attester du progrès et de l'atteinte de l'objectif.\n\nGrâce aux résultats clés, les entreprises suivent les progrès des différentes équipes avec objectivité. Généralement, elles définissent des OKR globaux et des OKR pour chaque service. Ceux-ci dépendent des priorités de chaque entreprise en fonction du contexte, des concurrents, des clients actuels, du business model ou encore des plans d′évolution. \n\nMais pourquoi définir des objectifs précis pour chaque équipe ? Les OKR par service précisent les points sur lesquels les employés doivent se concentrer. L′entreprise suit donc avec précision son développement, comprend pourquoi elle atteint (ou non) ses objectifs et ajuste sa stratégie en temps réel en fonction des résultats clés obtenus. \n\n> [Essayez GitLab Ultimate gratuitement pendant 30 jours.](https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/blog&glm_content=default-saas-trial \"Essai gratuit de GitLab pendant 30 jours. \") \n\n## Comprendre la méthode OKR \n\nAu sein de votre entreprise, la méthode OKR traduit la vision stratégique globale en objectifs actionnables et mesurables pour vos équipes. \n\nOn peut séparer les OKR en trois grandes catégories : \n\n- __les OKR organisationnels__ : ils sont le cap à prendre pour l’entreprise. Les OKR organisationnels traduisent la vision globale. Généralement définis sur une année, ils assurent l’alignement stratégique de toutes les équipes. \n\n- __les OKR tactiques__ : ils concernent les objectifs de chaque équipe de l’entreprise. Définis sur un cycle plus court (mensuel ou trimestriel), l’entreprise reste agile face aux changements et aux résultats de chaque service. \n\n- __les OKR individuels__ : attribués personnellement à chaque employé, ils permettent d′aligner tous les collaborateurs sur la stratégie de son équipe et globale de l′entreprise. \n\n## Pourquoi utiliser la méthodologie OKR ?\n\nLa méthode OKR encourage une culture de la performance, de la transparence et de l′engagement. Elle aligne les objectifs individuels avec la vision de l′entreprise. Voici trois raisons pour lesquelles vous devriez adopter la méthode OKR au sein de votre entreprise. \n\n### 1 – La clarté des objectifs\n\nAvec la méthode OKR, la définition des objectifs doit être précise et concise. Ils sont révélateurs de ce que l'entreprise souhaite accomplir durant le prochain mois ou trimestre. Puisque des indicateurs spécifiques et mesurables s′ajoutent aux objectifs, les équipes comprennent clairement la direction à prendre. \n\n### 2 – La priorisation des projets\n\nAvec la définition d′un résultat à atteindre dans un laps de temps donné, vous déterminez la priorité pour votre équipe. Vous allouez donc les ressources stratégiquement pour atteindre les résultats escomptés. Le management de l′organisation est également plus simple : tout le monde travaille dans la même direction. La cohésion et la productivité de l′entreprise bénéficient de cette priorisation.\n\n### 3 – La mesure des performances\n\nUn objectif sans résultats clés empêche le suivi précis de sa réalisation. Les indicateurs de performance seuls donnent des résultats sans avoir de direction précise, ni de priorité dans l′amélioration de ces performances. Utiliser la méthode OKR est donc une technique optimale pour faire avancer son organisation vers la réalisation de ses objectifs. Elle mesure efficacement les progrès de l′entreprise et permet d′ajuster les actions en conséquence. \n\n## Comment définir et suivre les OKR ?\n\n1. __La vision.__ Tout commence par la définition de votre cap. Qu′est-ce qui est primordial pour votre entreprise ? Vous pouvez aussi prioriser selon le concept du livre « The One Thing » de Gary Keller : quelle est la tâche à faire pour que tout le reste devienne plus facile ou inutile ? Imaginez l′impact souhaité à la fin du mois ou du trimestre. \n\n2. __L′objectif.__ Une fois que votre vision est clarifiée, il est temps de définir un objectif ambitieux avec un laps de temps précis.\n\nExemple : Une équipe DevSecOps souhaite améliorer son temps de réaction aux incidents de sécurité. Son objectif est de réduire de 25 % le délai moyen de résolution des incidents de sécurité au cours du prochain trimestre.\n\n3. __Les résultats clés.__ Ajoutez des résultats clés mesurables. Si besoin, découpez l′objectif en sous-parties auxquelles vous ajoutez un indicateur de performance. Limitez vos résultats clés à 5 au maximum. Trop d'indicateurs perturbent la lecture de l'atteinte de l'objectif et empêchent les équipes de se focaliser sur un aspect particulier à améliorer. \n\nExemple avec cette même équipe DevSecOps, dont les résultats clés définis sont les suivants : \n- Automatiser au moins 40 % des tâches de résolution des incidents de sécurité,\n- Procéder à un examen de sécurité bimensuel,\n- Implémenter les outils de test de sécurité sur le code.\n\nChaque résultat clé est précis et mesurable et se rapporte à l'objectif de réduction du temps de résolution des problèmes de sécurité.\n\n4. __Le suivi.__ Implémentez les outils de suivi les plus pertinents pour visualiser vos progrès. Affichez ces KPIs clairement au sein de votre entreprise et faites part de vos avancées lors des réunions d’équipe. \n\n5. __Les révisions.__ Organisez des révisions régulières, dont la fréquence est à définir selon l′OKR. Cela permet de corriger la stratégie si nécessaire ou de continuer si vous attestez des progrès. Encouragez les membres de l′équipe à donner leur feedback sur l′efficacité des stratégies et les améliorations potentielles.\n\n6. __Fin du cycle.__ Examinez si les résultats clés sont atteints. Tirez des leçons pour les prochains OKR et recommencez. \n\nPour les équipes DevSecOps, ce cycle permet de voir le fruit de leur travail, mais aussi de l'impact réel sur les utilisateurs et l'entreprise.  \n\n## KPI vs OKR : quelles différences ?\n\nLes KPIs se concentrent sur le suivi de la performance, quand les OKR précisent l'objectif de l'entreprise et les résultats quantifiés pour l′atteindre. Voici en quoi ces deux notions sont différentes : \n\n- __Indicateurs clés de performance (KPI) :__ ils mesurent l'efficacité des processus et des résultats de l′existant. \n- __Objectifs et résultats clés (OKR) :__ ils établissent l′objectif de l′organisation ou d'un service et associent des résultats précis à atteindre pour considérer l'objectif comme réussi.\n\n## Méthode OKR avec GitLab\n\nLes équipes DevSecOps ont la possibilité de définir leurs OKR, puis de suivre leurs progrès directement depuis GitLab. Découvrez en vidéo [comment utiliser GitLab pour vos OKR](https://handbook.gitlab.com/handbook/company/okrs/#how-to-use-gitlab-for-okrs \"Comment utiliser GitLab pour vos OKR\") : \n\n\u003C!-- blank line -->\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/OgJI_Yf4zXs?si=fCMeD-yiIPZtovF_\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\u003C!-- blank line -->\n\n*Nota Bene : la fonctionnalité OKR de GitLab est en cours d’expérimentation et n’est pas disponible par défaut. Pour en savoir plus sur les disponibilités de cette fonctionnalité, [consultez notre documentation](https://docs.gitlab.com/ee/user/okrs.html \"Documentation de GitLab sur les OKR\").* \n\n> [Essayez GitLab Ultimate gratuitement pendant 30 jours.](https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/blog&glm_content=default-saas-trial \"Essai gratuit de GitLab pendant 30 jours. \") \n\n## FAQ sur les OKR \n\n### MBO vs OKR : quelle est la différence entre les deux ?\n\nUn MBO (Management by Objectives) est fixé sur une période annuelle et se focalise sur l'objectif à atteindre, sans réel indicateur clé associé. Il est fixé par le manager à une personne en privé et représente un facteur de décision concernant l'augmentation de son salaire annuel. Les OKR sont fixés sur une période mensuelle ou trimestrielle. Liés avec les résultats clés et leurs indicateurs, ces objectifs ambitieux et aspirationnels se concentrent sur l'objectif à atteindre et sur les éléments fondamentaux pour y parvenir. \n\n### Quelles sont les erreurs à éviter lors de la définition et du suivi des OKR ?\n\nSi le principe des OKR est simple par définition, sa mise en place présente quelques challenges. Les erreurs les plus communes à éviter lors de la définition et du suivi des OKR sont (liste non-exhaustive) : \n\n- __Définir un trop grand nombre d′OKR.__ Ce type d'objectifs est là pour prioriser ce qui est important pour une entreprise et pour chaque équipe. Multiplier le nombre d′OKR dilue la concentration et rend l'atteinte des objectifs difficile.\n- __Établir des résultats clés non mesurables.__ Le concept des OKR repose sur des résultats permettant d′attester si l′objectif a été atteint. Sans mesure exacte, il est impossible pour une équipe de savoir à quel point elle a progressé. Attention : les résultats clés ne sont pas obligatoirement une tâche à accomplir. Cela peut aussi être une métrique à respecter comme un temps donné, un pourcentage d′accomplissement ou une marge d′erreur maximum. \n- __Ne pas aligner les OKR d′équipe sur les OKR de l′entreprise.__ Les objectifs de chaque équipe découlent du but et de la vision de l′entreprise. Si chaque équipe avance dans son coin, les OKR de l′entreprise deviennent difficiles à atteindre.\n\n### Les OKR sont-ils utiles dans la tech ?\n\nLes OKR proviennent du monde de la tech. Andrew S. Grove a développé le concept chez Intel, repris ensuite par John Doerr chez Google. Cette méthode est donc particulièrement adaptée aux équipes tech et leurs spécificités.",[9,753],"agile",{"slug":755,"featured":6,"template":692},"what-is-an-okr-definition","content:fr-fr:blog:what-is-an-okr-definition.yml","What Is An Okr Definition","fr-fr/blog/what-is-an-okr-definition.yml","fr-fr/blog/what-is-an-okr-definition",{"_path":761,"_dir":249,"_draft":6,"_partial":6,"_locale":7,"seo":762,"content":768,"config":773,"_id":775,"_type":16,"title":776,"_source":18,"_file":777,"_stem":778,"_extension":21},"/fr-fr/blog/what-is-rest-api",{"title":763,"description":764,"ogTitle":763,"ogDescription":764,"noIndex":6,"ogImage":765,"ogUrl":766,"ogSiteName":677,"ogType":678,"canonicalUrls":766,"schema":767},"API REST : définition et présentation complète","Qu'il s'agisse de développer une application de réservation en ligne, une solution de paiement mobile, ou un service de messagerie, il est fort probable que votre équipe se serve d'une API REST.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662858/Blog/Hero%20Images/API-REST.jpg","https://about.gitlab.com/blog/what-is-rest-api","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"API REST : définition et présentation complète\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab France Team\"}],\n        \"datePublished\": \"2024-09-04\",\n      }",{"title":763,"description":764,"authors":769,"heroImage":765,"date":770,"body":771,"category":14,"tags":772},[728],"2024-09-04","Qu'est-ce qu'une API REST ? Quels sont ses avantages et comment l'utiliser ? Cet article répond aux questions que vous pourriez vous poser sur l'API REST.\n\n__Sommaire__\n- Qu’est-ce qu’une API REST ?\n- Comment fonctionne une API REST ?\n- Quels sont les principes de l'API REST ?\n- Quels sont les avantages d’une API REST ?\n- Utilisations d'une API REST\n\n## Qu’est-ce qu’une API REST ?\n\nL’API REST est une __API (Interface de Programmation d’Application) qui adhère au standard de l'architecture REST (REpresentational State Transfer)__. D’autres appellations désignent l’API REST : API RESTful ou API Web Restful. \n\nUne API, ou interface de programmation d'application, est un logiciel qui permet à deux applications de communiquer entre elles. En informatique, les APIs sont indispensables pour permettre à diverses applications de fonctionner ensemble. \n\nPour créer une API, les développeurs suivent des méthodes et des principes strictement définis, afin que l'ensemble puisse fonctionner. Avant les années 2000, les développeurs utilisaient SOAP (*Simple Object Access Protocol*), un protocole bâti sur XML, complexe à coordonner et gourmand en ressources. Si SOAP est encore utilisé de nos jours, il a été en grande partie remplacé par l'API REST.\n\nConçu en 2000 par l'informaticien américain __Roy Fielding__ au cours de sa thèse de doctorat, REST (*REpresentational State Transfer*) est devenu le modèle dominant de création des APIs, et un jalon incontournable dans le développement du *World Wide Web*. Aujourd'hui, la grande majorité des APIs sont basées sur REST, particulièrement pour offrir des __services Web, interactifs ou mobiles__. Découvrons le fonctionnement des API RESTful, leurs avantages, et leurs applications très variées.\n\n## Comment fonctionne une API REST ? \n\nDans la pratique, l'API REST fonctionne sur le principe de l'environnement client-serveur. L'API RESTful récupère et transmet d'un côté les requêtes d'un utilisateur ou d'une application, et de l'autre les informations rendues par le serveur (application ou base de données). \n\nQuelques notions clés permettent de saisir le fonctionnement d'une API RESTful. __Le client__ est l'entité effectuant une demande. C'est le cas par exemple d'un utilisateur effectuant une recherche au sein d'un catalogue de produits sur son navigateur. __L'API__ se charge de communiquer au serveur la requête, et de renvoyer vers le client les informations demandées. Les informations qui transitent par l'API sont les ressources. __Le serveur__ traite les requêtes. Dans le cas présent, il renverra la liste des produits correspondant aux critères de recherche.\n\nLes requêtes du client sont formulées à travers le __protocole HTTP__ (*HyperText Transfer Protocol*). Voici les principales méthodes et tâches qu'il permet d'accomplir : \n\n- GET : récupérer des données envoyées par le serveur.\n\n- POST : envoyer et publier des informations vers le serveur (les données d'un formulaire d'inscription par exemple).\n\n- PUT : mettre à jour les informations du serveur.\n\n- PATCH : modifier partiellement une ressource existante.\n\n- DELETE : supprimer des informations du serveur.\n\nLes formats de données pour utiliser une API REST sont divers. Le format JSON (*JavaScript Object Notation*) est un format léger, facile à comprendre, et utilisable par de nombreux langages de programmation. XML (*Extensible Markup Language*) permet de gérer des structures de données complexes, et est compatible avec d'autres standards comme le RSS. YAML et HTML sont d'autres formats souvent utilisés pour communiquer les ressources.\n\n## Quels sont les principes de l'API REST ?\n\nUne API REST suit les principes de REST en termes d'__architecture logicielle__. Ces principes créent une ligne directrice permettant de créer des APIs flexibles et légères, parfaitement adaptées à la transmission de données sur internet. \n\nVoici les six principes architecturaux qui régissent une interface REST : \n\n- __Découplage client-serveur.__ Le client connaît seulement l'URI (Uniform Resource Identifier) de la ressource à récupérer. Le serveur interagit uniquement en transmettant ses données via HTTP.\n\n- __Interface uniforme.__ L'architecture REST uniformise la façon dont les informations sont identifiées, gérées et transmises, et fait appel aux hyperliens pour apporter des ressources supplémentaires au client.\n\n- __Code à la demande.__ Le serveur peut transmettre du code au client pour étendre ses fonctionnalités, par exemple pour aider à repérer les erreurs d'un formulaire.\n\n- __Système en couches.__ Une API RESTful peut s'exécuter sur plusieurs serveurs organisés de façon hiérarchique, pour fournir un service plus stable et performant au client.\n\n- __Mise en cache.__ Le serveur REST peut mettre en cache des données pour mieux servir le client, en stockant par exemple les images d'un site pour les resservir ensuite.\n\n- __Absence d'état (Stateless).__ Chaque requête du client est isolée et traitée indépendamment par le serveur. Ainsi, chaque appel doit contenir tous les éléments nécessaires à son traitement.\n\n## Quels sont les avantages d’une API REST ?\n\nEn respectant les exigences du framework de l'API REST, les développeurs profitent des nombreux avantages des API RESTful pour développer des applications efficaces et puissantes : \n\n- __Polyvalence :__ il n'y a aucune restriction sur le langage de programmation à utiliser, et un grand choix pour le format de données (XML, PYTHON, JSON, HTML, etc.)\n\n- __Légèreté :__ les formats de données légers d'une API REST la rendent idéale pour des applications mobiles ou l'Internet des objets (IoT).\n\n- __Portabilité :__ la séparation client-serveur facilite l'échange de données entre les plateformes.\n\n- __Flexibilité :__ cette API n'a pas les lourdeurs d'un protocole, c'est un style architectural.\n\n- __Indépendance :__ les développeurs peuvent travailler séparément sur la partie client ou serveur. \n\nLes avantages de l'API REST se traduisent en gain de productivité et en évolutivité pour les équipes de développement. La mise à l'échelle des systèmes utilisant API REST est facilitée. Les fonctionnalités sont donc plus à même de soutenir une grande charge d'utilisateurs et d'opérations.\n\n### Des contraintes de sécurité\n\nLa création et la gestion d'une API Web RESTful ne sont pas exemptes de défis. L'__authentification__ des utilisateurs peut devenir complexe lorsqu'elle fait appel à plusieurs méthodes différentes, par HTTP, clés API, ou OAuth (*Open Authorization*). Sur des applications larges et complexes, la __multiplication des points de terminaison__ (*endpoints*) entre le serveur et le client peut nuire à la cohérence d'ensemble, de même que les mises à jour si elles laissent d'anciens points de contact encore actifs. \n\nD'autre part, l'interface REST a une faiblesse, car elle transmet par l'URL des points de terminaison des données potentiellement sensibles, comme les identifiants. Sa sécurisation nécessite des mesures spécifiques comme un chiffrement TLS (*Transport Layer Security*), un modèle d'authentification des utilisateurs robuste, et un système de prise en charge des requêtes abusives et de limitation des débits.\n\n## Utilisations d'une API REST\n\nLes développeurs utilisent des API à l'architecture REST pour créer et maintenir de nombreux services. Ainsi, la plupart des applications web et mobiles utilisent des API REST pour accéder et partager des ressources et des informations. Dans le Cloud, cette API permet de connecter rapidement les services des architectures distribuées et hybrides. Au sein des grandes entreprises, elle facilite l'interopérabilité entre les composants des systèmes d'information. \n\nVoici des exemples d'application d'une API REST au sein de sociétés reconnues : \n\n- __Google Search.__ Cette API fournit en temps réel des millions de résultats de recherche sur Google Web et Google Image.\n\n- __Deezer.__ L'API REST de la plateforme de streaming musical permet de retrouver un album ou un artiste dans la base de données de millions de chansons.\n\nActualiser les prix d'un site e-commerce, modifier un champ dans le code source, automatiser des publications, [orchestrer des clusters Kubernetes](https://about.gitlab.com/fr-fr/blog/kubernetes-the-container-orchestration-solution/ \"Kubernetes, la solution d’orchestration des conteneurs\"), etc. Le champ d'utilisation des APIs RESTful n'a de limites que celle de l'imagination des développeurs et des créateurs d'applications digitales.\n\n### L'API REST de GitLab\n\nGitLab propose une suite complète d'outils et d'APIs pour l'intégration et l'automatisation d'applications externes. Elle comprend GraphQL, les webhooks, des extensions IDE, et naturellement, une API REST. L'authentification de l'API REST GitLab peut se faire de nombreuses manières, par jeton d'accès, OAuth, ou cookies de session par exemple. Les points de terminaisons sont disponibles pour les templates Dockerfile, .gitignore, GitLab CI/CD YAML et Open source. Pour profiter pleinement de toutes les possibilités de développement de vos applications agiles et cloud-natives, consultez la [documentation complète de l'API REST de GitLab](https://docs.gitlab.com/ee/api/rest/index.html \"Documentation sur l'API REST de GitLab\").  \n\n## FAQ sur l'API REST\n\n### REST vs SOAP\n\n__REST et SOAP__ sont deux standards d'API. L'API REST (*REpresentational State Transfer*) reprend les principes architecturaux de REST, qui permettent de faire communiquer un serveur et un client de façon légère et évolutive. L'API REST est le type d'API le plus répandu. Le protocole SOAP (*Simple Object Access Protocol*) est plus ancien, plus rigide et disponible uniquement en format XML. Ce standard historique peut être encore utilisé pour des applications qui requirent un haut niveau de sécurité.\n\n### Quelle est la différence entre REST et API REST ?\n\nREST est un style d'architecture logicielle destiné à faciliter la création de services web et l'échange de données sur internet, en assurant l'interopérabilité entre les ordinateurs et serveurs. L'API Web RESTful est un type d'API qui se base sur les grands principes de REST. \n\n### Quelle est la différence entre REST et RESTful ?\n\nREST est un ensemble de principes architecturaux qui définissent comment les services web doivent être conçus pour être simples, évolutifs et performants. Une API est dite RESTful lorsqu'elle respecte ces principes, notamment l'utilisation des verbes HTTP standard (GET, POST, PUT, DELETE), l'organisation des ressources via des URLs claires et prévisibles, et l'absence d'état côté serveur. En d'autres termes, une API peut être basée sur REST sans être pleinement RESTful si elle ne respecte pas toutes les bonnes pratiques de cette architecture.\n\n### Quels sont les principes d'une API REST ?\n\nUne API REST respecte les six grands principes de l'architecture REST. Ces principes sont l'interface uniforme, le code à la demande, le système en couches, la mise en cache, l'absence d'état et le découplage client-serveur. Ce dernier principe constitue la base de la structure d'une API RESTful ; il est essentiel au succès de cette API dans le monde des applications Web.\n",[732,9],{"slug":774,"featured":6,"template":692},"what-is-rest-api","content:fr-fr:blog:what-is-rest-api.yml","What Is Rest Api","fr-fr/blog/what-is-rest-api.yml","fr-fr/blog/what-is-rest-api",{"_path":780,"_dir":249,"_draft":6,"_partial":6,"_locale":7,"seo":781,"content":787,"config":795,"_id":797,"_type":16,"title":798,"_source":18,"_file":799,"_stem":800,"_extension":21},"/fr-fr/blog/top-10-gitlab-workflow-hacks-you-need-to-know",{"title":782,"description":783,"ogTitle":782,"ogDescription":783,"noIndex":6,"ogImage":784,"ogUrl":785,"ogSiteName":677,"ogType":678,"canonicalUrls":785,"schema":786},"Workflows GitLab : top 10 des hacks à connaître","Amanda Rueda, notre Sr. Product Manager partage ses astuces pour naviguer rapidement et efficacement sur la plateforme DevSecOps de GitLab et améliorer la collaboration en équipe.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099361/Blog/Hero%20Images/Blog/Hero%20Images/lightvisibility_lightvisibility.png_1750099361252.png","https://about.gitlab.com/blog/top-10-gitlab-workflow-hacks-you-need-to-know","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Workflows GitLab : top 10 des hacks à connaître\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Amanda Rueda\"}],\n        \"datePublished\": \"2024-04-09\",\n      }",{"title":782,"description":783,"authors":788,"heroImage":784,"date":790,"body":791,"category":14,"tags":792},[789],"Amanda Rueda","2024-04-09","Dans le monde du développement logiciel, être efficace n'est pas seulement une question de rapidité, c'est aussi une question de navigation intelligente. En tant que Sr. Product Manager, je comprends parfaitement la valeur de l'efficacité lorsque l'on travaille au sein d’une plateforme DevSecOps.\n\nVoici mes 10 fonctionnalités GitLab préférées et il se peut que ce soit celles dont vous ayez vraiment besoin pour améliorer votre workflow.\n\n## 1. La résolution des commentaires\n\nLa résolution des commentaires est utile pour les merge requests, mais elle l’est également pour les tickets, car elle permet de réduire considérablement le bruit et de rationaliser la gestion des tâches. \n\n> **Pourquoi est-ce que j'aime cette fonctionnalité ?** Non seulement la résolution des commentaires permet de réduire le bruit autour d'un ticket, mais c'est aussi un excellent moyen de gérer les tâches.\n> \n> **Cas d'utilisation.** La résolution des commentaires est un excellent outil pour les tickets sur lesquels vous recueillez des retours. Répondez aux commentaires et fournissez un lien, résolvez le commentaire et passez au suivant.\n> \n> __[Documentation pratique](https://docs.gitlab.com/ee/user/discussions/#resolve-a-thread)__\n\n![exemple de résolution de commentaires - image 1](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099376/Blog/Content%20Images/Blog/Content%20Images/image5_aHR0cHM6_1750099376147.gif)\n\n\u003Cp>\u003C/p>\n\n## 2. Les commentaires internes\n\nAdressez-vous directement à votre équipe. Gardez les discussions privées au sein d'un ticket ou d'une merge request, les commentaires n'étant visibles que par les membres de votre équipe. C'est l'équilibre parfait entre transparence et confidentialité.\n\n> **Pourquoi est-ce que j'aime cette fonctionnalité ?** Elle permet d'équilibrer la confidentialité et la transparence, tout en permettant à la communauté d'avoir accès à une discussion plus large.\n> \n> **Cas d'utilisation.** Lorsqu'elle coordonne le lancement d'un produit, votre équipe marketing peut utiliser les commentaires internes pour discuter et affiner le message et la stratégie. Cela permet de centraliser vos discussions et de les rendre facilement accessibles à l'équipe lors de la phase de réflexion.\n> \n> **[Documentation pratique](https://docs.gitlab.com/ee/user/discussions/#add-an-internal-note)**\n\n![exemple de commentaires internes](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099376/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750099376148.png)\n\n\u003Cp>\u003C/p>\n\n## 3. Les filtres\n\nLorsque vous recherchez des informations, l'utilisation de filtres et/ou vous aide à trouver exactement ce que vous recherchez, rapidement et efficacement.\n\n> **Pourquoi est-ce que j'aime cette fonctionnalité ?** Cette fonctionnalité est idéale pour trouver exactement ce dont vous avez besoin et avoir des workflows efficaces et rationalisés.\n> \n> **Cas d'utilisation.** Recherchez des tickets relatifs à une initiative en particulier qui sont assignés à des groupes spécifiques.\n>\n> __[Documentation pratique](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#filter-with-the-or-operator)__\n\n![exemple de filtre et/ou](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099376/Blog/Content%20Images/Blog/Content%20Images/and_or__1__aHR0cHM6_1750099376152.gif)\n\n\u003Cp>\u003C/p>\n\n## 4. Les URL\n\nL'ajout de « + » ou de « +s » à la fin d'une URL GitLab la transforme en un extrait informatif, ce qui vous permet de partager vos progrès sans obliger vos collaborateurs à quitter la page.\n\n> **Pourquoi est-ce que j'aime cette fonctionnalité ?** C'est comme avoir une vision à rayons X pour les URL : vous voyez ce qui est important sans même avoir à cliquer !\n> \n> **Cas d'utilisation.** Vous souhaitez partager vos progrès dans les commentaires ? Ajoutez simplement « +s » au lien et tout le monde est instantanément sur la même longueur d'onde.\n> \n> __[Documentation pratique](https://docs.gitlab.com/ee/user/markdown.html#show-the-issue-merge-request-or-epic-title-in-the-reference)__\n\n![exemple de développement automatique d'URL](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099376/Blog/Content%20Images/Blog/Content%20Images/image7_aHR0cHM6_1750099376154.gif)\n\n\u003Cp>\u003C/p>\n\n## 5. Les actions rapides\n\nGrâce à de simples commandes textuelles, les actions rapides vous permettent d'effectuer des tâches telles que l'assignation d'utilisateurs, l'ajout de labels, etc., directement à partir de la description ou de la zone de commentaire.\n\n> **Pourquoi est-ce que j'aime cette fonctionnalité ?** Elle permet d’économiser des clics et du temps.\n> \n> **Cas d'utilisation.** Lorsque je crée un nouveau ticket, j'utilise des actions rapides pour ajouter automatiquement des labels et me connecter à l'epic lors de l'enregistrement. \n> \n> __[Documentation pratique](https://docs.gitlab.com/ee/user/project/quick_actions.html)__\n\n![exemple d'actions rapides](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099376/Blog/Content%20Images/Blog/Content%20Images/image6_aHR0cHM6_1750099376156.gif)\n\n\u003Cp>\u003C/p>\n\n## 6. La modification en masse\n\nAppliquez des labels ou changez les assignés sur plusieurs tickets à la fois. Cette fonctionnalité transforme des mises à jour potentiellement fastidieuses en un jeu d'enfant, permettant d'ajuster rapidement de nombreux tickets.\n\n> **Pourquoi est-ce que j'aime cette fonctionnalité ?** Parce qu'elle transforme les mises à jour fastidieuses en un véritable gain de temps.\n> \n> **Cas d'utilisation.** Vous souhaitez taguer l’ensemble des tickets d’un sprint, car ils nécessitent une révision ? Pour cela, il vous suffit de filtrer, de tout sélectionner et d'ajouter votre label en masse, en toute simplicité.\n> \n> __[Documentation pratique](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#bulk-edit-issues-from-a-project)__\n\n![exemple de modification en bloc](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099376/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750099376157.gif)\n\n\u003Cp>\u003C/p>\n\n## 7. Les epics\n\nRegroupez les tickets sous forme d'epics sur votre tableau afin de suivre visuellement les progrès et d'en discuter. C'est un moyen efficace de contextualiser le travail lors des révisions ou des réunions.\n\n> **Pourquoi est-ce que j'aime cette fonctionnalité ?** Vous comprenez facilement le contexte du travail lorsque vous consultez le tableau.\n> \n> **Cas d'utilisation.** Lors des réunions, regroupez votre travail par epics afin de pouvoir plus facilement visualiser le travail effectué.\n> \n> __[Documentation pratique](https://docs.gitlab.com/ee/user/project/issue_board.html#group-issues-in-swimlanes)__\n\n![exemple de couloirs epic](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099376/Blog/Content%20Images/Blog/Content%20Images/image4_aHR0cHM6_1750099376158.gif)\n\n\u003Cp>\u003C/p>\n\n## 8. Les diagrammes Wiki\n\nIllustrez des idées et des workflows directement dans vos pages wiki grâce à des diagrammes faciles à créer. Cette fonctionnalité prend en charge l'apprentissage visuel et simplifie les concepts complexes.\n\n> **Pourquoi est-ce que j'aime cette fonctionnalité ?** Elle est intuitive et flexible.\n> \n> **Cas d'utilisation.** Lorsque vous définissez le workflow d'une nouvelle fonctionnalité, dessinez-le directement sur la page wiki, afin que tout le monde au sein de l'équipe puisse le visualiser.\n> \n> __[Documentation pratique](https://docs.gitlab.com/ee/administration/integration/diagrams_net.html)__\n\n![exemple de diagrammes wiki](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099376/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750099376159.gif)\n\n\u003Cp>\u003C/p>\n\n## 9. La création de tableaux\n\nOubliez les difficultés liées au markdown pour la création de tableaux. L'éditeur de texte enrichi vous permet d'insérer et de mettre en forme des tableaux sans effort, ce qui rend la documentation plus claire et plus structurée.\n\n> **Pourquoi est-ce que j'aime cette fonctionnalité ?** Elle facilite la création de tableaux en permettant de rendre les mises à jour propres et structurées en quelques clics.\n> \n> **Cas d'utilisation.** Vous compilez la rétro d'un sprint ? Ajoutez rapidement un tableau pour organiser les commentaires, les mesures à prendre et les responsables, afin de faciliter le processus de révision pour tout le monde.\n> \n> __[Documentation pratique](https://docs.gitlab.com/ee/user/rich_text_editor.html#tables)__ \n\n![exemple de création de tableau](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099376/Blog/Content%20Images/Blog/Content%20Images/image8_aHR0cHM6_1750099376160.gif)\n\n\u003Cp>\u003C/p>\n\n## 10. L'intégration de vidéos et de GIF\n\nAméliorez les descriptions ou les commentaires de vos tickets et de vos epics en y intégrant des GIF et des vidéos YouTube, afin d'ajouter une couche dynamique à votre communication.\n\n> **Pourquoi est-ce que j'aime cette fonctionnalité ?** Parfois, un GIF ou une vidéo sont plus parlants que des mots.\n> \n> **Cas d'utilisation.** Vous essayez d'expliquer un bug UI ? Intégrez une vidéo YouTube pour une présentation rapide de l'amélioration des fonctionnalités proposées.\n\n![exemple d'incorporation vidéo et gif](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099376/Blog/Content%20Images/Blog/Content%20Images/gif__1__aHR0cHM6_1750099376161.gif)\n\n\u003Cp>\u003C/p>\n\n## Explorez ces fonctionnalités\n\nCes fonctionnalités ne représentent qu'un aperçu de la plateforme DevSecOps de GitLab, conçue pour accroître l'efficacité et favoriser une meilleure collaboration. Bien qu'elles soient peut-être sous-utilisées, leur impact sur votre workflow pourrait être considérable. Nous vous encourageons à explorer davantage ces fonctionnalités et à les intégrer dans vos habitudes quotidiennes.\n\n> Vous souhaitez dynamiser votre workflow DevSecOps à l'aide de GitLab ? [Essayez GitLab Ultimate gratuitement pendant 30 jours](https://gitlab.com/-/trial_registrations/new). \n",[687,686,793,794],"features","workflow",{"slug":796,"featured":6,"template":692},"top-10-gitlab-workflow-hacks-you-need-to-know","content:fr-fr:blog:top-10-gitlab-workflow-hacks-you-need-to-know.yml","Top 10 Gitlab Workflow Hacks You Need To Know","fr-fr/blog/top-10-gitlab-workflow-hacks-you-need-to-know.yml","fr-fr/blog/top-10-gitlab-workflow-hacks-you-need-to-know",{"_path":802,"_dir":249,"_draft":6,"_partial":6,"_locale":7,"seo":803,"content":809,"config":816,"_id":818,"_type":16,"title":819,"_source":18,"_file":820,"_stem":821,"_extension":21},"/fr-fr/blog/jenkins-to-gitlab-migration-made-easy",{"title":804,"description":805,"ogTitle":804,"ogDescription":805,"noIndex":6,"ogImage":806,"ogUrl":807,"ogSiteName":677,"ogType":678,"canonicalUrls":807,"schema":808},"Migrer de Jenkins vers GitLab : le guide complet","Découvrez pourquoi et comment migrer facilement de Jenkins vers GitLab en suivant ce guide étape par étape.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663019/Blog/Hero%20Images/AdobeStock_519147119.jpg","https://about.gitlab.com/blog/jenkins-to-gitlab-migration-made-easy","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Migrer de Jenkins vers GitLab : le guide complet\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fernando Diaz\"}],\n        \"datePublished\": \"2024-02-01\",\n      }",{"title":804,"description":805,"authors":810,"heroImage":806,"date":812,"body":813,"category":14,"tags":814,"updatedDate":815},[811],"Fernando Diaz","2024-02-01","GitLab est la plateforme DevSecOps alimentée par l'IA la plus complète. En effet, GitLab fournit toutes les fonctionnalités dont vous avez besoin pour planifier, développer et livrer des logiciels sécurisés plus rapidement, le tout au sein d'une seule et même plateforme. \n\nLes plateformes comme GitLab éliminent les difficultés et les défis liés à l'intégration de multiples outils (approche DevOps DIY) pour gérer au mieux le cycle de vie du développement logiciel (SDLC). À l'inverse, Jenkins n'étant pas une plateforme, des outils supplémentaires sont nécessaires pour compléter le SDLC. Cette approche DevOps DIY introduit une complexité supplémentaire liée à la chaîne d'outils, et génère un certain nombre d'inconvénients comme : \n\n- La nécessité d'une assistance personnalisée pour l'intégration et l'orchestration des outils\n- La difficulté à tenir à jour/mettre à niveau/sécuriser des outils disparates\n- L'impossibilité de mesurer correctement la transformation organisationnelle\n- Une mauvaise expérience des équipes de développement \n- Des coûts supplémentaires en lien avec la gestion, les délais et le budget\n- Une perte de productivité\n- Un changement de contexte et une inefficacité en terme de collaboration\n\n\u003Ccenter>\n\u003Cfigure>\n   \u003Cimg src=\"https://res.cloudinary.com/about-gitlab-com/image/upload/v1752175993/Blog/ikr97sr9jclddeqdg7ew.png\" alt=\"Import project selection\">\n   \u003Cfigcaption>DevOps DIY versus plateforme DevSecOps\u003C/figcaption>\n\u003C/figure>\n\u003C/center>\n\u003Cp>\u003C/p>\n\nPour ces raisons, de nombreuses équipes de développement utilisant Jenkins envisagent de migrer vers une plateforme [DevSecOps](https://about.gitlab.com/fr-fr/topics/devsecops/ \"Qu'est-ce que l'approche DevSecOps ?\") complète. Si vous recherchez une plateforme puissante, fiable et sécurisée, GitLab est votre meilleure option ! GitLab propose une version gratuite ainsi que différents niveaux d'abonnement en fonction des besoins de votre entreprise. Pour en savoir plus sur nos offres et fonctionnalités, consultez notre [page tarifaire](https://about.gitlab.com/fr-fr/pricing/).\n\nDécouvrez dans cet article de blog :\n- Comment planifier une migration\n- Comment migrer des dépôts depuis d'autres outils de gestion du code source (SCM) vers GitLab\n- Comment migrer des pipelines CI/CD de Jenkins vers GitLab\n\n## Comment planifier une migration de Jenkins vers GitLab ? \n\nAvant d'initier la migration de vos dépôts hébergés sur un autre outil vers GitLab CI/CD, vous devez élaborer un plan de migration. Cette étape technique est importante et vous permet de définir clairement vos attentes. Les outils CI/CD diffèrent par leur approche, leur structure et leurs spécificités techniques. Par conséquent, les migrations ne sont pas de simples transferts directs des données. \n\nUn plan de migration offre les avantages suivants :\n- Il définit et communique une vision claire de vos objectifs de migration, ce qui aide les personnes impliquées à comprendre le but de cette opération. \n- Il vous permet de vous assurer d’obtenir l'aval des équipes de direction concernées pour faciliter cette démarche.\n- Il permet d'expliquer aux utilisateurs les changements à venir.\n- Il permet de trouver des moyens de séquencer ou de retarder certaines étapes de la migration pour éviter l'échec de la migration ou une migration partielle.\n- Il documente les avantages des améliorations apportées par GitLab CI/CD et met à jour votre mise en œuvre à chaque étape de la migration.\n\nUn plan de migration vous aide à mettre en place un processus fluide permettant de migrer progressivement vers GitLab, avec un minimum de perturbations. Il peut s'agir d’exécuter simultanément Jenkins et GitLab, tandis que certains projets sont transférés de Jenkins vers GitLab.\n\n### Définissez un processus de gestion du changement\n\nIl se peut que les développeurs, opérateurs informatiques, administrateurs cloud, équipes en charge de la sécurité, ainsi que les ingénieurs qualité n'aient pas d'expérience avec GitLab et ne sachent pas pourquoi vous ou votre équipe de direction avez choisi de réaliser cette migration. C'est pourquoi votre plan de migration doit inclure un processus efficace de gestion du changement. \n\nLes personnes impactées par cette migration doivent savoir :\n- __Pourquoi__ ce changement est nécessaire\n- __À quoi__ ressemblera le futur système\n- __Comment__ l'entreprise prévoit d'atteindre cet objectif\n- __Vers qui__ se tourner pour obtenir plus d'informations ou de l'aide \n\nÀ cette fin, vous devez réaliser les étapes suivantes afin de gérer efficacement le changement au sein des différentes équipes fonctionnelles : \n- __Analysez l'état actuel__ : documentez les processus existants. Collectez des indicateurs qui serviront de base de référence. Identifiez ce qui fonctionne ou non avec l'[approche CI/CD](https://about.gitlab.com/fr-fr/topics/ci-cd/ \"Qu'est-ce que le CI/CD ?\") en interrogeant certains membres de votre équipe. Documentez les défis que vous devez relever, et ce d'un point de vue quantitatif et qualitatif. Comme vous allez devoir expliquer les raisons de ce changement et votre vision, plus vous définirez clairement les problématiques que vous espérez résoudre, plus il vous sera facile d'obtenir l'adhésion de tous. \n- __Établissez une vision__ : maintenant que vous avez décrit les points de friction actuels quantitativement avec des indicateurs de référence et qualitativement (en vous basant sur les retours des membres de votre équipe), communiquez une vision de l'état futur. Expliquez pourquoi c'est important (en vous référant aux indicateurs de réussite de votre entreprise) et partagez l’état actuel de la situation et les résultats attendus. Renforcez ce message par le biais de différents canaux de communication : groupes de discussion, réunions rassemblant l'ensemble des acteurs de l'entreprise, ou encore notifications par e-mail.\n- __Formez les collaborateurs__ : investissez dans une [formation sur GitLab CI/CD](https://about.gitlab.com/services/education/gitlab-ci/) dispensée par un expert GitLab. Mesurez l'acquisition et la mémorisation des connaissances à l'aide des [certifications GitLab](https://levelup.gitlab.com/pages/certifications). \n- __Communiquez la roadmap et les ressources__ : partagez avec les membres de votre équipe le calendrier prévu de la migration et les ressources mises à leur disposition pour faciliter la transition. Mentionnez également les ressources communautaires (groupes de discussion, forums), afin que votre équipe puisse poser des questions et obtenir de l'aide. Créez un système qui récompense les équipes qui effectuent rapidement cette transition, et encouragez-les à partager leur expérience avec d'autres équipes similaires au sein de l'entreprise.\n\nSi vous mettez en place ces éléments dès le début de cette transition, cela sera de bon augure pour la réussite de votre migration. \n\n### Définissez des objectifs de migration\n\nAvant d'effectuer votre migration, vous devez avoir une bonne compréhension de vos objectifs et de la façon de les atteindre. Voici par exemple certaines des questions auxquelles vous devez pouvoir répondre :\n\n- Quel est votre calendrier de migration ?\n- Quelle est la configuration actuelle de votre serveur Jenkins ?\n- Combien de projets sont concernés par la migration ?\n- Quel est le degré de complexité de votre pipeline ?\n- Nécessite-t-il des dépendances externes, plusieurs déclencheurs pour s'exécuter, exécute-t-il plusieurs processus en parallèle pour compiler le code, etc. ?\n- Comment/où déployez-vous votre code ?\n- Quel est le processus de revue/sortie des nouvelles versions et de déploiement du code ?\n- Est-il intégré dans Jenkins ou dans un workflow distinct déclenché par Jenkins ?\n- Quels artefacts de compilation ou binaires sont nécessaires au succès du pipeline ?\n- Quels plug-ins sont utilisés par les jobs dans Jenkins aujourd'hui ?\n- Quel logiciel est installé sur les agents Jenkins ?\n- Quelle solution de gestion du code source (SCM) utilisez-vous actuellement ?\n- Utilisez-vous des bibliothèques partagées dans vos jobs Jenkins ?\n- Quelle méthode d'authentification est utilisée pour Jenkins (Basic Authentication, LDAP/AD, SSO) ?\n- Y a-t-il d'autres projets auxquels vous devez accéder depuis votre pipeline ?\n- Des identifiants de connexion dans Jenkins sont-ils utilisés pour accéder à des services externes ?\n\nEn répondant à ces questions, vous saurez comment procéder à la migration, combien de temps durera cette opération et par où commencer. Une fois que vous avez élaboré un plan et que vous êtes conscient des attentes et des écueils possibles, vous pouvez commencer votre processus de migration.\n\n## Prérequis à la migration\n\nUne fois que vous avez créé votre plan de migration et répondu à toutes les attentes associées, vous pouvez commencer à configurer GitLab. \n\nVoici certains des prérequis suggérés pour la migration :\n- Familiarisez-vous avec GitLab et découvrez les [fonctionnalités clés de GitLab CI/CD](https://docs.gitlab.com/ee/ci/index.html).\n- Suivez des tutoriels pour créer votre premier [pipeline GitLab](https://docs.gitlab.com/ee/ci/quick_start/index.html) et des [pipelines plus complexes](https://docs.gitlab.com/ee/ci/quick_start/tutorial.html) qui créent, testent et déploient un site statique.\n- Passez en revue la [liste des mots-clés de configuration .gitlab-ci.yml](https://docs.gitlab.com/ee/ci/yaml/index.html).\n- Configurez GitLab.\n- Testez votre instance GitLab.\n\nUne fois que vous avez compris le fonctionnement de GitLab et qu'une instance a été configurée, vous pouvez suivre votre plan de migration et commencer à déplacer des projets de Jenkins vers GitLab. Vérifiez que votre instance GitLab a été correctement configurée à l'aide des bonnes pratiques et des [architectures de référence](https://docs.gitlab.com/ee/administration/reference_architectures/) de GitLab.\n\n### Migrez vos dépôts vers GitLab\nL'un des principaux inconvénients de Jenkins est qu'il ne fournit pas de solution SCM. Si vous utilisez Jenkins, votre code doit être stocké dans une solution SCM distincte à laquelle Jenkins doit avoir accès. Comme GitLab dispose d'un SCM intégré, la migration depuis Jenkins vous permet également de migrer depuis la solution SCM que vous utilisiez, ce qui entraîne une réduction supplémentaire des coûts.\n\nGitLab fournit des outils pour vous permettre de déplacer facilement votre dépôt et ses métadonnées dans GitLab. Les outils d'importation suivants sont inclus et vous aideront à migrer vos projets vers GitLab :\n\n- [GitHub](https://docs.gitlab.com/ee/user/project/import/github.html)\n- [Autre instance GitLab](https://docs.gitlab.com/ee/user/project/settings/import_export.html)\n- [Bitbucket Cloud](https://docs.gitlab.com/ee/user/project/import/bitbucket.html)\n- [Bitbucket Server](https://docs.gitlab.com/ee/user/project/import/bitbucket_server.html)\n- [FogBugz](https://docs.gitlab.com/ee/user/project/import/fogbugz.html)\n- [Gitea](https://docs.gitlab.com/ee/user/project/import/gitea.html)\n- [Jira (Tickets uniquement)](https://docs.gitlab.com/ee/user/project/import/jira.html)\n- [Dépôt par fichier manifeste](https://docs.gitlab.com/ee/user/project/import/manifest.html)\n- [Dépôt par URL](https://docs.gitlab.com/ee/user/project/import/repo_by_url.html)\n\n\u003Ccenter>\n\u003Cfigure>\n   \u003Cimg src=\"https://res.cloudinary.com/about-gitlab-com/image/upload/v1752176002/Blog/ie2xrexhbcoq6m8rnhit.png\" alt=\"GitHub to GitLab Repo Exporter\">\n   \u003Cfigcaption>Outil d'exportation de dépôt de GitHub vers GitLab\u003C/figcaption>\n\u003C/figure>\n\u003C/center>\n\u003Cp>\u003C/p>\n\nChaque outil d'importation importe différentes données d'un projet. Lisez notre [documentation sur l'importation et la migration de projets](https://docs.gitlab.com/ee/user/project/import/) pour en savoir plus sur les outils d'importation fournis et comprendre quelles données sont migrées vers GitLab. De plus, vous pouvez [automatiser l'importation de groupes et de projets](https://docs.gitlab.com/ee/user/project/import/#automate-group-and-project-import) et créer une solution personnalisée pour mieux répondre aux besoins de votre entreprise :\n\n- [Services professionnels](https://about.gitlab.com/services/)\n- [Services de migration](https://gitlab.com/gitlab-org/professional-services-automation/tools/migration/congregate/-/blob/master/docs/using-congregate.md#quick-start)\n- [Foire aux questions sur la migration](https://gitlab.com/gitlab-org/professional-services-automation/tools/migration/congregate/-/blob/master/customer/famq.md)\n\n#### Comment migrer un dépôt ? \n\nLa migration d'un dépôt vers GitLab est facile grâce à nos outils d'importation intégrés. Dans cet exemple, nous allons vous expliquer comment copier un dépôt de GitHub vers GitLab ainsi que [ses ressources](https://docs.gitlab.com/ee/user/project/import/github.html#imported-data) (tickets, pull requests, jalons et plus encore). \n\nAfin de migrer un dépôt depuis GitHub vers GitLab, vous pouvez suivre les étapes ci-dessous :\n\n1. Dans la barre latérale de gauche, en haut, sélectionnez **Créer un nouveau (+)**.\n2. Sélectionnez **Nouveau projet/dépôt**.\n3. Sélectionnez **Importer un projet**.\n\n\u003Ccenter>\n\u003Cfigure>\n   \u003Cimg src=\"https://res.cloudinary.com/about-gitlab-com/image/upload/v1752176017/Blog/boowmmaqhbredxa3g92s.png\" alt=\"Import project selection\">\n\u003C/figure>\n\u003C/center>\n\u003Cp>\u003C/p>\n\n4. Cliquez sur le bouton **GitHub**.\n    - Si vous utilisez GitLab Self-Managed, vous devez [activer l'outil d'importation GitHub](https://docs.gitlab.com/ee/administration/settings/import_and_export_settings.html#configure-allowed-import-sources).\n    - Notez que d'autres outils d'importation peuvent être lancés de la même manière.\n5. Vous pouvez ensuite utiliser l'une des deux options ci-dessous :\n    - Autoriser OAuth de GitHub en sélectionnant **Autoriser avec GitHub**.\n    - Utiliser un jeton d'accès personnel GitHub :\n       - Accédez à la page [https://github.com/settings/tokens/new](https://github.com/settings/tokens/new).\n       - Dans le champ **Note**, saisissez une description du token.\n       - Sélectionnez la portée du dépôt.\n       - En option, pour importer des collaborateurs, sélectionnez la portée **read:org**.\n       - Cliquez sur le bouton **Générer un token**.\n       - Sur la page d'importation de GitLab, dans le champ **Jeton d'accès personnel**, collez le jeton d'accès personnel GitHub.\n6. Cliquez sur le bouton **Authentification**.\n7. Sélectionnez les éléments que vous souhaitez migrer.\n8. Sélectionnez les projets que vous souhaitez migrer et leur destination.\n9. Cliquez sur le bouton **Importer**.\n\nLe projet importé devrait maintenant être disponible dans votre espace de travail. Pour en savoir plus sur la migration de GitHub vers GitLab, regardez cette vidéo :\n\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/0Id5oMl1Kqs?si=TQ5HI9aMwtzJMiMi\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\u003C!-- blank line -->\n\nUne fois que vous avez terminé la migration de votre dépôt, vous pouvez configurer votre pipeline Jenkins pour exploiter le fichier Jenkinsfile dans GitLab. Pour ce faire, définissez l'URL du dépôt sur le projet que vous venez tout juste d'importer via le menu de configuration du pipeline Jenkins :\n\n\u003Ccenter>\n\u003Cfigure>\n   \u003Cimg src=\"https://res.cloudinary.com/about-gitlab-com/image/upload/v1752176020/Blog/mu475liw66abcxbu2g6g.png\" alt=\"Jenkins Pipeline SCM settings\">\n\u003C/figure>\n\u003C/center>\n\u003Cp>\u003C/p>\n\nCette opération est utile pendant la phase de migration initiale du dépôt et vous permet d'utiliser Jenkins et GitLab en parallèle. Vous évitez ainsi toute interruption de service pendant que vous travaillez sur votre migration.\n\nDe plus, vous pouvez utiliser le [plug-in Jenkins GitLab](https://plugins.jenkins.io/gitlab-plugin/) pour faciliter la migration. Ce plug-in permet à GitLab de déclencher et d'obtenir le statut des compilations Jenkins.\n\n### Migrez vos pipelines CI/CD\nUne fois que vous avez migré vos dépôts vers GitLab, vous pouvez procéder à la migration de vos pipelines Jenkins. Bien qu'assez simple, ce processus nécessite une bonne compréhension des concepts et de la syntaxe Jenkins et GitLab.\n\nJenkins fournit deux types de syntaxe pour la définition des pipelines : une syntaxe déclarative et une syntaxe scriptée. Dans ce guide, nous décrirons la migration à partir des pipelines déclaratifs, car ils sont les plus couramment utilisés.\n\n#### Migrez votre pipeline étape par étape\n\nDans ce tutoriel, nous analyserons un fichier Jenkinsfile (Groovy) ainsi qu'un fichier de configuration GitLab CI/CD (YAML) qui compile, teste et déploie un microservice écrit en Golang. Nous activerons ensuite le pipeline dans GitLab et observerons le résultat. \n\nLe pipeline :\n- Utilisera l'image de conteneur Golang avec le tag **alpine**\n- Exécutera un job pour compiler le code Golang en un fichier binaire exécutable\n   - Stockera le fichier exécutable compilé en tant qu'artefact\n- Exécutera un job pour lancer les tests unitaires\n- Exécutera un job pour effectuer le déploiement sur l'environnement de préproduction\n   - Ne s'exécutera que si la validation cible la branche de **préproduction**\n   - S'exécutera uniquement après la réussite de l'étape de **test**\n   - Utilisera l'artefact exécutable compilé du job précédent\n\nVous trouverez ci-dessous les définitions de pipeline Jenkins et GitLab accompagnées de commentaires descriptifs. Vous pouvez observer le pipeline en action dans le [projet de migration Meow](https://gitlab.com/gitlab-da/projects/blogs/meow-migration).\n\nVoici un fichier Jenkinsfile écrit en Groovy :\n\n```  \n// The top-level of the declarative\n// pipeline.\npipeline {\n\n  // Defines the default agent to use\n  // when it is not explicitly defined\n  // in a job.\n    agent any\n\n  // Defines the stages that will run\n  // in numerical order. Each stage\n  // only runs one job.\n    stages {\n\n    // Defines the name of the stage\n        stage('build') {\n      // Defines the container image to\n      // use for this job, overwriting\n      // the default 'agent any'.\n      // The Jenkins Docker plugin\n      // must be configured for this\n      // to run.\n            agent { docker 'golang:alpine' }\n\n      // Defines the sequence of steps\n      // to execute when the stage is\n      // run.\n            steps {\n                sh 'go build -o bin/meow-micro'\n                sh 'chmod +x bin/meow-micro'\n            }\n\n      // The steps to run after the\n      // stage completes.\n            post {\n              always {\n\n        // Stores the stage artifacts\n        // generated for use in another\n        // job.\n                archiveArtifacts artifacts: 'bin/meow-micro'\n                onlyIfSuccessful: true\n              }\n            }\n        }\n\n    stage('test') {\n            agent { docker 'golang:alpine' }\n            steps {\n                sh 'go test .'\n            }\n        }\n\n        stage('deploy') {\n      // Defines conditions which must\n      // be met in order for the job to\n      // execute. In this case the\n      // deploy job will only run on the \n      // staging branch.\n            when {\n              branch 'staging'\n            }\n            steps {\n                echo 'Deploying meow-micro to staging'\n        // Uses the artifact stored in\n        // the build stage.\n                sh './bin/meow-micro'\n            }\n        }\n    }\n}\n```\n\nVoyons maintenant comment créer la même fonctionnalité dans GitLab :\n\n```\n# Defines the default image to use\n# when it is not explicitly defined in\n# a job.\ndefault:\n  image: alpine:latest\n\n# Defines the order to run the stages.\n# Each stage can have multiple jobs.\nstages:\n  - build\n  - test\n  - deploy\n\n# Defines the name of the job\ncreate-binary:\n # Defines the stage the job will run in\n  stage: build\n # Defines the container image to use\n # for this job, overwriting default.\n  image: golang:alpine\n # Defines the sequence of steps to\n # execute when the job is run.\n  script:\n    - go build -o bin/meow-micro\n    - chmod +x bin/meow-micro\n # Stores the job artifacts generated\n # for use in another job.\n  artifacts:\n    paths:\n      - bin/meow-micro\n    expire_in: 1 week\n\nunit-tests:\n  stage: test\n  image: golang:alpine\n  script:\n    - go test .\n # Defines commands to run after the\n # job.\n after_script:\n  - echo \"Tests Complete\"\n\nstaging-deploy:\n  stage: deploy\n # Defines commands to run before the\n # actual job.\n  before_script:\n    - apk update\n  script:\n    - echo \"Deploying meow-micro to staging environment\"\n    - ./bin/meow-micro\n # Defines conditions which must be met\n # in order for this job to execute. In\n # this case the staging-deploy job will \n # only run on the staging branch.\n  rules:\n    - if: $CI_COMMIT_BRANCH == 'staging'\n # Allows the artifact stored in the\n # build job to be used in this job.\n  artifacts:\n    paths:\n      - bin/meow-micro\n```\n\nComme vous l'avez peut-être remarqué, il existe de nombreuses similitudes entre Jenkins et GitLab en termes de syntaxe, ce qui simplifie la migration du pipeline. Bien que l'exemple ci-dessus fournisse une vue d'ensemble basique, assurez-vous de consulter la liste complète des [comparaisons de fonctionnalités et de concepts](https://docs.gitlab.com/ee/ci/migration/jenkins.html#comparison-of-features-and-concepts) entre les deux outils.\n\nMaintenant que nous comprenons comment transposer Jenkins à GitLab, nous pouvons commencer à créer un pipeline avec les mêmes fonctionnalités dans GitLab. Pour effectuer la migration de votre [pipeline CI/CD](https://about.gitlab.com/fr-fr/topics/ci-cd/cicd-pipeline/ \"Qu'est-ce qu'un pipeline CI/CD ?\"), suivez les étapes suivantes :\n\n##### 1. Ouvrez le dépôt que vous avez migré vers GitLab dans la section ci-dessus.\n- Dans la barre latérale de gauche, en haut, sélectionnez **Rechercher ou accéder à...**\n- Localisez votre projet.\n\n##### 2. Ouvrez l'[éditeur de pipeline](https://docs.gitlab.com/ee/ci/pipeline_editor/).\n- Dans la barre latérale de gauche, sélectionnez **Compilation > Éditeur de pipeline**.\n\u003Ccenter>\n\u003Cfigure>\n   \u003Cimg src=\"https://res.cloudinary.com/about-gitlab-com/image/upload/v1752176026/Blog/ecp4jh7epho2oxuegaor.png\" alt=\"Pipeline editor menu\">\n\u003C/figure>\n\u003C/center>\n\u003Cp>\u003C/p>\n\n- Cliquez sur le bouton **Configurer le pipeline**.\n\n\u003Ccenter>\n\u003Cfigure>\n   \u003Cimg src=\"https://res.cloudinary.com/about-gitlab-com/image/upload/v1752176029/Blog/nypfh01zhwgvzqc0xz3v.png\" alt=\"Configure pipeline selection\">\n\u003C/figure>\n\u003C/center>\n\u003Cp>\u003C/p>\n\n##### 3. Complétez le fichier [.gitlab-ci.yml](https://docs.gitlab.com/ee/ci/yaml/).\n- Ajoutez le code du pipeline GitLab CI. \n\u003Ccenter>\n\u003Cfigure>\n   \u003Cimg src=\"https://res.cloudinary.com/about-gitlab-com/image/upload/v1752176031/Blog/nxi6uxxispyyoiiyvxyg.png\" alt=\"Pipeline editor input\">\n\u003C/figure>\n\u003C/center>\n\u003Cp>\u003C/p>\n\n- Vérifiez que la syntaxe est correcte.\n\n\u003Ccenter>\n\u003Cfigure>\n   \u003Cimg src=\"https://res.cloudinary.com/about-gitlab-com/image/upload/v1752176037/Blog/x3d4utfsnymye0lvphtf.png\" alt=\"Pipeline syntax validation\">\n\u003C/figure>\n\u003C/center>\n\u003Cp>\u003C/p>\n\n- Visualisez le pipeline.\n\n\u003Ccenter>\n\u003Cfigure>\n   \u003Cimg src=\"https://res.cloudinary.com/about-gitlab-com/image/upload/v1752176043/Blog/hipzofpyywjxf62edzfv.png\" alt=\"Pipeline visualization\">\n\u003C/figure>\n\u003C/center>\n\u003Cp>\u003C/p>\n\n##### 4. Validez le fichier dans la branche principale.\n- Ajoutez un message de validation.\n- Assurez-vous que la branche est définie sur la branche principale.\n- Cliquez sur le bouton __Valider les modifications__.\n\n\u003Ccenter>\n\u003Cfigure>\n   \u003Cimg src=\"https://res.cloudinary.com/about-gitlab-com/image/upload/v1752176048/Blog/nn8bl7rdysabccoycfrk.png\" alt=\"Commit changes dialog\">\n\u003C/figure>\n\u003C/center>\n\u003Cp>\u003C/p>\n\nUne fois le fichier fusionné, le pipeline défini s'exécute. Vous pouvez revenir à votre projet et [observer le pipeline](https://docs.gitlab.com/ee/ci/pipelines/#view-pipelines) en action en le sélectionnant sur la page **Compilation > Pipelines** de votre projet. Comme il a été exécuté sur la branche **principale**, vous ne verrez que les jobs **create-binary** et **unit-tests**. Le job **staging-deploy** s'exécute uniquement sur la branche de préproduction.\n\n\u003Ccenter>\n\u003Cfigure>\n   \u003Cimg src=\"https://res.cloudinary.com/about-gitlab-com/image/upload/v1752176051/Blog/wfb4k8nkzpg28kpf2pzz.png\" alt=\"Pipeline running on main branch\">\n\u003C/figure>\n\u003C/center>\n\u003Cp>\u003C/p>\n\nSi nous créons une branche de préproduction, le pipeline suivant s'exécute.\n\n\u003Ccenter>\n\u003Cfigure>\n   \u003Cimg src=\"https://res.cloudinary.com/about-gitlab-com/image/upload/v1752176053/Blog/e2jxedpolaniotgixpby.png\" alt=\"Pipeline running on staging branch\">\n\u003C/figure>\n\u003C/center>\n\u003Cp>\u003C/p>\n\nEn cliquant sur un job, nous pouvons voir la sortie associée :   \n\n\u003Ccenter>\n\u003Cfigure>\n   \u003Cimg src=\"https://res.cloudinary.com/about-gitlab-com/image/upload/v1752176056/Blog/fywzwbzkwcvc9zzakilh.png\" alt=\"create-binary job output\">\n   \u003Cfigcaption>Sortie du job create-binary\u003C/figcaption>\n\u003C/figure>\n\u003C/center>\n\u003Cp>\u003C/p>\n\n\u003Ccenter>\n\u003Cfigure>\n   \u003Cimg src=\"https://res.cloudinary.com/about-gitlab-com/image/upload/v1752176061/Blog/ekmpd8ecanwwiena9xi9.png\" alt=\"unit-tests job output input\">\n   \u003Cfigcaption>Entrée/sortie du job unit-tests\u003C/figcaption>\n\u003C/figure>\n\u003C/center>\n\u003Cp>\u003C/p>\n\n\u003Ccenter>\n\u003Cfigure>\n   \u003Cimg src=\"https://res.cloudinary.com/about-gitlab-com/image/upload/v1752176065/Blog/h7nqxszy50xdmnvhalfq.png\" alt=\"staging-deploy job output\">\n   \u003Cfigcaption>Sortie du job staging-deploy\u003C/figcaption>\n\u003C/figure>\n\u003C/center>\n\u003Cp>\u003C/p>\n\nL'artefact est stocké dans le job __create-binary__ et utilisé dans le job __staging-deploy__. Et voilà, la migration d'un pipeline de Jenkins vers GitLab est aussi simple que cela !\n\n### Autres conseils à suivre lors de la migration\nVoici quelques conseils pratiques pour simplifier le processus de déploiement :\n\n- N'essayez pas de répliquer les tâches dans des jobs GitLab une à une. Prenez le temps de comprendre le fonctionnement du pipeline actuel et quel problème il résout.\n\n- Certains jobs Jenkins peuvent être trop complexes pour être migrés immédiatement vers GitLab. Il peut donc s'avérer pratique d'utiliser le [plug-in Jenkins GitLab](https://plugins.jenkins.io/gitlab-plugin/) pour lancer les pipelines Jenkins et afficher leurs résultats directement depuis GitLab. Cela vous permet de migrer lentement certaines actions vers GitLab jusqu'à ce que l'ensemble du pipeline puisse être déplacé.\n\n- Mettez en œuvre des [scanners de sécurité et une vérification de la qualité du code](https://docs.gitlab.com/ee/user/application_security/) à l'aide de templates intégrés fournis par GitLab. Cela vous permettra d'intégrer la sécurité en amont et ainsi de réduire le risque potentiel de failles. Simplifiez votre configuration CI/CD et essayez d'utiliser les avantages de chaque fonctionnalité sans tarder. Modularisez le code et implémentez-le en petites itérations.\n\n- Mettez en place le suivi et la gouvernance dès le départ.\n\n- Sachez que GitLab Runner (Go) peut se comporter différemment de l'agent Jenkins (Java). L'utilisation du processeur et la consommation de mémoire peuvent différer. Pensez à effectuer des comparaisons au fil du temps.\n\n- Envisagez d'investir dans des mécanismes de mise à l'échelle automatique et arrêtez les ressources inutiles le week-end ou en dehors des heures de travail.\n\n- Modernisez le développement d'applications en conteneurisant vos jobs. Les jobs Jenkins ne sont pas actuellement exécutés sur un conteneur, mais sur un agent Jenkins s'exécutant en tant que machine virtuelle.\n\nBien que cette liste ne soit pas exhaustive, elle constitue un bon point de départ. Si vous avez besoin d'une aide supplémentaire, GitLab fournit des [services professionnels](https://about.gitlab.com/fr-fr/get-help/) pour vous aider dans votre parcours de migration.\n\n### Conclusion\n\nMerci de votre intérêt pour cet article ! Nous espérons que ce guide vous a aidé à comprendre les avantages d'une migration de Jenkins vers GitLab, et comment procéder. \n\nVous hésitez encore ? [Essayez GitLab gratuitement](https://about.gitlab.com/fr-fr/free-trial/) et découvrez les avantages de notre plateforme DevSecOps.\n\nRessources complémentaires : \n\n- [Migration depuis Jenkins](https://docs.gitlab.com/ee/ci/migration/jenkins.html)\n- [Planification d'une migration](https://docs.gitlab.com/ee/ci/migration/plan_a_migration.html)\n- [Outils d'importation de projets GitLab](https://docs.gitlab.com/ee/user/project/import/)\n- [Migrer de GitHub Advanced Security vers GitLab Ultimate : notre guide complet](https://about.gitlab.com/fr-fr/blog/migration-guide-github-advanced-security-to-gitlab-ultimate/)\n- [Vidéo : Migration facile de GitHub vers GitLab](https://youtu.be/0Id5oMl1Kqs?feature=shared)\n- [De Jenkins vers GitLab : le guide ultime pour moderniser votre environnement CI/CD](https://about.gitlab.com/blog/jenkins-gitlab-ultimate-guide-to-modernizing-cicd-environment/)\n",[111,9],"2025-03-18",{"slug":817,"featured":93,"template":692},"jenkins-to-gitlab-migration-made-easy","content:fr-fr:blog:jenkins-to-gitlab-migration-made-easy.yml","Jenkins To Gitlab Migration Made Easy","fr-fr/blog/jenkins-to-gitlab-migration-made-easy.yml","fr-fr/blog/jenkins-to-gitlab-migration-made-easy",{"_path":823,"_dir":249,"_draft":6,"_partial":6,"_locale":7,"seo":824,"content":830,"config":837,"_id":839,"_type":16,"title":840,"_source":18,"_file":841,"_stem":842,"_extension":21},"/fr-fr/blog/what-are-the-benefits-of-a-microservices-architecture",{"title":825,"description":826,"ogTitle":825,"ogDescription":826,"noIndex":6,"ogImage":827,"ogUrl":828,"ogSiteName":677,"ogType":678,"canonicalUrls":828,"schema":829},"Architecture de microservices : définition, avantages et bonnes pratiques","Une architecture de microservices permet de moderniser votre approche informatique. Découvrez ses avantages et les bonnes pratiques pour démarrer.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662898/Blog/Hero%20Images/microservices-explosion.jpg","https://about.gitlab.com/blog/what-are-the-benefits-of-a-microservices-architecture","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Architecture de microservices : définition, avantages et bonnes pratiques\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2022-09-29\",\n      }",{"title":825,"description":826,"authors":831,"heroImage":827,"date":833,"body":834,"category":14,"tags":835,"updatedDate":836},[832],"GitLab","2022-09-29","Vous n'avez pas encore d'avis tranché sur les architectures de microservices et sur ce qu'elles peuvent apporter à vos équipes ? Les équipes de développement sont pourtant de plus en plus nombreuses à adopter cette approche pour développer de nouveaux logiciels. Leur objectif ? Profiter de la flexibilité des microservices pour travailler et livrer des logiciels de façon toujours plus agile. Voici ce que vous devez savoir sur les architectures de microservices, et comment vous lancer.\n\n__Sommaire__\n- Architecture de microservices : définition\n- Quels sont les avantages d’une architecture de microservices ?\n- Quels sont les inconvénients d’une architecture de microservices ?\n- Comment construire une architecture de microservices ?\n- Architecture de microservices et DevOps\n\n## Architecture de microservices : définition\n\nUne architecture de microservices est une approche dans laquelle une application est divisée en petits services autonomes, appelés [microservices](https://about.gitlab.com/fr-fr/topics/microservices/ \"Qu'est-ce qu'un microservice ? \"). \n\n### Qu’est-ce qu’un microservice ?\n\nUn microservice est un service qui __exécute un processus unique__ et qui gère sa propre base de données, tout en interagissant avec les autres. Ce qui permet aux équipes de développement de bénéficier d’une meilleure agilité pour développer, mettre à jour ou tester de nouvelles fonctionnalités plus rapidement. \n\n![Microservices vs monolithique](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687528/Blog/Content%20Images/monolith-vs-microservices.png)\n\n> [Essayez GitLab Ultimate gratuitement pendant 30 jours.](https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/blog&glm_content=default-saas-trial \"Essai gratuit de GitLab pendant 30 jours. \") \n\n## Quels sont les avantages d’une architecture de microservices ?\n\n### Des applications plus évolutives\n\nComme les microservices fonctionnent de manière indépendante, chaque microservice peut donc être facilement ajouté, supprimé, ou mis à jour, sans perturber le fonctionnement des autres microservices. Les entreprises peuvent aussi les faire évoluer en fonction de leurs besoins. Cela permet par exemple d'allouer plus de ressources à un microservice lors d'un pic d'achat saisonnier, et de les économiser en basse saison, pour les réallouer à d'autres domaines. \n\n### Une meilleure isolation des pannes\n\nToute architecture monolithique est susceptible de s'effondrer en cas de défaillance d'un seul élément de l’architecture. Ce risque est moins élevé dans le cas d’une architecture de microservices, où chaque service fonctionne de manière indépendante. Si l'un d'entre eux échoue, il est beaucoup moins probable que les autres cessent de fonctionner. Il faut cependant garder en tête que de grands volumes de trafic peuvent toujours submerger une application.\n\nAvec une architecture de microservices, les équipes de développement peuvent limiter les risques de défaillances en cascade. Divers outils sont disponibles, notamment sur [GitLab](https://about.gitlab.com/fr-fr/ \"Plateforme DevSecOps de GitLab\"), pour créer des microservices résistants aux pannes, et améliorer la résilience de l'infrastructure.\n\n### Une compatibilité avec tous les langages de programmation et toutes les technologies\n\nUne application de microservices peut être programmée dans n'importe quel langage. Les équipes de développement peuvent ainsi choisir le langage de programmation le plus adapté à leur projet et utiliser au mieux leurs compétences, sans avoir besoin d’apprendre un nouveau langage de programmation. En outre, l'utilisation de microservices basés sur le cloud permet aux équipes d'accéder à une application à partir de n'importe quel appareil connecté à Internet, quelle que soit sa plateforme.\n\n### Un déploiement simplifié\n\nUne architecture de microservices permet aux équipes de __déployer des applications indépendantes__ sans affecter les autres services de l'architecture. Cet avantage donne la possibilité aux équipes d'ajouter de nouveaux modules, sans devoir repenser la structure complète du système. L'architecture de microservices permet donc aux entreprises d'intégrer efficacement de nouvelles fonctionnalités en fonction de leurs besoins. \n\n### Une mise sur le marché plus rapide\n\nCette approche permet de minimiser les conflits de langage et les interruptions de service en chaîne sur un site web. Les équipes de développement travaillant sur différents microservices n'ont pas besoin d'attendre que les autres aient terminé pour avancer sur leurs tâches. De cette manière, les entreprises peuvent développer et déployer de nouvelles fonctionnalités rapidement et mettre à niveau les anciens composants au fur et à mesure des avancées technologiques.\n\n### Une expérimentation facilité \n\nUne architecture de microservices facilite les expérimentations. Comme chaque service fonctionne indépendamment, il est plus facile de tester et de déployer de nouvelles fonctionnalités sur l'un d’entre eux, sans impacter l’ensemble de l’application. Ainsi, les architectures de microservices permettent de gagner un temps précieux pour faire évoluer progressivement une application.\n\n### Une sécurité des données renforcée\n\nUne architecture de microservices se définit aussi par une sécurité renforcée. Lorsque l'architecture des systèmes informatiques est divisée en éléments plus petits, les données sensibles sont mieux protégées contre les intrusions provenant d’autres zones. Les équipes de développement peuvent utiliser des __API sécurisées__ pour connecter les microservices entre eux. Les API sécurisées protègent les données en veillant à ce qu’elles ne soient accessibles qu’aux utilisateurs, applications et serveurs spécifiquement autorisés. Les entreprises peuvent ainsi plus aisément se conformer aux normes de sécurité des données, telles que le [Règlement général sur la protection des données (RGPD)](https://www.cnil.fr/fr/reglement-europeen-protection-donnees \"Règlement général sur la protection des données \"). \n\n### Une flexibilité de l’externalisation\n\nLes entreprises doivent parfois confier certaines fonctionnalités à des partenaires tiers, ce qui peut représenter un __risque pour la protection de la propriété intellectuelle__. Avec une architecture de microservices, ces dernières peuvent segmenter les zones réservées aux partenaires, sans compromettre les services principaux et les données sensibles. \n\n### Une optimisation des équipes\n\nAmazon, pionnier des microservices, avait instauré l'idée qu'une équipe chargée d'une application ne devrait pas compter plus d'une poignée de développeurs et de développeuses en son sein. Les experts expliquent que cette approche améliore l'efficacité du travail, permet aux entreprises d’__atteindre leurs objectifs plus rapidement__, facilite la gestion des équipes, et favorise une plus grande concentration au sein du groupe. Adopter une architecture de microservices au moment de dimensionner vos équipes vous aidera à livrer des logiciels de meilleure qualité.\n\n### Un moyen d’attirer de nouveaux talents\n\nLes microservices s'appuient sur les pratiques d'ingénierie et les outils de développement les plus récents. L’occasion pour les entreprises d’attirer de nouveaux talents souhaitant travailler sur ce type d’architecture. \n\n## Quels sont les inconvénients d’une architecture de microservices ?\n\nSi les microservices présentent un grand nombre d'avantages, il faut aussi tenir compte de certains inconvénients avant d’adopter cette approche. \n\n### Des coûts initiaux plus élevés\n\nLes microservices cloud permettent de faire des économies sur le long terme, mais les coûts associés à leur déploiement initial restent élevés. Une entreprise doit disposer d'une infrastructure d'hébergement suffisante, avec une assistance en matière de sécurité et de maintenance. Plus important encore, elle aura besoin d'équipes qualifiées pour gérer tous les services.\n\n### L’importance du contrôle de l’interface\n\nComme chaque microservice possède sa propre API, toute application utilisant ce service sera affectée si vous modifiez l’API. Ce changement __n'étant pas rétrocompatible__. Avec une architecture de microservices, les opérations de grande envergure font appel à des centaines, voire des milliers d'API. Le contrôle de ces interfaces est donc essentiel au bon fonctionnement de l'entreprise, ce qui constitue un challenge possible pour adopter ce type d’architecture.\n\n### Autres types de complexité\n\nLe débogage peut s'avérer plus complexe avec une architecture de microservices, car chaque microservice dispose de son propre ensemble de journaux (logs). Ce qui peut compliquer légèrement la recherche pour remonter à la source d'un problème dans le code. \n\n### Des tests d'intégration\n\nLes tests unitaires sont plus faciles à gérer avec une architecture de microservices, ce qui n’est pas le cas des tests d'intégration. Comme l'architecture de microservices est distribuée en différents microservices, les équipes de développement ne peuvent pas tester l'ensemble du système depuis leur ordinateur.\n\n## Une architecture orientée services (AOS) vs microservices\n\nSi vous travaillez dans le cloud computing, vous avez probablement entendu parler du débat entre les architectures orientées services (Service-Oriented Architecture ou SOA en anglais) et les architectures de microservices. Ces deux architectures sont similaires à bien des égards, car elles impliquent toutes deux le cloud computing, le développement agile, et divisent les grands composants monolithiques en unités plus petites et plus faciles à gérer. \n\nCependant, la plus grande différence entre ces deux architectures réside dans leur champ d’application. L’AOS est une approche à l'échelle de l’entreprise pour développer des composants logiciels. Les microservices, quant à eux, construisent des applications autonomes qui remplissent une fonction spécifique. Cette approche cloud-native du développement et du déploiement les rend plus évolutifs, agiles et résistants. Les architectures de microservices se situent donc à une échelle plus restreinte, celle des applications.\n\n## Comment construire une architecture de microservices ?\n\nPour les équipes [DevOps](https://about.gitlab.com/fr-fr/topics/devops/ \"Que signifie DevOps ?\") prêtes à franchir une nouvelle étape, l'adoption d'une architecture de microservices est un choix judicieux. Voici comment vous lancer. \n\n### Identifier les aspects décomposables de l'application\n\nL’une des principales caractéristiques d’un microservice est son fonctionnement autonome. Il faut donc commencer par identifier quelles parties de l'application peuvent fonctionner de manière indépendante. Une définition erronée des limites d'un service pourrait entraîner des modifications indésirables sur d’autres services. Vous devez donc envisager le système dans sa globalité.\n\nDans de nombreux cas, cette répartition correspond aux domaines d'activité, et se reflète dans l'organisation des équipes de développement.\n\n### Définir les indicateurs à surveiller\n\nAvec une application de microservices, il faut impérativement surveiller l'état de chaque service pour pouvoir réagir à l'évolution des demandes dans l’environnement de production. Parmi les indicateurs courants à surveiller, nous retrouvons : l'utilisation du processeur, le niveau de mémoire de chaque instance, le temps de réponse de l'API ou encore le taux d'erreur. \n\nEn l'absence de surveillance, les équipes peuvent ne pas détecter certains problèmes lorsqu’ils surviennent. Par exemple, lorsqu'un serveur fait face à un pic de trafic, d'autres services peuvent ne pas répondre, car ils essaient de communiquer avec un service surchargé.\n\nEn détectant ces problèmes potentiels au sein de votre architecture de microservices, vous prévenez ainsi les temps d'arrêt. Ces indicateurs doivent être définis au début du projet pour pouvoir être surveillés et faire l’objet d’ajustements en cas d'événement anormal détecté. Cela peut s'avérer difficile, mais il existe heureusement des outils qui simplifient la surveillance, et fournissent une visualisation complète.\n\n### Automatiser l'infrastructure\n\nLorsque le nombre de microservices augmente, une application peut devenir difficile à gérer, puisque chaque microservice a son propre calendrier de déploiement. Certaines fonctionnalités sont cachées derrière des feature flags, d'autres collectent des données d’utilisation via des tests A/B, et certains services utilisent des déploiements Canary dans le cadre d’un déploiement progressif. Il est donc essentiel d'automatiser les tests pour que les équipes puissent stopper ou annuler un déploiement si nécessaire.\n\n### Créer des tests de contrat axés sur le consommateur\n\nIl est recommandé de mettre en œuvre des tests de contrat axés sur le consommateur (Consumer-Driven Contract Tests, ou CDCT) pour garantir la compatibilité entre les versions. Traditionnellement, les équipes de développement créent d'abord les API côté serveur, le point d'entrée du test étant déterminé par les clients. Cela signifie que lorsque la signature d’un API change, cela peut entraîner des dysfonctionnements côté consommateur. \n\nAvec les tests de contrat axés sur le consommateur cette situation ne peut pas se produire, car avant de déployer un microservice en production, les consommateurs déterminent le contrat requis (la signature de l’API) et effectuent des tests pour s’assurer qu’ils sont toujours valides. \n\n## Architecture de microservices et DevOps\n\nEn décomposant un système logiciel en parties autonomes, l'architecture de microservices permet aux entreprises d'appliquer le principe de responsabilité unique (Single Responsibility Principle) aux équipes de développement.\n\nTous les aspects d'un service peuvent ainsi se gérer de façon indépendante : la stack technique de l'équipe, la composition de l'équipe, les stratégies de déploiement, et même les calendriers de release. \n\nAssociée à une livraison continue, l’architecture de microservices permet aux entreprises de prendre des décisions basées sur des données de production en temps réel, accélérant ainsi les boucles de rétroaction et réduisant le délai de mise sur le marché.\n\nVotre équipe est-elle prête à se lancer dans l'architecture de microservices ? Commencez par développer une compréhension fine du découpage possible de votre système, et acquérir de solides connaissances sur les pratiques [CI/CD](https://about.gitlab.com/fr-fr/topics/ci-cd/ \"Qu'est-ce que le CI/CD ?\"). Ces compétences vous seront d'ailleurs utiles quelle que soit l'approche architecturale que vous choisirez.\n\n> [Essayez GitLab Ultimate gratuitement pendant 30 jours.](https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/blog&glm_content=default-saas-trial \"Essai gratuit de GitLab pendant 30 jours. \")\n",[732,732,793],"2024-10-01",{"slug":838,"featured":93,"template":692},"what-are-the-benefits-of-a-microservices-architecture","content:fr-fr:blog:what-are-the-benefits-of-a-microservices-architecture.yml","What Are The Benefits Of A Microservices Architecture","fr-fr/blog/what-are-the-benefits-of-a-microservices-architecture.yml","fr-fr/blog/what-are-the-benefits-of-a-microservices-architecture",{"_path":844,"_dir":249,"_draft":6,"_partial":6,"_locale":7,"seo":845,"content":851,"config":857,"_id":859,"_type":16,"title":860,"_source":18,"_file":861,"_stem":862,"_extension":21},"/fr-fr/blog/beginner-guide-python-programming",{"title":846,"description":847,"ogTitle":846,"ogDescription":847,"noIndex":6,"ogImage":848,"ogUrl":849,"ogSiteName":677,"ogType":678,"canonicalUrls":849,"schema":850},"Apprendre Python : tout savoir sur ce langage de programmation","Python est de plus en plus populaire, et pour de bonnes raisons. Retrouvez toutes les informations essentielles pour faire vos premiers pas avec Python.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664962/Blog/Hero%20Images/python.jpg","https://about.gitlab.com/blog/beginner-guide-python-programming","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Apprendre Python : tout savoir sur ce langage de programmation\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2021-10-21\",\n      }",{"title":846,"description":847,"authors":852,"heroImage":848,"date":853,"body":854,"category":14,"tags":855},[832],"2021-10-21","Vous vous passionnez pour la programmation informatique et souhaitez en apprendre davantage sur Python ? Vous souhaitez savoir par où commencer pour maîtriser les bases de Python ? Découvrez dans cet article les concepts de base de ce langage. \n\n## Comment débuter sur Python ?\n\nPython est un langage de programmation puissant et facile à apprendre, à utiliser et à déployer, dont l'utilisation est très répandue dans la création d'applications web et de bureau. Python facilite également l'analyse de données et l'exécution de tâches [DevOps](https://about.gitlab.com/fr-fr/solutions/devops-platform/ \"Qu'est-ce que DevOps ? \"). C'est un langage de programmation gratuit, open source et orienté objet, utilisé pour écrire des scripts simples, tout comme des programmes complexes. Parmi les près de 700 langages de programmation, Python se distingue comme l'un des plus accessibles pour les débutants.\n\n### Installer Python\n\nAvant d'aborder les bases de Python, il est essentiel de télécharger et d'installer Python sur votre ordinateur de bureau ou votre ordinateur portable. Python fonctionne sur plusieurs plateformes, dont Linux, Windows et Mac. Il est préinstallé sur la plupart des systèmes Mac et Linux, mais il est préférable de télécharger la dernière version depuis le [site officiel de Python](https://www.python.org/downloads/ \"Site officiel de Python\").\n\nPour vérifier la version actuelle de Python sur votre système, ouvrez la ligne de commande et tapez « python -V ».\n\n![Invite de commande Python](https://about.gitlab.com/images/blogimages/python1.png){: .shadow}\n\nSi votre version est obsolète, téléchargez l'installation 32 ou 64 bits à partir du site Web, selon la configuration de votre système.\n\nIl existe d’autres alternatives pour télécharger le programme d’installation : sur Windows, vous pouvez l'installer directement à partir de Microsoft. Sur Linux, vous pouvez l'installer à l'aide du gestionnaire de paquets. Sur macOS, vous pouvez télécharger Python à partir de [Homebrew](https://brew.sh/ \"Homebrew\").\n\nUne fois le programme téléchargé, exécutez-le et confirmez l'installation du fichier. Vous pouvez dès lors commencer à utiliser Python. \n\nVoici un exemple d'installation de Python pour Windows.\n\n![Installation de Python pour Windows ](https://about.gitlab.com/images/blogimages/python2.png){: .shadow}\n\n### Exécuter Python dans l'invite de commande\n\nPour vérifier que Python est installé et fonctionne correctement sous Windows, ouvrez l'invite de commande et saisissez « python », ce qui lancera l'interpréteur. Vous pouvez y exécuter directement des codes Python. Par exemple, saisissez « 2*5+1 » et appuyez sur « Entrée ». Vous verrez « 11 » comme résultat. Saisissez « Quit () » pour quitter l'interpréteur.\n\n![Interpréteur Python](https://about.gitlab.com/images/blogimages/python3.png){: .shadow}\n\n### Exécuter Python dans l'IDE\n\nMaintenant que la dernière version de Python est installée, vous êtes prêt à commencer à programmer en Python. Pour écrire des scripts ou des programmes longs en Python, utilisez l'environnement de développement et d'apprentissage intégré ([IDLE](https://docs.python.org/fr/3/library/idle.html \"IDLE Python\")) de Python.\n\nLancez l'IDLE puis, dans le menu déroulant sélectionnez « Fichier », puis « Nouveau fichier », ce qui ouvre une nouvelle fenêtre d'édition. Vous avez à présent deux fenêtres sur votre écran : un *shell* Python et un fichier sans titre.\n\n![shell Python et fichier sans titre](https://about.gitlab.com/images/blogimages/python4.png){: .shadow}\n\nLe *shell* Python est un environnement REPL, abréviation de « *read-eval-print-loop* » (boucle de lecture-évaluation-affichage). Il exécute des extraits de code, généralement une instruction à la fois. Par exemple, en répétant le même calcul « 2*5+1 » que nous avons fait dans l'invite de commande, vous pouvez constater qu'un *shell* Python peut fonctionner comme une calculatrice.\n\n![Débuter sur Python avec une opération de calcul](https://about.gitlab.com/images/blogimages/python5.png){: .shadow}\n\nLa fenêtre sans titre est une fenêtre d'édition de texte permettant d'écrire des programmes complets. Le *shell* affiche son résultat. Par exemple, le premier programme conventionnel de Python pour les débutants consiste à afficher le texte « Hello World! ». Veillez à sauvegarder l'éditeur de texte avant de l'exécuter en appuyant sur « F5 ».\n\n![Affichage du texte Hello World! sur Python](https://about.gitlab.com/images/blogimages/python61.png){: .shadow}\n\n## Les bases de Python\n\nNous savons que vous avez hâte de commencer à écrire de longs scripts pour des jeux et des sites Web, mais il vous reste encore un long chemin à parcourir pour y arriver. Comme pour l’apprentissage de tout autre langage, vous devez d'abord comprendre les bases de Python.\n\nLa fonction __print()__, comme nous l’avons vu dans l'exemple « Hello World! », affiche une valeur dans la fenêtre de résultat. Une valeur est la chose la plus élémentaire qu'un programme utilise. Il peut s'agir d'une chaîne de caractères, d'une valeur numérique ou de tout autre objet Python. Tout objet entre guillemets simples ou doubles est appelé chaîne de caractères (string).\n\nPar exemple, le « Hello World! » affiché dans le programme ci-dessus est également une chaîne de caractères. Les valeurs numériques telles que 4 et 4.5 sont respectivement des nombres entiers et des nombres flottants. Vous pouvez transformer un nombre entier ou un nombre flottant en une chaîne de caractères, et vice versa en utilisant les fonctions intégrées __int()__, __float()__ et __str()__.\n\n![Image illustrant les fonctions str(), int() et float() de Python.](https://about.gitlab.com/images/blogimages/python7.png){: .shadow}\n\n## Le vocabulaire de Python\n\nPython est un des langages de programmation les plus simples. Il est facile à lire et à comprendre. Contrairement aux langages humains, Python possède un vocabulaire restreint, et des mots-clés réservés ayant une signification particulière. Les termes ne faisant pas partie de ce vocabulaire réservé n'ont de sens que pour vous et sont appelés variables. Ces 35 mots-clés réservés sont les suivants :\n\n![Les 35 mots-clés réservés à connaître pour apprendre Python](https://about.gitlab.com/images/blogimages/python8.png){: .shadow}\n\nVeillez à utiliser ces mots-clés dans leur but spécifique pour éviter d'induire l'interpréteur Python en erreur et de provoquer une erreur de syntaxe.\n\n### Nommer les variables\n\nVous aurez parfois besoin de stocker des valeurs dans votre code pour les récupérer plus tard, ce que vous pouvez faire en leur donnant des noms symboliques, appelés variables. Comme illustré ci-dessous, nous demandons à Python de stocker 5 et 6 avec les labels respectifs x et y, puis de les récupérer plus tard pour trouver leur somme. \n\n![Stockage des variables dans Python](https://about.gitlab.com/images/blogimages/python9.png){: .shadow}\n\nIl existe des règles pour choisir le nom d'une variable ; le non-respect de ces règles entraînera une erreur de syntaxe. \n\nVoici quelques règles obligatoires :\n- Le nom peut contenir des lettres et des chiffres, mais il ne peut pas commencer par un chiffre.\n- Un tiret bas peut être utilisé dans le nom pour séparer plusieurs mots.\n- Les symboles spéciaux comme @#$ sont interdits et ne doivent pas apparaître dans le nom.\n- Les mots-clés Python ne doivent pas être utilisés comme noms de variables.\n\n### Comprendre les opérateurs et les opérandes \n\nPython utilise des symboles spéciaux appelés « opérateurs » pour représenter les calculs mathématiques de base. Les valeurs auxquelles ces opérateurs sont appliqués sont appelées opérandes. Les symboles utilisés comme opérateurs pour la soustraction, l'addition, la division, la multiplication et l'exponentiation sont respectivement -, +, /, * et **.\n\n![Apprendre à coder en Python : symboles pour les opérateurs](https://about.gitlab.com/images/blogimages/python10.png){: .shadow}\n\nL'opérateur modulo (%) génère le reste du premier opérande divisé par le second opérande. Il est utile pour vérifier si un nombre est divisible par un autre et pour extraire le ou les chiffres les plus à droite d'un nombre.\n\n![Opérateur modulo](https://about.gitlab.com/images/blogimages/python11.png){: .shadow}\n\n### Utiliser les expressions\n\nUne combinaison de valeurs, de variables et d'opérateurs est appelée une expression. Une expression saisie dans le *shell* est évaluée et la réponse est affichée. Cependant, dans un script, une expression ne fait rien par elle-même.\n\nPython utilise la convention mathématique PEMDAS pour les opérateurs, ce qui signifie que P pour Parenthèses a la priorité la plus élevée, puis Exponentiation, Multiplication et Division, qui ont la même priorité. L'Addition et la Soustraction viennent ensuite et ont également la même priorité. Les opérateurs qui ont la même préférence sont également évalués de gauche à droite.\n\n![Apprendre python : PEMDAS](https://about.gitlab.com/images/blogimages/python12.png){: .shadow}\n\nLes opérateurs Addition et Multiplication fonctionnent aussi avec les chaînes de caractères pour la concaténation et la répétition d'une chaîne : \n\n![Opérateurs d'addition et de multiplication](https://about.gitlab.com/images/blogimages/python13.png){: .shadow}\n\nPython permet également d'obtenir la valeur d'une variable de l'utilisateur via son clavier. Cela peut être fait en utilisant une fonction intégrée appelée __input__.\n\n![Les bases de python : fonction input](https://about.gitlab.com/images/blogimages/python14.png){: .shadow}\n\n## Débutez sur Python en écrivant votre premier programme\n\nIl est maintenant temps d'écrire votre premier programme simple en utilisant tout ce que vous avez appris dans cet article. Écrivez un script qui prend deux nombres en entrée (input) et les additionne. Faites-le de vous-même, puis consultez le code ci-dessous pour comparer votre travail.\n\n![Écrire un premier programme sur Python](https://about.gitlab.com/images/blogimages/python15.png){: .shadow}\n\nFélicitations ! Vous venez d'écrire votre premier programme.\n\nApprendre Python est facile. Nous vous avons simplement aidé à acquérir les notions de base nécessaires pour maîtriser les bases de Python. C’est à vous de jouer maintenant ! \n\nPhoto par \u003Ca href=\"https://unsplash.com/@davidclode?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText\">David Clode\u003C/a> sur Unsplash.\n",[732,856,687],"careers",{"slug":858,"featured":6,"template":692},"beginner-guide-python-programming","content:fr-fr:blog:beginner-guide-python-programming.yml","Beginner Guide Python Programming","fr-fr/blog/beginner-guide-python-programming.yml","fr-fr/blog/beginner-guide-python-programming",1,[698,718,740,760,779,801,822,843],1752683355940]