[{"data":1,"prerenderedAt":954},["ShallowReactive",2],{"/blog/cd-unified-monitor-deploy":3,"navigation-en-us":171,"banner-en-us":597,"footer-en-us":607,"blog-post-authors-en-us-Cesar Saavedra":851,"blog-related-posts-en-us-cd-unified-monitor-deploy":866,"blog-promotions-en-us":890,"next-steps-en-us":944},{"id":4,"title":5,"authors":6,"body":8,"category":149,"date":150,"description":151,"extension":152,"externalUrl":153,"faq":153,"featured":154,"heroImage":155,"meta":156,"navigation":157,"path":158,"seo":159,"slug":163,"stem":164,"tags":165,"template":169,"updatedDate":153,"__hash__":170},"blogPosts/en-us/blog/cd-unified-monitor-deploy.md","GitLab's unifiied and integrated monitoring strategies",[7],"Cesar Saavedra",{"type":9,"value":10,"toc":145},"minimark",[11,15,18,21,24,31,34,40,43,49,52,58,61,64,70,73,86,89,95,98,104,107,110,116,119,125,127,137],[12,13,14],"p",{},"A well integrated and consistent approach to monitoring what is running in production and how it is running can provide not only useful information about the infrastructure and applications but also a feedback loop about how your end users are utilizing your business applications. The ability to visualize what goes into production, what to deploy to production, and who to deploy it to can provide organizations the data to help them select and prioritize capabilities that matter to their customers. In addition, the ability to monitor performance and tracing of deployments allows them to preempt production problems, quickly troubleshoot issues and rollback a release, if needed.",[12,16,17],{},"GitLab provides the ability to monitor the performance of a deployment and easily rollback if needed. It also empowers you to choose what to deploy and who to deploy to in production via Feature Flags as well as advanced deployment strategies, like Canary deployments, in a consistent, repeatable, and uniform manner to help make your releases safe, low risk, and worry-free.",[12,19,20],{},"Let’s first delve into how GitLab provides the capabilities to quickly release, identify production problems and quickly roll back.",[12,22,23],{},"For a release manager, the Environment Dashboard provides a cross-project environment-based view with the big picture of what is going on in each environment:",[12,25,26],{},[27,28],"img",{"alt":29,"src":30},"environment dashboard","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398043/blog/Content%20Images/cd-unified-monitor-deploy/Env-dashboard.png",[12,32,33],{},"The Environment Dashboard also gives easy access to the CD pipeline. In the picture above, clicking on the “blocked” link takes you to the CD pipeline view:",[12,35,36],{},[27,37],{"alt":38,"src":39},"CD pipeline","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398043/blog/Content%20Images/cd-unified-monitor-deploy/CD-pipeline.png",[12,41,42],{},"From the CD pipeline, a release manager can perform a canary deployment and also roll out to production incrementally, for example. The performance job above runs web browser performance tests and determines any degradation or improvement in the measurements and reports them as shown below:",[12,44,45],{},[27,46],{"alt":47,"src":48},"webperf errors","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398044/blog/Content%20Images/cd-unified-monitor-deploy/Review-webperf-errors.png",[12,50,51],{},"A release manager can take this information into consideration to determine whether or not these errors warrant a rollback of the release from production.",[12,53,54],{},[27,55],{"alt":56,"src":57},"rollback button","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398045/blog/Content%20Images/cd-unified-monitor-deploy/Rollback-click.png",[12,59,60],{},"From the production environment window, depicted above, clicking on the rollback environment button, will reset the production to its previous working state.",[12,62,63],{},"IT teams often run into issues when building and releasing software and without direct user feedback, they often build out too many features, many of which go unused. Without the ability to test in production, IT organizations spend more time on testing, prolonging release cycles, but quality is only marginally improved. Modern IT teams can overcome these issues by using experimentation systems capabilities, such as feature flags and canary deployments.",[12,65,66],{},[27,67],{"alt":68,"src":69},"feature flags screen","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398046/blog/Content%20Images/cd-unified-monitor-deploy/ff-screen.png",[12,71,72],{},"GitLab supports Feature Flags as shown above. In the example, the defined feature flag named “prods-in-alpha-order-ff” has three strategies:",[74,75,76,80,83],"ul",{},[77,78,79],"li",{},"For the production environment: provide the feature to 50% of users based on the availability of their IDs",[77,81,82],{},"For the staging environment: provide the feature to the users listed in the user list “prods-in-alpha-order-user-list”",[77,84,85],{},"For the review environment: provide the feature to only one user.",[12,87,88],{},"Feature Flags can also be combined with canary deployments. For example, in the picture below, the release manager has chosen to release the canary to half of the nodes in production:",[12,90,91],{},[27,92],{"alt":93,"src":94},"50 percent rollout","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398043/blog/Content%20Images/cd-unified-monitor-deploy/CD-pipeline-50-percent.png",[12,96,97],{},"And this combined deployment can be visualized via the deploy board as follows:",[12,99,100],{},[27,101],{"alt":102,"src":103},"deploy board","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398046/blog/Content%20Images/cd-unified-monitor-deploy/deploy-board.png",[12,105,106],{},"Above, production has four nodes, two of which are running the new canary deployment, and the other two are still running the current production deployment.\nThe combination of canary deployments and feature flags can help gather direct users’ feedback to determine what features are relevant to them, so that an IT organization can focus on these, to shorten release cycle times and deliver higher quality and differentiating value to their users.",[12,108,109],{},"Lastly, integrated monitoring plays an important role in the feedback loop for these advanced deployment strategies and experimentation systems. With GitLab’s unified and integrated monitoring, you can track system and application metrics cluster-wide as well as per pod.",[12,111,112],{},[27,113],{"alt":114,"src":115},"clusterwide monitoring","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398045/blog/Content%20Images/cd-unified-monitor-deploy/clusterwide-monitoring.png",[12,117,118],{},"In the picture above, you can see the dashboards that monitor clusterwide metrics. And the picture below shows the dashboards that monitor pod-specific metrics:",[12,120,121],{},[27,122],{"alt":123,"src":124},"podspecific monitoring","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398047/blog/Content%20Images/cd-unified-monitor-deploy/podspecific-monitoring.png",[12,126,17],{},[12,128,129,130,136],{},"If you’d like to see some of GitLab’s unified and integrated monitoring capabilities and advanced deployment strategies in action, watch this ",[131,132,135],"a",{"href":133,"rel":134},"https://youtu.be/ihdxpO5rgSc",[],"video",".",[12,138,139,140,136],{},"For more information, visit ",[131,141,144],{"href":142,"rel":143},"https://university.gitlab.com/",[],"LEARN@GITLAB",{"title":146,"searchDepth":147,"depth":147,"links":148},"",2,[],"unfiltered","2020-11-23","Learn about GitLab’s unified and integrated monitoring capabilities and advanced deployment strategies.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681771/Blog/Hero%20Images/CD-1st-mkt-diff-cover-1275x849.jpg",{},true,"/en-us/blog/cd-unified-monitor-deploy",{"title":5,"description":151,"ogTitle":5,"ogDescription":151,"noIndex":154,"ogImage":155,"ogUrl":160,"ogSiteName":161,"ogType":162,"canonicalUrls":160},"https://about.gitlab.com/blog/cd-unified-monitor-deploy","https://about.gitlab.com","article","cd-unified-monitor-deploy","en-us/blog/cd-unified-monitor-deploy",[166,167,168],"CI/CD","DevOps","demo","BlogPost","Py6327Y-Q91S4WWXDGAB_0DJxpdwTFAkCIoljXq0Sns",{"logo":172,"freeTrial":177,"sales":182,"login":187,"items":192,"search":517,"minimal":548,"duo":567,"switchNav":576,"pricingDeployment":587},{"config":173},{"href":174,"dataGaName":175,"dataGaLocation":176},"/","gitlab logo","header",{"text":178,"config":179},"Get free trial",{"href":180,"dataGaName":181,"dataGaLocation":176},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":183,"config":184},"Request a demo",{"href":185,"dataGaName":186,"dataGaLocation":176},"/sales/?contact-topic=request-demo","sales",{"text":188,"config":189},"Sign in",{"href":190,"dataGaName":191,"dataGaLocation":176},"https://gitlab.com/users/sign_in/","sign in",[193,222,321,326,439,495],{"text":194,"config":195,"menu":197},"Platform",{"dataNavLevelOne":196},"platform",{"type":198,"columns":199},"cards",[200,206,214],{"title":194,"description":201,"link":202},"The intelligent orchestration platform for DevSecOps",{"text":203,"config":204},"Explore our Platform",{"href":205,"dataGaName":196,"dataGaLocation":176},"/platform/",{"title":207,"description":208,"link":209},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":210,"config":211},"Meet GitLab Duo",{"href":212,"dataGaName":213,"dataGaLocation":176},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":215,"description":216,"link":217},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":218,"config":219},"Learn more",{"href":220,"dataGaName":221,"dataGaLocation":176},"/why-gitlab/","why gitlab",{"text":223,"left":157,"config":224,"menu":226},"Product",{"dataNavLevelOne":225},"solutions",{"type":227,"link":228,"columns":232,"feature":300},"lists",{"text":229,"config":230},"View all Solutions",{"href":231,"dataGaName":225,"dataGaLocation":176},"/solutions/",[233,256,279],{"title":234,"description":235,"link":236,"items":241},"Automation","CI/CD and automation to accelerate deployment",{"config":237},{"icon":238,"href":239,"dataGaName":240,"dataGaLocation":176},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[242,245,248,252],{"text":166,"config":243},{"href":244,"dataGaLocation":176,"dataGaName":166},"/solutions/continuous-integration/",{"text":207,"config":246},{"href":212,"dataGaLocation":176,"dataGaName":247},"gitlab duo agent platform - product menu",{"text":249,"config":250},"Source Code Management",{"href":251,"dataGaLocation":176,"dataGaName":249},"/solutions/source-code-management/",{"text":253,"config":254},"Automated Software Delivery",{"href":239,"dataGaLocation":176,"dataGaName":255},"Automated software delivery",{"title":257,"description":258,"link":259,"items":264},"Security","Deliver code faster without compromising security",{"config":260},{"href":261,"dataGaName":262,"dataGaLocation":176,"icon":263},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[265,269,274],{"text":266,"config":267},"Application Security Testing",{"href":261,"dataGaName":268,"dataGaLocation":176},"Application security testing",{"text":270,"config":271},"Software Supply Chain Security",{"href":272,"dataGaLocation":176,"dataGaName":273},"/solutions/supply-chain/","Software supply chain security",{"text":275,"config":276},"Software Compliance",{"href":277,"dataGaName":278,"dataGaLocation":176},"/solutions/software-compliance/","software compliance",{"title":280,"link":281,"items":286},"Measurement",{"config":282},{"icon":283,"href":284,"dataGaName":285,"dataGaLocation":176},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[287,291,295],{"text":288,"config":289},"Visibility & Measurement",{"href":284,"dataGaLocation":176,"dataGaName":290},"Visibility and Measurement",{"text":292,"config":293},"Value Stream Management",{"href":294,"dataGaLocation":176,"dataGaName":292},"/solutions/value-stream-management/",{"text":296,"config":297},"Analytics & Insights",{"href":298,"dataGaLocation":176,"dataGaName":299},"/solutions/analytics-and-insights/","Analytics and insights",{"title":301,"type":227,"items":302},"GitLab for",[303,309,315],{"text":304,"config":305},"Enterprise",{"icon":306,"href":307,"dataGaLocation":176,"dataGaName":308},"Building","/enterprise/","enterprise",{"text":310,"config":311},"Small Business",{"icon":312,"href":313,"dataGaLocation":176,"dataGaName":314},"Work","/small-business/","small business",{"text":316,"config":317},"Public Sector",{"icon":318,"href":319,"dataGaLocation":176,"dataGaName":320},"Organization","/solutions/public-sector/","public sector",{"text":322,"config":323},"Pricing",{"href":324,"dataGaName":325,"dataGaLocation":176,"dataNavLevelOne":325},"/pricing/","pricing",{"text":327,"config":328,"menu":330},"Resources",{"dataNavLevelOne":329},"resources",{"type":227,"link":331,"columns":335,"feature":428},{"text":332,"config":333},"View all resources",{"href":334,"dataGaName":329,"dataGaLocation":176},"/resources/",[336,368,395],{"title":337,"items":338},"Getting started",[339,344,349,353,358,363],{"text":340,"config":341},"Install",{"href":342,"dataGaName":343,"dataGaLocation":176},"/install/","install",{"text":345,"config":346},"Quick start guides",{"href":347,"dataGaName":348,"dataGaLocation":176},"/get-started/","quick setup checklists",{"text":350,"config":351},"Learn",{"href":142,"dataGaLocation":176,"dataGaName":352},"learn",{"text":354,"config":355},"Product documentation",{"href":356,"dataGaName":357,"dataGaLocation":176},"https://docs.gitlab.com/","product documentation",{"text":359,"config":360},"Best practice videos",{"href":361,"dataGaName":362,"dataGaLocation":176},"/getting-started-videos/","best practice videos",{"text":364,"config":365},"Integrations",{"href":366,"dataGaName":367,"dataGaLocation":176},"/integrations/","integrations",{"title":369,"items":370},"Discover",[371,376,381,386,390],{"text":372,"config":373},"Customer success stories",{"href":374,"dataGaName":375,"dataGaLocation":176},"/customers/","customer success stories",{"text":377,"config":378},"Blog",{"href":379,"dataGaName":380,"dataGaLocation":176},"/blog/","blog",{"text":382,"config":383},"Demo Hub",{"href":384,"dataGaName":385,"dataGaLocation":176},"/demo-hub/","demo hub",{"text":387,"config":388},"The Source",{"href":389,"dataGaName":380,"dataGaLocation":176},"/the-source/",{"text":391,"config":392},"Remote",{"href":393,"dataGaName":394,"dataGaLocation":176},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":396,"items":397},"Connect",[398,403,408,413,418,423],{"text":399,"config":400},"GitLab Services",{"href":401,"dataGaName":402,"dataGaLocation":176},"/services/","services",{"text":404,"config":405},"Contribute",{"href":406,"dataGaName":407,"dataGaLocation":176},"https://contributors.gitlab.com","contribute",{"text":409,"config":410},"Community",{"href":411,"dataGaName":412,"dataGaLocation":176},"/community/","community",{"text":414,"config":415},"Forum",{"href":416,"dataGaName":417,"dataGaLocation":176},"https://forum.gitlab.com/","forum",{"text":419,"config":420},"Events",{"href":421,"dataGaName":422,"dataGaLocation":176},"/events/","events",{"text":424,"config":425},"Partners",{"href":426,"dataGaName":427,"dataGaLocation":176},"/partners/","partners",{"config":429,"title":432,"text":433,"link":434},{"background":430,"textColor":431},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","What’s new in GitLab","Stay updated with our latest features and improvements.",{"text":435,"config":436},"Read the latest",{"href":437,"dataGaName":438,"dataGaLocation":176},"/whats-new/","whats new",{"text":440,"config":441,"menu":443},"Company",{"dataNavLevelOne":442},"company",{"type":227,"columns":444},[445],{"items":446},[447,452,458,460,465,470,475,480,485,490],{"text":448,"config":449},"About",{"href":450,"dataGaName":451,"dataGaLocation":176},"/company/","about",{"text":453,"config":454,"footerGa":457},"Jobs",{"href":455,"dataGaName":456,"dataGaLocation":176},"/jobs/","jobs",{"dataGaName":456},{"text":419,"config":459},{"href":421,"dataGaName":422,"dataGaLocation":176},{"text":461,"config":462},"Leadership",{"href":463,"dataGaName":464,"dataGaLocation":176},"/company/team/e-group/","leadership",{"text":466,"config":467},"Handbook",{"href":468,"dataGaName":469,"dataGaLocation":176},"https://handbook.gitlab.com/","handbook",{"text":471,"config":472},"Investor relations",{"href":473,"dataGaName":474,"dataGaLocation":176},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":476,"config":477},"Trust Center",{"href":478,"dataGaName":479,"dataGaLocation":176},"/security/","trust center",{"text":481,"config":482},"AI Transparency Center",{"href":483,"dataGaName":484,"dataGaLocation":176},"/ai-transparency-center/","ai transparency center",{"text":486,"config":487},"Newsletter",{"href":488,"dataGaName":489,"dataGaLocation":176},"/company/contact/#contact-forms","newsletter",{"text":491,"config":492},"Press",{"href":493,"dataGaName":494,"dataGaLocation":176},"/press/","press",{"text":496,"config":497,"menu":498},"Contact us",{"dataNavLevelOne":442},{"type":227,"columns":499},[500],{"items":501},[502,507,512],{"text":503,"config":504},"Talk to sales",{"href":505,"dataGaName":506,"dataGaLocation":176},"/sales/","talk to sales",{"text":508,"config":509},"Support portal",{"href":510,"dataGaName":511,"dataGaLocation":176},"https://support.gitlab.com/hc/en-us","support portal",{"text":513,"config":514},"Customer portal",{"href":515,"dataGaName":516,"dataGaLocation":176},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":518,"login":519,"suggestions":526},"Close",{"text":520,"link":521},"To search repositories and projects, login to",{"text":522,"config":523},"gitlab.com",{"href":190,"dataGaName":524,"dataGaLocation":525},"search login","search",{"text":527,"default":528},"Suggestions",[529,531,535,537,541,545],{"text":207,"config":530},{"href":212,"dataGaName":207,"dataGaLocation":525},{"text":532,"config":533},"Code Suggestions (AI)",{"href":534,"dataGaName":532,"dataGaLocation":525},"/solutions/code-suggestions/",{"text":166,"config":536},{"href":244,"dataGaName":166,"dataGaLocation":525},{"text":538,"config":539},"GitLab on AWS",{"href":540,"dataGaName":538,"dataGaLocation":525},"/partners/technology-partners/aws/",{"text":542,"config":543},"GitLab on Google Cloud",{"href":544,"dataGaName":542,"dataGaLocation":525},"/partners/technology-partners/google-cloud-platform/",{"text":546,"config":547},"Why GitLab?",{"href":220,"dataGaName":546,"dataGaLocation":525},{"freeTrial":549,"mobileIcon":554,"desktopIcon":559,"secondaryButton":562},{"text":550,"config":551},"Start free trial",{"href":552,"dataGaName":181,"dataGaLocation":553},"https://gitlab.com/-/trials/new/","nav",{"altText":555,"config":556},"Gitlab Icon",{"src":557,"dataGaName":558,"dataGaLocation":553},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":555,"config":560},{"src":561,"dataGaName":558,"dataGaLocation":553},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":563,"config":564},"Get Started",{"href":565,"dataGaName":566,"dataGaLocation":553},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":568,"mobileIcon":572,"desktopIcon":574},{"text":569,"config":570},"Learn more about GitLab Duo",{"href":212,"dataGaName":571,"dataGaLocation":553},"gitlab duo",{"altText":555,"config":573},{"src":557,"dataGaName":558,"dataGaLocation":553},{"altText":555,"config":575},{"src":561,"dataGaName":558,"dataGaLocation":553},{"button":577,"mobileIcon":582,"desktopIcon":584},{"text":578,"config":579},"/switch",{"href":580,"dataGaName":581,"dataGaLocation":553},"#contact","switch",{"altText":555,"config":583},{"src":557,"dataGaName":558,"dataGaLocation":553},{"altText":555,"config":585},{"src":586,"dataGaName":558,"dataGaLocation":553},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":588,"mobileIcon":593,"desktopIcon":595},{"text":589,"config":590},"Back to pricing",{"href":324,"dataGaName":591,"dataGaLocation":553,"icon":592},"back to pricing","GoBack",{"altText":555,"config":594},{"src":557,"dataGaName":558,"dataGaLocation":553},{"altText":555,"config":596},{"src":561,"dataGaName":558,"dataGaLocation":553},{"title":598,"titleMobile":599,"button":600,"config":605},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":218,"config":601},{"href":602,"dataGaName":603,"dataGaLocation":604},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":606,"disabled":154},"release",{"data":608},{"text":609,"source":610,"edit":616,"contribute":621,"config":626,"items":631,"minimal":840},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":611,"config":612},"View page source",{"href":613,"dataGaName":614,"dataGaLocation":615},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":617,"config":618},"Edit this page",{"href":619,"dataGaName":620,"dataGaLocation":615},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":622,"config":623},"Please contribute",{"href":624,"dataGaName":625,"dataGaLocation":615},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":627,"facebook":628,"youtube":629,"linkedin":630},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[632,679,732,776,808],{"title":322,"links":633,"subMenu":648},[634,638,643],{"text":635,"config":636},"View plans",{"href":324,"dataGaName":637,"dataGaLocation":615},"view plans",{"text":639,"config":640},"Why Premium?",{"href":641,"dataGaName":642,"dataGaLocation":615},"/pricing/premium/","why premium",{"text":644,"config":645},"Why Ultimate?",{"href":646,"dataGaName":647,"dataGaLocation":615},"/pricing/ultimate/","why ultimate",[649],{"title":650,"links":651},"Contact Us",[652,655,657,659,664,669,674],{"text":653,"config":654},"Contact sales",{"href":505,"dataGaName":186,"dataGaLocation":615},{"text":508,"config":656},{"href":510,"dataGaName":511,"dataGaLocation":615},{"text":513,"config":658},{"href":515,"dataGaName":516,"dataGaLocation":615},{"text":660,"config":661},"Status",{"href":662,"dataGaName":663,"dataGaLocation":615},"https://status.gitlab.com/","status",{"text":665,"config":666},"Terms of use",{"href":667,"dataGaName":668,"dataGaLocation":615},"/terms/","terms of use",{"text":670,"config":671},"Privacy statement",{"href":672,"dataGaName":673,"dataGaLocation":615},"/privacy/","privacy statement",{"text":675,"config":676},"Cookie preferences",{"dataGaName":677,"dataGaLocation":615,"id":678,"isOneTrustButton":157},"cookie preferences","ot-sdk-btn",{"title":223,"links":680,"subMenu":689},[681,685],{"text":682,"config":683},"DevSecOps platform",{"href":205,"dataGaName":684,"dataGaLocation":615},"devsecops platform",{"text":686,"config":687},"AI-Assisted Development",{"href":212,"dataGaName":688,"dataGaLocation":615},"ai-assisted development",[690],{"title":691,"links":692},"Topics",[693,698,703,707,712,717,722,727],{"text":694,"config":695},"CICD",{"href":696,"dataGaName":697,"dataGaLocation":615},"/topics/ci-cd/","cicd",{"text":699,"config":700},"GitOps",{"href":701,"dataGaName":702,"dataGaLocation":615},"/topics/gitops/","gitops",{"text":167,"config":704},{"href":705,"dataGaName":706,"dataGaLocation":615},"/topics/devops/","devops",{"text":708,"config":709},"Version Control",{"href":710,"dataGaName":711,"dataGaLocation":615},"/topics/version-control/","version control",{"text":713,"config":714},"DevSecOps",{"href":715,"dataGaName":716,"dataGaLocation":615},"/topics/devsecops/","devsecops",{"text":718,"config":719},"Cloud Native",{"href":720,"dataGaName":721,"dataGaLocation":615},"/topics/cloud-native/","cloud native",{"text":723,"config":724},"AI for Coding",{"href":725,"dataGaName":726,"dataGaLocation":615},"/topics/devops/ai-for-coding/","ai for coding",{"text":728,"config":729},"Agentic AI",{"href":730,"dataGaName":731,"dataGaLocation":615},"/topics/agentic-ai/","agentic ai",{"title":733,"links":734},"Solutions",[735,737,739,744,748,751,755,758,760,763,766,771],{"text":266,"config":736},{"href":261,"dataGaName":266,"dataGaLocation":615},{"text":255,"config":738},{"href":239,"dataGaName":240,"dataGaLocation":615},{"text":740,"config":741},"Agile development",{"href":742,"dataGaName":743,"dataGaLocation":615},"/solutions/agile-delivery/","agile delivery",{"text":745,"config":746},"SCM",{"href":251,"dataGaName":747,"dataGaLocation":615},"source code management",{"text":694,"config":749},{"href":244,"dataGaName":750,"dataGaLocation":615},"continuous integration & delivery",{"text":752,"config":753},"Value stream management",{"href":294,"dataGaName":754,"dataGaLocation":615},"value stream management",{"text":699,"config":756},{"href":757,"dataGaName":702,"dataGaLocation":615},"/solutions/gitops/",{"text":304,"config":759},{"href":307,"dataGaName":308,"dataGaLocation":615},{"text":761,"config":762},"Small business",{"href":313,"dataGaName":314,"dataGaLocation":615},{"text":764,"config":765},"Public sector",{"href":319,"dataGaName":320,"dataGaLocation":615},{"text":767,"config":768},"Education",{"href":769,"dataGaName":770,"dataGaLocation":615},"/solutions/education/","education",{"text":772,"config":773},"Financial services",{"href":774,"dataGaName":775,"dataGaLocation":615},"/solutions/finance/","financial services",{"title":327,"links":777},[778,780,782,784,787,789,792,794,796,798,800,802,804,806],{"text":340,"config":779},{"href":342,"dataGaName":343,"dataGaLocation":615},{"text":345,"config":781},{"href":347,"dataGaName":348,"dataGaLocation":615},{"text":350,"config":783},{"href":142,"dataGaName":352,"dataGaLocation":615},{"text":354,"config":785},{"href":356,"dataGaName":786,"dataGaLocation":615},"docs",{"text":377,"config":788},{"href":379,"dataGaName":380,"dataGaLocation":615},{"text":790,"config":791},"What's new",{"href":437,"dataGaName":438,"dataGaLocation":615},{"text":372,"config":793},{"href":374,"dataGaName":375,"dataGaLocation":615},{"text":391,"config":795},{"href":393,"dataGaName":394,"dataGaLocation":615},{"text":399,"config":797},{"href":401,"dataGaName":402,"dataGaLocation":615},{"text":404,"config":799},{"href":406,"dataGaName":407,"dataGaLocation":615},{"text":409,"config":801},{"href":411,"dataGaName":412,"dataGaLocation":615},{"text":414,"config":803},{"href":416,"dataGaName":417,"dataGaLocation":615},{"text":419,"config":805},{"href":421,"dataGaName":422,"dataGaLocation":615},{"text":424,"config":807},{"href":426,"dataGaName":427,"dataGaLocation":615},{"title":440,"links":809},[810,812,814,816,818,820,824,829,831,833,835],{"text":448,"config":811},{"href":450,"dataGaName":442,"dataGaLocation":615},{"text":453,"config":813},{"href":455,"dataGaName":456,"dataGaLocation":615},{"text":461,"config":815},{"href":463,"dataGaName":464,"dataGaLocation":615},{"text":466,"config":817},{"href":468,"dataGaName":469,"dataGaLocation":615},{"text":471,"config":819},{"href":473,"dataGaName":474,"dataGaLocation":615},{"text":821,"config":822},"Sustainability",{"href":823,"dataGaName":821,"dataGaLocation":615},"/sustainability/",{"text":825,"config":826},"Diversity, inclusion and belonging (DIB)",{"href":827,"dataGaName":828,"dataGaLocation":615},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":476,"config":830},{"href":478,"dataGaName":479,"dataGaLocation":615},{"text":486,"config":832},{"href":488,"dataGaName":489,"dataGaLocation":615},{"text":491,"config":834},{"href":493,"dataGaName":494,"dataGaLocation":615},{"text":836,"config":837},"Modern Slavery Transparency Statement",{"href":838,"dataGaName":839,"dataGaLocation":615},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":841},[842,845,848],{"text":843,"config":844},"Terms",{"href":667,"dataGaName":668,"dataGaLocation":615},{"text":846,"config":847},"Cookies",{"dataGaName":677,"dataGaLocation":615,"id":678,"isOneTrustButton":157},{"text":849,"config":850},"Privacy",{"href":672,"dataGaName":673,"dataGaLocation":615},[852],{"id":853,"title":7,"body":153,"config":854,"content":856,"description":153,"extension":860,"meta":861,"navigation":157,"path":862,"seo":863,"stem":864,"__hash__":865},"blogAuthors/en-us/blog/authors/cesar-saavedra.yml",{"template":855},"BlogAuthor",{"name":7,"config":857},{"headshot":858,"ctfId":859},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659600/Blog/Author%20Headshots/csaavedra1-headshot.jpg","csaavedra1","yml",{},"/en-us/blog/authors/cesar-saavedra",{},"en-us/blog/authors/cesar-saavedra","SMqRf-z0W5m5GROz_dXGjmuIb3YaOwm_n_RfeK16GcA",[867,875,883],{"title":868,"description":869,"heroImage":870,"category":149,"date":871,"authors":872,"slug":874,"externalUrl":153},"CEO Shadow Takeaways from Jacie","Recap of my experience in the CEO Shadow Program.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664102/Blog/Hero%20Images/gitlab-values-cover.png","2021-05-18",[873],"Jacie Bandur","ceo-shadow-recap",{"title":876,"description":877,"heroImage":878,"category":149,"date":879,"authors":880,"slug":882,"externalUrl":153},"Why I love contributing to GitLab","Making small meaningful changes is what it's all about.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679501/Blog/Hero%20Images/new-feature.png","2021-05-11",[881],"Austin Regnery","why-i-love-contributing-to-gitlab",{"title":884,"description":885,"heroImage":886,"category":149,"date":879,"authors":887,"slug":889,"externalUrl":153},"Placebo Lines on the Pipeline Graph","Have you noticed the connecting lines missing on your pipelines lately? Here's why","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679507/Blog/Hero%20Images/ci-cd.png",[888],"Sam Beckham","placebo-lines-on-the-pipeline-graph",{"promotions":891},[892,906,918,930],{"id":893,"categories":894,"header":896,"text":897,"button":898,"image":903},"ai-modernization",[895],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":899,"config":900},"Get your AI maturity score",{"href":901,"dataGaName":902,"dataGaLocation":380},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":904},{"src":905},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":907,"categories":908,"header":910,"text":897,"button":911,"image":915},"devops-modernization",[909,716],"product","Are you just managing tools or shipping innovation?",{"text":912,"config":913},"Get your DevOps maturity score",{"href":914,"dataGaName":902,"dataGaLocation":380},"/assessments/devops-modernization-assessment/",{"config":916},{"src":917},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":919,"categories":920,"header":922,"text":897,"button":923,"image":927},"security-modernization",[921],"security","Are you trading speed for security?",{"text":924,"config":925},"Get your security maturity score",{"href":926,"dataGaName":902,"dataGaLocation":380},"/assessments/security-modernization-assessment/",{"config":928},{"src":929},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":931,"paths":932,"header":935,"text":936,"button":937,"image":942},"github-azure-migration",[933,934],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","Is your team ready for GitHub's Azure move?","GitHub is already rebuilding around Azure. Find out what it means for you.",{"text":938,"config":939},"See how GitLab compares to GitHub",{"href":940,"dataGaName":941,"dataGaLocation":380},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":943},{"src":917},{"header":945,"blurb":946,"button":947,"secondaryButton":952},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":948,"config":949},"Get your free trial",{"href":950,"dataGaName":181,"dataGaLocation":951},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":653,"config":953},{"href":505,"dataGaName":186,"dataGaLocation":951},1786803757891]