[{"data":1,"prerenderedAt":1375},["ShallowReactive",2],{"/en-us/blog/tags/performance":3,"navigation-en-us":18,"banner-en-us":418,"footer-en-us":428,"performance-tag-posts-en-us":670},{"id":4,"title":5,"body":6,"category":6,"config":7,"content":9,"description":6,"extension":11,"meta":12,"navigation":13,"path":14,"seo":15,"slug":6,"stem":16,"testContent":6,"type":6,"__hash__":17},"blogTags/en-us/blog/tags/performance.yml","Performance",null,{"template":8},"BlogTag",{"tag":10,"tagSlug":10},"performance","yml",{},true,"/en-us/blog/tags/performance",{},"en-us/blog/tags/performance","0KRPQKWp_JZc7UZgtCCYYJ-7cSpqV9MUL0aZ_bdsa2A",{"data":19},{"logo":20,"freeTrial":25,"sales":30,"login":35,"items":40,"search":348,"minimal":379,"duo":398,"pricingDeployment":408},{"config":21},{"href":22,"dataGaName":23,"dataGaLocation":24},"/","gitlab logo","header",{"text":26,"config":27},"Get free trial",{"href":28,"dataGaName":29,"dataGaLocation":24},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":31,"config":32},"Talk to sales",{"href":33,"dataGaName":34,"dataGaLocation":24},"/sales/","sales",{"text":36,"config":37},"Sign in",{"href":38,"dataGaName":39,"dataGaLocation":24},"https://gitlab.com/users/sign_in/","sign in",[41,68,163,168,269,329],{"text":42,"config":43,"cards":45},"Platform",{"dataNavLevelOne":44},"platform",[46,52,60],{"title":42,"description":47,"link":48},"The intelligent orchestration platform for DevSecOps",{"text":49,"config":50},"Explore our Platform",{"href":51,"dataGaName":44,"dataGaLocation":24},"/platform/",{"title":53,"description":54,"link":55},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":56,"config":57},"Meet GitLab Duo",{"href":58,"dataGaName":59,"dataGaLocation":24},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":61,"description":62,"link":63},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":64,"config":65},"Learn more",{"href":66,"dataGaName":67,"dataGaLocation":24},"/why-gitlab/","why gitlab",{"text":69,"left":13,"config":70,"link":72,"lists":76,"footer":145},"Product",{"dataNavLevelOne":71},"solutions",{"text":73,"config":74},"View all Solutions",{"href":75,"dataGaName":71,"dataGaLocation":24},"/solutions/",[77,101,124],{"title":78,"description":79,"link":80,"items":85},"Automation","CI/CD and automation to accelerate deployment",{"config":81},{"icon":82,"href":83,"dataGaName":84,"dataGaLocation":24},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[86,90,93,97],{"text":87,"config":88},"CI/CD",{"href":89,"dataGaLocation":24,"dataGaName":87},"/solutions/continuous-integration/",{"text":53,"config":91},{"href":58,"dataGaLocation":24,"dataGaName":92},"gitlab duo agent platform - product menu",{"text":94,"config":95},"Source Code Management",{"href":96,"dataGaLocation":24,"dataGaName":94},"/solutions/source-code-management/",{"text":98,"config":99},"Automated Software Delivery",{"href":83,"dataGaLocation":24,"dataGaName":100},"Automated software delivery",{"title":102,"description":103,"link":104,"items":109},"Security","Deliver code faster without compromising security",{"config":105},{"href":106,"dataGaName":107,"dataGaLocation":24,"icon":108},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[110,114,119],{"text":111,"config":112},"Application Security Testing",{"href":106,"dataGaName":113,"dataGaLocation":24},"Application security testing",{"text":115,"config":116},"Software Supply Chain Security",{"href":117,"dataGaLocation":24,"dataGaName":118},"/solutions/supply-chain/","Software supply chain security",{"text":120,"config":121},"Software Compliance",{"href":122,"dataGaName":123,"dataGaLocation":24},"/solutions/software-compliance/","software compliance",{"title":125,"link":126,"items":131},"Measurement",{"config":127},{"icon":128,"href":129,"dataGaName":130,"dataGaLocation":24},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[132,136,140],{"text":133,"config":134},"Visibility & Measurement",{"href":129,"dataGaLocation":24,"dataGaName":135},"Visibility and Measurement",{"text":137,"config":138},"Value Stream Management",{"href":139,"dataGaLocation":24,"dataGaName":137},"/solutions/value-stream-management/",{"text":141,"config":142},"Analytics & Insights",{"href":143,"dataGaLocation":24,"dataGaName":144},"/solutions/analytics-and-insights/","Analytics and insights",{"title":146,"items":147},"GitLab for",[148,153,158],{"text":149,"config":150},"Enterprise",{"href":151,"dataGaLocation":24,"dataGaName":152},"/enterprise/","enterprise",{"text":154,"config":155},"Small Business",{"href":156,"dataGaLocation":24,"dataGaName":157},"/small-business/","small business",{"text":159,"config":160},"Public Sector",{"href":161,"dataGaLocation":24,"dataGaName":162},"/solutions/public-sector/","public sector",{"text":164,"config":165},"Pricing",{"href":166,"dataGaName":167,"dataGaLocation":24,"dataNavLevelOne":167},"/pricing/","pricing",{"text":169,"config":170,"link":172,"lists":176,"feature":256},"Resources",{"dataNavLevelOne":171},"resources",{"text":173,"config":174},"View all resources",{"href":175,"dataGaName":171,"dataGaLocation":24},"/resources/",[177,210,228],{"title":178,"items":179},"Getting started",[180,185,190,195,200,205],{"text":181,"config":182},"Install",{"href":183,"dataGaName":184,"dataGaLocation":24},"/install/","install",{"text":186,"config":187},"Quick start guides",{"href":188,"dataGaName":189,"dataGaLocation":24},"/get-started/","quick setup checklists",{"text":191,"config":192},"Learn",{"href":193,"dataGaLocation":24,"dataGaName":194},"https://university.gitlab.com/","learn",{"text":196,"config":197},"Product documentation",{"href":198,"dataGaName":199,"dataGaLocation":24},"https://docs.gitlab.com/","product documentation",{"text":201,"config":202},"Best practice videos",{"href":203,"dataGaName":204,"dataGaLocation":24},"/getting-started-videos/","best practice videos",{"text":206,"config":207},"Integrations",{"href":208,"dataGaName":209,"dataGaLocation":24},"/integrations/","integrations",{"title":211,"items":212},"Discover",[213,218,223],{"text":214,"config":215},"Customer success stories",{"href":216,"dataGaName":217,"dataGaLocation":24},"/customers/","customer success stories",{"text":219,"config":220},"Blog",{"href":221,"dataGaName":222,"dataGaLocation":24},"/blog/","blog",{"text":224,"config":225},"Remote",{"href":226,"dataGaName":227,"dataGaLocation":24},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":229,"items":230},"Connect",[231,236,241,246,251],{"text":232,"config":233},"GitLab Services",{"href":234,"dataGaName":235,"dataGaLocation":24},"/services/","services",{"text":237,"config":238},"Community",{"href":239,"dataGaName":240,"dataGaLocation":24},"/community/","community",{"text":242,"config":243},"Forum",{"href":244,"dataGaName":245,"dataGaLocation":24},"https://forum.gitlab.com/","forum",{"text":247,"config":248},"Events",{"href":249,"dataGaName":250,"dataGaLocation":24},"/events/","events",{"text":252,"config":253},"Partners",{"href":254,"dataGaName":255,"dataGaLocation":24},"/partners/","partners",{"backgroundColor":257,"textColor":258,"text":259,"image":260,"link":264},"#2f2a6b","#fff","Insights for the future of software development",{"altText":261,"config":262},"the source promo card",{"src":263},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":265,"config":266},"Read the latest",{"href":267,"dataGaName":268,"dataGaLocation":24},"/the-source/","the source",{"text":270,"config":271,"lists":273},"Company",{"dataNavLevelOne":272},"company",[274],{"items":275},[276,281,287,289,294,299,304,309,314,319,324],{"text":277,"config":278},"About",{"href":279,"dataGaName":280,"dataGaLocation":24},"/company/","about",{"text":282,"config":283,"footerGa":286},"Jobs",{"href":284,"dataGaName":285,"dataGaLocation":24},"/jobs/","jobs",{"dataGaName":285},{"text":247,"config":288},{"href":249,"dataGaName":250,"dataGaLocation":24},{"text":290,"config":291},"Leadership",{"href":292,"dataGaName":293,"dataGaLocation":24},"/company/team/e-group/","leadership",{"text":295,"config":296},"Team",{"href":297,"dataGaName":298,"dataGaLocation":24},"/company/team/","team",{"text":300,"config":301},"Handbook",{"href":302,"dataGaName":303,"dataGaLocation":24},"https://handbook.gitlab.com/","handbook",{"text":305,"config":306},"Investor relations",{"href":307,"dataGaName":308,"dataGaLocation":24},"https://ir.gitlab.com/","investor relations",{"text":310,"config":311},"Trust Center",{"href":312,"dataGaName":313,"dataGaLocation":24},"/security/","trust center",{"text":315,"config":316},"AI Transparency Center",{"href":317,"dataGaName":318,"dataGaLocation":24},"/ai-transparency-center/","ai transparency center",{"text":320,"config":321},"Newsletter",{"href":322,"dataGaName":323,"dataGaLocation":24},"/company/contact/#contact-forms","newsletter",{"text":325,"config":326},"Press",{"href":327,"dataGaName":328,"dataGaLocation":24},"/press/","press",{"text":330,"config":331,"lists":332},"Contact us",{"dataNavLevelOne":272},[333],{"items":334},[335,338,343],{"text":31,"config":336},{"href":33,"dataGaName":337,"dataGaLocation":24},"talk to sales",{"text":339,"config":340},"Support portal",{"href":341,"dataGaName":342,"dataGaLocation":24},"https://support.gitlab.com","support portal",{"text":344,"config":345},"Customer portal",{"href":346,"dataGaName":347,"dataGaLocation":24},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":349,"login":350,"suggestions":357},"Close",{"text":351,"link":352},"To search repositories and projects, login to",{"text":353,"config":354},"gitlab.com",{"href":38,"dataGaName":355,"dataGaLocation":356},"search login","search",{"text":358,"default":359},"Suggestions",[360,362,366,368,372,376],{"text":53,"config":361},{"href":58,"dataGaName":53,"dataGaLocation":356},{"text":363,"config":364},"Code Suggestions (AI)",{"href":365,"dataGaName":363,"dataGaLocation":356},"/solutions/code-suggestions/",{"text":87,"config":367},{"href":89,"dataGaName":87,"dataGaLocation":356},{"text":369,"config":370},"GitLab on AWS",{"href":371,"dataGaName":369,"dataGaLocation":356},"/partners/technology-partners/aws/",{"text":373,"config":374},"GitLab on Google Cloud",{"href":375,"dataGaName":373,"dataGaLocation":356},"/partners/technology-partners/google-cloud-platform/",{"text":377,"config":378},"Why GitLab?",{"href":66,"dataGaName":377,"dataGaLocation":356},{"freeTrial":380,"mobileIcon":385,"desktopIcon":390,"secondaryButton":393},{"text":381,"config":382},"Start free trial",{"href":383,"dataGaName":29,"dataGaLocation":384},"https://gitlab.com/-/trials/new/","nav",{"altText":386,"config":387},"Gitlab Icon",{"src":388,"dataGaName":389,"dataGaLocation":384},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":386,"config":391},{"src":392,"dataGaName":389,"dataGaLocation":384},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":394,"config":395},"Get Started",{"href":396,"dataGaName":397,"dataGaLocation":384},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/compare/gitlab-vs-github/","get started",{"freeTrial":399,"mobileIcon":404,"desktopIcon":406},{"text":400,"config":401},"Learn more about GitLab Duo",{"href":402,"dataGaName":403,"dataGaLocation":384},"/gitlab-duo/","gitlab duo",{"altText":386,"config":405},{"src":388,"dataGaName":389,"dataGaLocation":384},{"altText":386,"config":407},{"src":392,"dataGaName":389,"dataGaLocation":384},{"freeTrial":409,"mobileIcon":414,"desktopIcon":416},{"text":410,"config":411},"Back to pricing",{"href":166,"dataGaName":412,"dataGaLocation":384,"icon":413},"back to pricing","GoBack",{"altText":386,"config":415},{"src":388,"dataGaName":389,"dataGaLocation":384},{"altText":386,"config":417},{"src":392,"dataGaName":389,"dataGaLocation":384},{"title":419,"button":420,"config":425},"See how agentic AI transforms software delivery",{"text":421,"config":422},"Watch GitLab Transcend now",{"href":423,"dataGaName":424,"dataGaLocation":24},"/events/transcend/virtual/","transcend event",{"layout":426,"icon":427},"release","AiStar",{"data":429},{"text":430,"source":431,"edit":437,"contribute":442,"config":447,"items":452,"minimal":659},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":432,"config":433},"View page source",{"href":434,"dataGaName":435,"dataGaLocation":436},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":438,"config":439},"Edit this page",{"href":440,"dataGaName":441,"dataGaLocation":436},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":443,"config":444},"Please contribute",{"href":445,"dataGaName":446,"dataGaLocation":436},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":448,"facebook":449,"youtube":450,"linkedin":451},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[453,500,554,598,625],{"title":164,"links":454,"subMenu":469},[455,459,464],{"text":456,"config":457},"View plans",{"href":166,"dataGaName":458,"dataGaLocation":436},"view plans",{"text":460,"config":461},"Why Premium?",{"href":462,"dataGaName":463,"dataGaLocation":436},"/pricing/premium/","why premium",{"text":465,"config":466},"Why Ultimate?",{"href":467,"dataGaName":468,"dataGaLocation":436},"/pricing/ultimate/","why ultimate",[470],{"title":471,"links":472},"Contact Us",[473,476,478,480,485,490,495],{"text":474,"config":475},"Contact sales",{"href":33,"dataGaName":34,"dataGaLocation":436},{"text":339,"config":477},{"href":341,"dataGaName":342,"dataGaLocation":436},{"text":344,"config":479},{"href":346,"dataGaName":347,"dataGaLocation":436},{"text":481,"config":482},"Status",{"href":483,"dataGaName":484,"dataGaLocation":436},"https://status.gitlab.com/","status",{"text":486,"config":487},"Terms of use",{"href":488,"dataGaName":489,"dataGaLocation":436},"/terms/","terms of use",{"text":491,"config":492},"Privacy statement",{"href":493,"dataGaName":494,"dataGaLocation":436},"/privacy/","privacy statement",{"text":496,"config":497},"Cookie preferences",{"dataGaName":498,"dataGaLocation":436,"id":499,"isOneTrustButton":13},"cookie preferences","ot-sdk-btn",{"title":69,"links":501,"subMenu":510},[502,506],{"text":503,"config":504},"DevSecOps platform",{"href":51,"dataGaName":505,"dataGaLocation":436},"devsecops platform",{"text":507,"config":508},"AI-Assisted Development",{"href":402,"dataGaName":509,"dataGaLocation":436},"ai-assisted development",[511],{"title":512,"links":513},"Topics",[514,519,524,529,534,539,544,549],{"text":515,"config":516},"CICD",{"href":517,"dataGaName":518,"dataGaLocation":436},"/topics/ci-cd/","cicd",{"text":520,"config":521},"GitOps",{"href":522,"dataGaName":523,"dataGaLocation":436},"/topics/gitops/","gitops",{"text":525,"config":526},"DevOps",{"href":527,"dataGaName":528,"dataGaLocation":436},"/topics/devops/","devops",{"text":530,"config":531},"Version Control",{"href":532,"dataGaName":533,"dataGaLocation":436},"/topics/version-control/","version control",{"text":535,"config":536},"DevSecOps",{"href":537,"dataGaName":538,"dataGaLocation":436},"/topics/devsecops/","devsecops",{"text":540,"config":541},"Cloud Native",{"href":542,"dataGaName":543,"dataGaLocation":436},"/topics/cloud-native/","cloud native",{"text":545,"config":546},"AI for Coding",{"href":547,"dataGaName":548,"dataGaLocation":436},"/topics/devops/ai-for-coding/","ai for coding",{"text":550,"config":551},"Agentic AI",{"href":552,"dataGaName":553,"dataGaLocation":436},"/topics/agentic-ai/","agentic ai",{"title":555,"links":556},"Solutions",[557,559,561,566,570,573,577,580,582,585,588,593],{"text":111,"config":558},{"href":106,"dataGaName":111,"dataGaLocation":436},{"text":100,"config":560},{"href":83,"dataGaName":84,"dataGaLocation":436},{"text":562,"config":563},"Agile development",{"href":564,"dataGaName":565,"dataGaLocation":436},"/solutions/agile-delivery/","agile delivery",{"text":567,"config":568},"SCM",{"href":96,"dataGaName":569,"dataGaLocation":436},"source code management",{"text":515,"config":571},{"href":89,"dataGaName":572,"dataGaLocation":436},"continuous integration & delivery",{"text":574,"config":575},"Value stream management",{"href":139,"dataGaName":576,"dataGaLocation":436},"value stream management",{"text":520,"config":578},{"href":579,"dataGaName":523,"dataGaLocation":436},"/solutions/gitops/",{"text":149,"config":581},{"href":151,"dataGaName":152,"dataGaLocation":436},{"text":583,"config":584},"Small business",{"href":156,"dataGaName":157,"dataGaLocation":436},{"text":586,"config":587},"Public sector",{"href":161,"dataGaName":162,"dataGaLocation":436},{"text":589,"config":590},"Education",{"href":591,"dataGaName":592,"dataGaLocation":436},"/solutions/education/","education",{"text":594,"config":595},"Financial services",{"href":596,"dataGaName":597,"dataGaLocation":436},"/solutions/finance/","financial services",{"title":169,"links":599},[600,602,604,606,609,611,613,615,617,619,621,623],{"text":181,"config":601},{"href":183,"dataGaName":184,"dataGaLocation":436},{"text":186,"config":603},{"href":188,"dataGaName":189,"dataGaLocation":436},{"text":191,"config":605},{"href":193,"dataGaName":194,"dataGaLocation":436},{"text":196,"config":607},{"href":198,"dataGaName":608,"dataGaLocation":436},"docs",{"text":219,"config":610},{"href":221,"dataGaName":222,"dataGaLocation":436},{"text":214,"config":612},{"href":216,"dataGaName":217,"dataGaLocation":436},{"text":224,"config":614},{"href":226,"dataGaName":227,"dataGaLocation":436},{"text":232,"config":616},{"href":234,"dataGaName":235,"dataGaLocation":436},{"text":237,"config":618},{"href":239,"dataGaName":240,"dataGaLocation":436},{"text":242,"config":620},{"href":244,"dataGaName":245,"dataGaLocation":436},{"text":247,"config":622},{"href":249,"dataGaName":250,"dataGaLocation":436},{"text":252,"config":624},{"href":254,"dataGaName":255,"dataGaLocation":436},{"title":270,"links":626},[627,629,631,633,635,637,639,643,648,650,652,654],{"text":277,"config":628},{"href":279,"dataGaName":272,"dataGaLocation":436},{"text":282,"config":630},{"href":284,"dataGaName":285,"dataGaLocation":436},{"text":290,"config":632},{"href":292,"dataGaName":293,"dataGaLocation":436},{"text":295,"config":634},{"href":297,"dataGaName":298,"dataGaLocation":436},{"text":300,"config":636},{"href":302,"dataGaName":303,"dataGaLocation":436},{"text":305,"config":638},{"href":307,"dataGaName":308,"dataGaLocation":436},{"text":640,"config":641},"Sustainability",{"href":642,"dataGaName":640,"dataGaLocation":436},"/sustainability/",{"text":644,"config":645},"Diversity, inclusion and belonging (DIB)",{"href":646,"dataGaName":647,"dataGaLocation":436},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":310,"config":649},{"href":312,"dataGaName":313,"dataGaLocation":436},{"text":320,"config":651},{"href":322,"dataGaName":323,"dataGaLocation":436},{"text":325,"config":653},{"href":327,"dataGaName":328,"dataGaLocation":436},{"text":655,"config":656},"Modern Slavery Transparency Statement",{"href":657,"dataGaName":658,"dataGaLocation":436},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":660},[661,664,667],{"text":662,"config":663},"Terms",{"href":488,"dataGaName":489,"dataGaLocation":436},{"text":665,"config":666},"Cookies",{"dataGaName":498,"dataGaLocation":436,"id":499,"isOneTrustButton":13},{"text":668,"config":669},"Privacy",{"href":493,"dataGaName":494,"dataGaLocation":436},[671,683,695,705,715,726,736,748,759,769,779,788,799,810,819,828,838,847,856,865,874,884,894,904,915,925,934,945,956,966,976,986,995,1005,1015,1025,1035,1046,1055,1063,1073,1082,1092,1102,1111,1119,1127,1138,1147,1156,1166,1176,1186,1196,1206,1216,1225,1235,1244,1253,1263,1272,1281,1291,1299,1308,1317,1327,1337,1347,1357,1366],{"content":672,"config":681},{"title":673,"heroImage":674,"category":675,"description":676,"authors":677,"date":680},"GitLab backs 99.9% availability with service credits for Ultimate customers","https://res.cloudinary.com/about-gitlab-com/image/upload/v1758812952/yxhgljkwljld0lyizmaz.png","product","Ultimate customers now receive service credits when platform availability falls below 99.9%, ensuring reliability for mission-critical DevSecOps workflows.",[678,679],"Aathira Nair","Lyle Kozloff","2026-02-18",{"slug":682,"externalUrl":-1},"gitlab-backs-99-9-availability-with-service-credits-for-ultimate-customers",{"content":684,"config":693},{"title":685,"heroImage":686,"category":687,"description":688,"authors":689,"date":692},"How we decreased GitLab repo backup times from 48 hours to 41 minutes","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097166/Blog/Hero%20Images/Blog/Hero%20Images/REFERENCE%20-%20display%20preview%20for%20blog%20images%20%282%29_2pKf8RsKzAaThmQfqHIaa7_1750097166565.png","engineering","Learn how we tracked a performance bottleneck to a 15-year-old Git function and fixed it, leading to enhanced efficiency that supports more robust backup strategies and can reduce risk.",[690,691],"Karthik Nayak","Manuel Kraft","2025-06-05",{"slug":694,"externalUrl":-1},"how-we-decreased-gitlab-repo-backup-times-from-48-hours-to-41-minutes",{"content":696,"config":702},{"title":697,"heroImage":698,"category":538,"description":699,"authors":700,"date":701},"Overcome AI sprawl with a Value Stream Management approach","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665000/Blog/Hero%20Images/display-the-source-article-overcome-ai-sprawl-image-0492-1800x945-fy25.png","From The Source: Learn how an AI strategy based on Value Stream Management can stop AI sprawl and supply chain constraints and drive ROI.",[],"2025-01-06",{"slug":703,"externalUrl":704},"","https://about.gitlab.com/the-source/ai/overcome-ai-sprawl-with-a-value-stream-management-approach/",{"content":706,"config":713},{"title":707,"heroImage":708,"category":687,"description":709,"authors":710,"date":712},"How we designed the GitLab Reference Architectures","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098651/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%282%29_52vS9ne2Hu3TElOeHep0AF_1750098651525.png","Take a look back with us as we dive into our Reference Architectures design journey to help users easily deploy GitLab at scale. Learn our goals, process, and what's happened in the five years since.",[711],"Grant Young","2024-10-02",{"slug":714,"externalUrl":-1},"how-we-designed-the-gitlab-reference-architectures",{"content":716,"config":724},{"title":717,"heroImage":718,"category":687,"description":719,"authors":720,"date":723},"Building GitLab with GitLab: A multi-region service to deliver AI features","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098664/Blog/Hero%20Images/Blog/Hero%20Images/building-gitlab-with-gitlab-no-type_building-gitlab-with-gitlab-no-type.png_1750098663794.png","Discover how we built our first multi-region deployment for teams at GitLab using the platform's many features, helping create a frictionless developer experience for GitLab Duo users.",[721,722],"Chance Feick","Sam Wiskow","2024-09-12",{"slug":725,"externalUrl":-1},"building-gitlab-with-gitlab-a-multi-region-service-to-deliver-ai-features",{"content":727,"config":734},{"title":728,"heroImage":729,"category":675,"description":730,"authors":731,"date":733},"Monitor application performance with Distributed Tracing","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098000/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%288%29_5x6kH5vwjz8cwKgSBh1w11_1750098000511.png","Learn how Distributed Tracing helps troubleshoot application performance issues by providing end-to-end visibility and seamless collaboration across your organization.",[732],"Sacha Guyon","2024-06-13",{"slug":735,"externalUrl":-1},"monitor-application-performance-with-distributed-tracing",{"content":737,"config":746},{"title":738,"heroImage":739,"category":740,"description":741,"authors":742,"date":745},"Inside look: How GitLab's Test Platform team validates AI features","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099033/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2811%29_78Dav6FR9EGjhebHWuBVan_1750099033422.png","ai-ml","Learn how we continuously analyze AI feature performance, including testing latency worldwide, and get to know our new AI continuous analysis tool.",[743,744],"Mark Lapierre","Vincy Wilson","2024-06-03",{"slug":747,"externalUrl":-1},"inside-look-how-gitlabs-test-platform-team-validates-ai-features",{"content":749,"config":757},{"title":750,"heroImage":751,"category":752,"description":753,"authors":754,"date":756},"A beginner's guide to the Git reftable format","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664595/Blog/Hero%20Images/blog-image-template-1800x945__9_.png","open-source","In Git 2.45.0, GitLab upstreamed the reftable backend to Git, which completely changes how references are stored. Get an in-depth look at the inner workings of this new format.",[755],"Patrick Steinhardt","2024-05-30",{"slug":758,"externalUrl":-1},"a-beginners-guide-to-the-git-reftable-format",{"content":760,"config":767},{"title":761,"heroImage":762,"category":740,"description":763,"authors":764,"date":766},"Developing GitLab Duo: AI Impact analytics dashboard measures the ROI of AI","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098611/Blog/Hero%20Images/Blog/Hero%20Images/blog-hero-banner-1-0178-820x470-fy25_7JlF3WlEkswGQbcTe8DOTB_1750098611370.png","Our blog series continues spotlighting a new feature that provides detailed metrics, such as the Code Suggestions Usage Rate, to help understand the effectiveness of AI investments.",[765],"Haim Snir","2024-05-15",{"slug":768,"externalUrl":-1},"developing-gitlab-duo-ai-impact-analytics-dashboard-measures-the-roi-of-ai",{"content":770,"config":777},{"title":771,"heroImage":772,"category":687,"description":773,"authors":774,"date":776},"Compose Readers and Writers in Golang applications","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099464/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_639935439_3oqldo5Yt5wPonEJYZOLTM_1750099464124.jpg","GitLab streams terabytes of Git data every hour using Golang abstractions of I/O implementations. Learn how to compose Readers and Writers in Golang apps.",[775],"Igor Drozdov","2024-02-15",{"slug":778,"externalUrl":-1},"compose-readers-and-writers-in-golang-applications",{"content":780,"config":786},{"title":781,"heroImage":782,"category":538,"description":783,"authors":784,"date":785},"Inside DORA Performers score in GitLab Value Streams Dashboard ","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098908/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_644947854_248JIrEOCaGJdfJdiSjYde_1750098907747.jpg","Learn how four key metrics drive DevOps maturity, helping teams optimize workflows and achieve DevOps excellence.\n",[765],"2024-01-18",{"slug":787,"externalUrl":-1},"inside-dora-performers-score-in-gitlab-value-streams-dashboard",{"content":789,"config":797},{"title":790,"heroImage":791,"category":538,"description":792,"authors":793,"date":796},"Building GitLab with GitLab: Stress-testing Product Analytics","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659740/Blog/Hero%20Images/building-gitlab-with-gitlab-no-type.png","We put Product Analytics through its paces internally to prep it for Beta. Find out what that entailed and how it led to feature improvements.",[794,795],"James Heimbuck","Sam Kerr","2023-12-14",{"slug":798,"externalUrl":-1},"building-gitlab-with-gitlab-stress-testing-product-analytics",{"content":800,"config":808},{"title":801,"heroImage":802,"category":803,"description":804,"authors":805,"date":807},"GitLab's Maven dependency proxy is available in Beta","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663908/Blog/Hero%20Images/2023-devsecops-report-blog-banner2.png","news","Enterprises can use new package registry feature to consolidate artifact management on GitLab, increasing the efficiency and speed of CI/CD pipelines.",[806],"Tim Rizzi","2023-12-11",{"slug":809,"externalUrl":-1},"gitlabs-maven-dependency-proxy-is-available-in-beta",{"content":811,"config":817},{"title":812,"heroImage":813,"category":803,"description":814,"authors":815,"date":816},"GitLab's next-generation container registry is now available","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683098/Blog/Hero%20Images/container-cloud__1_.png","Self-managed customers can upgrade to the container registry (Beta) and unlock online garbage collection, which can reduce costly downtime and storage.",[806],"2023-12-04",{"slug":818,"externalUrl":-1},"gitlabs-next-generation-container-registry-is-now-available",{"content":820,"config":826},{"title":821,"heroImage":822,"category":687,"description":823,"authors":824,"date":825},"Why and how we rearchitected Git object database maintenance for scale","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664413/Blog/Hero%20Images/speedlights.png","Go in-depth into improvements to maintenance of the Git object database for reduced overhead and increased efficiency.",[755],"2023-11-02",{"slug":827,"externalUrl":-1},"rearchitecting-git-object-database-mainentance-for-scale",{"content":829,"config":836},{"title":830,"heroImage":831,"category":687,"description":832,"authors":833,"date":835},"How to automate the creation of GitLab Runners","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664087/Blog/Hero%20Images/tanukicover.jpg","Follow this step-by-step guide for automating runner setup using new runner creation workflows.",[834],"Darren Eastman","2023-07-06",{"slug":837,"externalUrl":-1},"how-to-automate-creation-of-runners",{"content":839,"config":845},{"title":840,"heroImage":841,"category":538,"description":842,"authors":843,"date":844},"GitLab's 3 steps to optimizing software value streams","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667893/Blog/Hero%20Images/workflow.jpg","Discover the power of GitLab Value Streams Dashboard (VSD) for optimizing software delivery workflows.",[765],"2023-06-26",{"slug":846,"externalUrl":-1},"three-steps-to-optimize-software-value-streams",{"content":848,"config":854},{"title":849,"heroImage":850,"category":687,"description":851,"authors":852,"date":853},"Getting started with the new GitLab Value Streams Dashboard","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671793/Blog/Hero%20Images/16_0-cover-image.png","Benchmark your value stream lifecycle, DORA, and vulnerabilities metrics to gain valuable insights and uncover patterns for continuous improvements.",[765],"2023-06-12",{"slug":855,"externalUrl":-1},"getting-started-with-value-streams-dashboard",{"content":857,"config":863},{"title":858,"heroImage":859,"category":538,"description":860,"authors":861,"date":862},"Value stream management: Total Time Chart simplifies top-down optimization flow","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667913/Blog/Hero%20Images/clocks.jpg","Learn how this new analytics feature provides immediate insights about the time spent in each stage of your workstream.",[765],"2023-06-01",{"slug":864,"externalUrl":-1},"value-stream-total-time-chart",{"content":866,"config":872},{"title":867,"heroImage":868,"category":687,"description":869,"authors":870,"date":871},"Future-proofing Git repository maintenance","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749677736/Blog/Hero%20Images/Git.png","Learn how we revamped our architecture for faster iteration and more efficiently maintained repositories.",[755],"2023-03-20",{"slug":873,"externalUrl":-1},"scaling-repository-maintenance",{"content":875,"config":882},{"title":876,"heroImage":877,"category":687,"description":878,"authors":879,"date":881},"Total Blocking Time - The metric to know for faster website performance","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682637/Blog/Hero%20Images/tbt_cover_image.jpg","Learn how to identify and fix some root causes for high Total Blocking Time.",[880],"Jacques Erasmus","2023-02-14",{"slug":883,"externalUrl":-1},"understanding-and-improving-total-blocking-time",{"content":885,"config":892},{"title":886,"heroImage":887,"category":687,"description":888,"authors":889,"date":891},"How to migrate data to GitLab using main importers","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679170/Blog/Hero%20Images/migration-data.jpg","Learn about the capabilities of main importers, which are used to import data from external tools and from other GitLab instances.",[890],"Itzik Gan Baruch","2023-02-13",{"slug":893,"externalUrl":-1},"gitlab-importers",{"content":895,"config":902},{"title":896,"heroImage":897,"category":538,"description":898,"authors":899,"date":901},"The GitLab Quarterly: How our latest beta releases support developers","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668367/Blog/Hero%20Images/innovation-unsplash.jpg","The Value Streams Dashboard and Remote Development provide the capabilities needed to support DevSecOps teams and stay competitive.",[900],"Dave Steer","2023-01-24",{"slug":903,"externalUrl":-1},"the-gitlab-quarterly-how-our-latest-beta-releases-support-developers",{"content":905,"config":913},{"title":906,"heroImage":907,"category":908,"description":909,"authors":910,"date":912},"Vestiaire Collective VP shares wins, insights, and what's next with DevSecOps migration","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670278/Blog/Hero%20Images/fasttrack.jpg","customer-stories","Support for container registries and integrations with existing tools were the top reasons for the ecommerce company's migration to GitLab.",[911],"Chandler Gibbons","2023-01-05",{"slug":914,"externalUrl":-1},"vestiaire-collective-on-moving-to-a-devsecops-platform",{"content":916,"config":923},{"title":917,"heroImage":918,"category":908,"description":919,"authors":920,"date":922},"How we increased our release velocity with GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668437/Blog/Hero%20Images/faster-cycle-times.jpg","Learn Evolphin's challenges, reasons for choosing the DevSecOps platform, and our end state following the transition.",[921],"Rahul Bhargava, CTO, Evolphin","2022-12-05",{"slug":924,"externalUrl":-1},"how-we-increased-our-release-velocity-with-gitlab",{"content":926,"config":932},{"title":927,"heroImage":859,"category":687,"description":928,"authors":929,"date":931},"How we diagnosed and resolved Redis latency spikes with BPF and other tools","How we uncovered a three-phase cycle involving two distinct saturation points and a simple fix to break that cycle.",[930],"Matt Smiley","2022-11-28",{"slug":933,"externalUrl":-1},"how-we-diagnosed-and-resolved-redis-latency-spikes",{"content":935,"config":943},{"title":936,"heroImage":937,"category":938,"description":939,"authors":940,"date":942},"How is AI/ML changing DevOps?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667540/Blog/Hero%20Images/devops-team-structure.jpg","insights","Can DevOps help AI/ML find maturity? Here are questions to consider.",[941],"Brendan O'Leary","2022-11-16",{"slug":944,"externalUrl":-1},"how-is-ai-ml-changing-devops",{"content":946,"config":954},{"title":947,"heroImage":948,"category":949,"description":950,"authors":951,"date":953},"How we boosted WebAuthn adoption from 20 percent to 93 percent in two days","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682498/Blog/Hero%20Images/webauthn.jpg","security","With phishing campaigns on the rise across the industry, we accelerated rollout of a program to further enhance our security hygiene program. This is how we did it.",[952],"Eric Rubin","2022-11-09",{"slug":955,"externalUrl":-1},"how-we-boosted-webauthn-adoption-from-20-percent-to-93-percent-in-2-days",{"content":957,"config":964},{"title":958,"heroImage":959,"category":949,"description":960,"authors":961,"date":963},"The ultimate guide to SBOMs","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664571/Blog/Hero%20Images/blog-image-template-1800x945__8_.png","Learn what a software bill of materials is and why it has become an integral part of modern software development.",[962],"Sandra Gittlen","2022-10-25",{"slug":965,"externalUrl":-1},"the-ultimate-guide-to-sboms",{"content":967,"config":974},{"title":968,"heroImage":969,"category":538,"description":970,"authors":971,"date":973},"Why the market is moving to a platform approach to DevSecOps","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667886/Blog/Hero%20Images/cobolshortage.jpg","A single DevOps platform improves ROI, the developer experience, and customer retention and satisfaction.",[972],"GitLab","2022-10-24",{"slug":975,"externalUrl":-1},"why-the-market-is-moving-to-a-platform-approach-to-devsecops",{"content":977,"config":984},{"title":978,"heroImage":979,"category":538,"description":980,"authors":981,"date":983},"Two DevOps platform superpowers: Visibility and actionability","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668622/Blog/Hero%20Images/group-rowing-collaboration.jpg","Migrating to a DevOps platform helps organizations better understand and improve their development lifecycle.",[982],"Sharon Gaudin","2022-09-26",{"slug":985,"externalUrl":-1},"less-headaches",{"content":987,"config":993},{"title":988,"heroImage":989,"category":675,"description":990,"authors":991,"date":992},"GitLab introduces new machine types for GitLab SaaS Linux Runners","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672836/Blog/Hero%20Images/multiple-machine-types-cover.png","GitLab SaaS now offers larger machine types for running CI jobs on Linux.",[834],"2022-09-22",{"slug":994,"externalUrl":-1},"new-machine-types-for-gitlab-saas-runners",{"content":996,"config":1003},{"title":997,"heroImage":998,"category":538,"description":999,"authors":1000,"date":1002},"The GitLab guide to modern software testing","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668307/Blog/Hero%20Images/test-automation-devops.jpg","If test is your DevOps team's Public Enemy No. 1, it's time to rethink your strategy. Here's what you need to know about modern software testing.",[1001],"Valerie Silverthorne","2022-08-18",{"slug":1004,"externalUrl":-1},"the-gitlab-guide-to-modern-software-testing",{"content":1006,"config":1013},{"title":1007,"heroImage":1008,"category":949,"description":1009,"authors":1010,"date":1012},"The importance of compliance in DevOps","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670037/Blog/Hero%20Images/auto-deploy-google-cloud.jpg","A basic understanding of what compliance means and how it impacts DevOps.",[1011],"Lauren Minning","2022-08-15",{"slug":1014,"externalUrl":-1},"the-importance-of-compliance-in-devops",{"content":1016,"config":1023},{"title":1017,"heroImage":1018,"category":687,"description":1019,"authors":1020,"date":1022},"We are upgrading the operating system on our Postgres database clusters","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669673/Blog/Hero%20Images/engineering.png","Learn when these upgrades will happen and how they will help boost performance and reliability on GitLab.com.",[1021],"David Smith","2022-08-12",{"slug":1024,"externalUrl":-1},"upgrading-database-os",{"content":1026,"config":1033},{"title":1027,"heroImage":1028,"category":687,"description":1029,"authors":1030,"date":1032},"5 Tips for managing monorepos in GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667591/Blog/Hero%20Images/code-review-blog.jpg","Learn the benefits of operating a monolothic repository and how to get the most out of this structure.",[1031],"Sarah Waldner","2022-07-12",{"slug":1034,"externalUrl":-1},"tips-for-managing-monorepos-in-gitlab",{"content":1036,"config":1044},{"title":1037,"heroImage":1038,"category":687,"description":1039,"authors":1040,"date":1043},"An SA story about hyperscaling GitLab Runner workloads using Kubernetes","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669897/Blog/Hero%20Images/kaleidico-26MJGnCM0Wc-unsplash.jpg","It is important to have the complete picture of scaled effects in view when designing automation.",[1041,1042],"Darwin Sanoy","Brian Wald","2022-06-29",{"slug":1045,"externalUrl":-1},"a-story-of-runner-scaling",{"content":1047,"config":1053},{"title":1048,"heroImage":1049,"category":538,"description":1050,"authors":1051,"date":1052},"Battling toolchain technical debt","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667845/Blog/Hero%20Images/gl15.jpg","DevOps teams can hinder the software development lifecycles and application performance if they let their toolchains become unruly. Read how GitLab can help reduce that technical debt.",[962],"2022-06-21",{"slug":1054,"externalUrl":-1},"battling-toolchain-technical-debt",{"content":1056,"config":1061},{"title":1057,"heroImage":1049,"category":538,"description":1058,"authors":1059,"date":1060},"Break the black box of software delivery with GitLab Value Stream Management and DORA Metrics","Optimize DevOps with the new DORA metrics in GitLab Value Stream Management.",[765],"2022-06-20",{"slug":1062,"externalUrl":-1},"gitlab-value-stream-management-and-dora",{"content":1064,"config":1071},{"title":1065,"heroImage":1066,"category":687,"description":1067,"authors":1068,"date":1070},"Observability vs. monitoring in DevOps","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665484/Blog/Hero%20Images/monitoring-update-feature-image.jpg","Want to gain true and actionable visibility across your software development lifecycle? Observability is the answer.",[1069],"Mike Vanbuskirk","2022-06-14",{"slug":1072,"externalUrl":-1},"observability-vs-monitoring-in-devops",{"content":1074,"config":1080},{"title":1075,"heroImage":1076,"category":687,"description":1077,"authors":1078,"date":1079},"Installing GitLab on Raspberry Pi 64-bit OS","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679433/Blog/Hero%20Images/anto-meneghini-gqytxsrctvw-unsplash.jpg","A Raspberry Pi enthusiast tries to run GitLab on the new 64-bit OS...and here's what happened.",[941],"2022-03-14",{"slug":1081,"externalUrl":-1},"installing-gitlab-on-raspberry-pi-64-bit-os",{"content":1083,"config":1090},{"title":1084,"heroImage":1085,"category":687,"description":1086,"authors":1087,"date":1089},"How we share SLIs across engineering departments","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663397/Blog/Hero%20Images/logoforblogpost.jpg","The Scalability team engages with the Development department for collaborating on SLIs. The first post in this series explains how we made available information accessible for development groups.",[1088],"Bob Van Landuyt","2022-03-10",{"slug":1091,"externalUrl":-1},"sharing-slis-across-departments",{"content":1093,"config":1100},{"title":1094,"heroImage":1095,"category":687,"description":1096,"authors":1097,"date":1099},"Git fetch performance improvements in 2021, Part 2 ","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663383/Blog/Hero%20Images/tanuki-bg-full.png","Looking back at the server-side performance improvements we made in 2021 for Git fetch.",[1098],"Jacob Vosmaer","2022-02-07",{"slug":1101,"externalUrl":-1},"git-fetch-performance-2021-part-2",{"content":1103,"config":1109},{"title":1104,"heroImage":1105,"category":538,"description":1106,"authors":1107,"date":1108},"The role of Value Stream Analytics in GitLab's DevOps Platform","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668041/Blog/Hero%20Images/Understand-Highly-Technical-Spaces.jpg","Better DevOps teams start with value stream management. Here's how to get the most out of GitLab's Value Stream Analytics.",[890],"2022-01-24",{"slug":1110,"externalUrl":-1},"gitlab-value-stream-analytics",{"content":1112,"config":1117},{"title":1113,"heroImage":1085,"category":687,"description":1114,"authors":1115,"date":1116},"How we made Git fetch performance improvements in 2021, part 1","Our Scalability team tackled a server CPU utilization issue. Here's the first part of a detailed look at performance improvements we made for Git fetch.",[1098],"2022-01-20",{"slug":1118,"externalUrl":-1},"git-fetch-performance",{"content":1120,"config":1125},{"title":1121,"heroImage":1085,"category":538,"description":1122,"authors":1123,"date":1124},"Downtime happens, but GitLab Incident Management can help","GitLab's DevOps Platform doesn't just make it easy to release safe software faster, it also streamlines the process for problem solving. Here's a deep dive into GitLab Incident Management.",[890],"2021-11-30",{"slug":1126,"externalUrl":-1},"gitlab-incident-management",{"content":1128,"config":1136},{"title":1129,"heroImage":1130,"category":687,"description":1131,"authors":1132,"date":1135},"Why we spent the last month eliminating PostgreSQL subtransactions","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669470/Blog/Hero%20Images/nessie.jpg","How a mysterious stall in database queries uncovered a performance limitation with PostgreSQL.",[1133,1134],"Grzegorz Bizon","Stan Hu","2021-09-29",{"slug":1137,"externalUrl":-1},"why-we-spent-the-last-month-eliminating-postgresql-subtransactions",{"content":1139,"config":1145},{"title":1140,"heroImage":1141,"category":687,"description":1142,"authors":1143,"date":1144},"The next step in performance testing? The GitLab Environment Toolkit","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682030/Blog/Hero%20Images/gitlab_environment_toolkit_scale.jpg","Learn how we're building a new toolkit to help with performance testing and deploying GitLab at scale.",[711],"2021-06-15",{"slug":1146,"externalUrl":-1},"why-we-are-building-the-gitlab-environment-toolkit-to-help-deploy-gitlab-at-scale",{"content":1148,"config":1154},{"title":1149,"heroImage":1018,"category":687,"description":1150,"authors":1151,"date":1153},"Ruby 2.7: Understand and debug problems with heap compaction","An overview of Ruby 2.7 heap compaction and the risks it adds to production Rails applications.",[1152],"Matthias Käppler","2021-04-28",{"slug":1155,"externalUrl":-1},"puma-nakayoshi-fork-and-compaction",{"content":1157,"config":1164},{"title":1158,"heroImage":1159,"category":687,"description":1160,"authors":1161,"date":1163},"How we used parallel CI/CD jobs to increase our productivity","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666717/Blog/Hero%20Images/cover-image.jpg","GitLab uses parallel jobs to help long-running jobs run faster.",[1162],"Miguel Rincon","2021-01-20",{"slug":1165,"externalUrl":-1},"using-run-parallel-jobs",{"content":1167,"config":1174},{"title":1168,"heroImage":1169,"category":687,"description":1170,"authors":1171,"date":1173},"Lessons in iteration from a new team in infrastructure","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681724/Blog/Hero%20Images/skateboard-iteration.jpg","A new, small team at GitLab discovered that minimum viable change applies to scaling problems too.",[1172],"Sean McGivern","2020-11-09",{"slug":1175,"externalUrl":-1},"lessons-in-iteration-from-new-infrastructure-team",{"content":1177,"config":1184},{"title":1178,"heroImage":1179,"category":1180,"description":1181,"authors":1182,"date":1183},"Scaling down: How we shrank image transfers by 93%","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664102/Blog/Hero%20Images/gitlab-values-cover.png","unfiltered","Our approach to delivering an image scaling solution to speed up GitLab site\nrendering",[1152],"2020-11-02",{"slug":1185,"externalUrl":-1},"scaling-down-how-we-prototyped-an-image-scaler-at-gitlab",{"content":1187,"config":1194},{"title":1188,"heroImage":1189,"category":687,"description":1190,"authors":1191,"date":1193},"How we migrated application servers from Unicorn to Puma","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681413/Blog/Hero%20Images/appserverpuma.jpg","It's been a long journey but with the release of GitLab 13.0 Puma is our default application server. Here's what we did and learned along the way.",[1192],"Craig Gomes","2020-07-08",{"slug":1195,"externalUrl":-1},"migrating-to-puma-on-gitlab",{"content":1197,"config":1204},{"title":1198,"heroImage":1199,"category":687,"description":1200,"authors":1201,"date":1203},"How we scaled async workload processing at GitLab.com using Sidekiq","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667068/Blog/Hero%20Images/sidekiqmountain.jpg","Sidekiq was a great tool for async processing until it couldn't keep up. Here's how we made it scale.",[1202],"Rachel Nienaber","2020-06-24",{"slug":1205,"externalUrl":-1},"scaling-our-use-of-sidekiq",{"content":1207,"config":1214},{"title":1208,"heroImage":1209,"category":803,"description":1210,"authors":1211,"date":1213},"Artifact and job meta data expiration settings are changing for GitLab.com","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666262/Blog/Hero%20Images/default-blog-image.png","Default expiration dates for job meta data and artifacts will change on June 22, 2020. Find out how this benefits all users of GitLab.com",[1212],"Parker Ennis","2020-06-18",{"slug":1215,"externalUrl":-1},"job-artifact-meta-data-expiration-change",{"content":1217,"config":1223},{"title":1218,"heroImage":1219,"category":687,"description":1220,"authors":1221,"date":1222},"How autoscaling GitLab CI works on AWS Fargate","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681285/Blog/Hero%20Images/runner-autoscale-fargate-blog-cover.jpg","Run your CI jobs as AWS Fargate tasks with GitLab Runner and the Fargate Driver",[834],"2020-05-11",{"slug":1224,"externalUrl":-1},"introducing-autoscaling-gitlab-runners-on-aws-fargate",{"content":1226,"config":1233},{"title":1227,"heroImage":1228,"category":752,"description":1229,"authors":1230,"date":1232},"How Git Partial Clone lets you fetch only the large file you need","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681131/Blog/Hero%20Images/partial-clone-for-massive-repositories.jpg","Work faster with this experimental Partial Clone feature for huge Git repositories, saving you time, bandwidth, and storage, one large file at a time.",[1231],"James Ramsay","2020-03-13",{"slug":1234,"externalUrl":-1},"partial-clone-for-massive-repositories",{"content":1236,"config":1242},{"title":1237,"heroImage":1238,"category":687,"description":1239,"authors":1240,"date":1241},"How our QA team leverages GitLab’s performance testing tool (and you can too)","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681087/Blog/Hero%20Images/performance-server-front.jpg","We built our open source GitLab Performance tool to evaluate pain points and implement solutions on every GitLab environment.",[711],"2020-02-18",{"slug":1243,"externalUrl":-1},"how-were-building-up-performance-testing-of-gitlab",{"content":1245,"config":1251},{"title":1246,"heroImage":1247,"category":687,"description":1248,"authors":1249,"date":1250},"Why GitLab.com is changing its CDN provider to Cloudflare March 28","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665811/Blog/Hero%20Images/daytime-clouds.jpg","Get the scoop on our plan to change GitLab.com to Cloudflare.",[1021],"2020-01-16",{"slug":1252,"externalUrl":-1},"gitlab-changes-to-cloudflare",{"content":1254,"config":1261},{"title":1255,"heroImage":1256,"category":687,"description":1257,"authors":1258,"date":1260},"How adSoul transitioned to GitLab CI from Jenkins","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678442/Blog/Hero%20Images/londoncommit.png","adSoul, a marketing automation company, outlines a successful three-phase migration plan for moving to GitLab CI from Jenkins.",[1259],"Brein Matturro","2019-11-05",{"slug":1262,"externalUrl":-1},"adsoul-devops-transition-to-gitlab-ci",{"content":1264,"config":1270},{"title":1265,"heroImage":1266,"category":752,"description":1267,"authors":1268,"date":1269},"Optimize GitOps workflow with version control from GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673081/Blog/Hero%20Images/gitops-image-unsplash.jpg","A GitOps workflow improves development, operations and business processes and GitLab’s CI plays a vital role.",[1259],"2019-10-28",{"slug":1271,"externalUrl":-1},"optimize-gitops-workflow",{"content":1273,"config":1279},{"title":1274,"heroImage":1275,"category":752,"description":1276,"authors":1277,"date":1278},"Redbox delivers On Demand with GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673064/Blog/Hero%20Images/redbox-blog-jannes-glas-unsplash.jpg","Redbox's Joel Vasallo and Nicholas Konieczko explain how they ‘deliver software like a fox’ with GitLab.",[1259],"2019-10-01",{"slug":1280,"externalUrl":-1},"redbox-on-demand-delivers-with-gitlab",{"content":1282,"config":1289},{"title":1283,"heroImage":1284,"category":687,"description":1285,"authors":1286,"date":1288},"Why we created a Memory team at GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678549/Blog/Hero%20Images/memory_team_arie-wubben.jpg","GitLab has a memory problem, so we created a specialized team to fix it.",[1287],"Sara Kassabian","2019-09-13",{"slug":1290,"externalUrl":-1},"why-we-created-the-gitlab-memory-team",{"content":1292,"config":1297},{"title":1293,"heroImage":1066,"category":272,"description":1294,"authors":1295,"date":1296},"How we plan to build more observability tools on GitLab monitoring","Get the scoop on our plan to close the DevOps loop.",[1287],"2019-08-29",{"slug":1298,"externalUrl":-1},"monitoring-team-update",{"content":1300,"config":1306},{"title":1301,"heroImage":859,"category":687,"description":1302,"authors":1303,"date":1305},"6 Lessons we learned when debugging a scaling problem on GitLab.com","Get a closer look at how we investigated errors originating from scheduled jobs, and how we stumbled upon \"the tyranny of the clock.\"",[1304],"Craig Miskell","2019-08-27",{"slug":1307,"externalUrl":-1},"tyranny-of-the-clock",{"content":1309,"config":1315},{"title":1310,"heroImage":1311,"category":938,"description":1312,"authors":1313,"date":1314},"3 Teams left Jenkins: Here’s why","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671932/Blog/Hero%20Images/jenkins-to-gitlab-sailboat.jpg","How three different teams – Alteryx, ANWB, and EAB – shifted away from Jenkins for smoother sailing with GitLab.",[1259],"2019-07-23",{"slug":1316,"externalUrl":-1},"three-teams-left-jenkins-heres-why",{"content":1318,"config":1325},{"title":1319,"heroImage":1320,"category":687,"description":1321,"authors":1322,"date":1324},"What we're doing to fix Gitaly NFS performance regressions","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670065/Blog/Hero%20Images/git-performance-nfs.jpg","How we're improving our Git IO patterns to fix performance regressions when running Gitaly on NFS.",[1231,1323],"Zeger-Jan van de Weg","2019-07-08",{"slug":1326,"externalUrl":-1},"git-performance-on-nfs",{"content":1328,"config":1335},{"title":1329,"heroImage":1330,"category":272,"description":1331,"authors":1332,"date":1334},"Why we use Ruby on Rails to build GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668296/Blog/Hero%20Images/gitlab-ruby.jpg","Here's our CEO on GitLab’s inception using Rails, and how challenges are being handled along the way.",[1333],"Aricka Flowers","2018-10-29",{"slug":1336,"externalUrl":-1},"why-we-use-rails-to-build-gitlab",{"content":1338,"config":1345},{"title":1339,"heroImage":1340,"category":687,"description":1341,"authors":1342,"date":1344},"What's up with GitLab.com? Check out the latest data on its stability","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671280/Blog/Hero%20Images/gitlab-gke-integration-cover.png","Let's take a look at the data on the stability of GitLab.com from before and after our recent migration from Azure to GCP, and dive into why things are looking up.",[1343],"Andrew Newdigate","2018-10-11",{"slug":1346,"externalUrl":-1},"gitlab-com-stability-post-gcp-migration",{"content":1348,"config":1355},{"title":1349,"heroImage":1350,"category":687,"description":1351,"authors":1352,"date":1354},"Why Prometheus is for everyone","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678778/Blog/Hero%20Images/monitoring-cover.png","You think you don't need Prometheus – I'm here to tell you why you're wrong. Learn why GitLab uses Prometheus, and why your organization should be using it too!",[1353],"Lee Matos","2018-09-27",{"slug":1356,"externalUrl":-1},"why-all-organizations-need-prometheus",{"content":1358,"config":1364},{"title":1359,"heroImage":1360,"category":687,"description":1361,"authors":1362,"date":1363},"The road to Gitaly v1.0 (aka, why GitLab doesn't require NFS for storing Git data anymore)","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670092/Blog/Hero%20Images/road-to-gitaly.jpg","How we went from vertical to horizontal scaling without depending on NFS by creating our own Git RPC service.",[1323],"2018-09-12",{"slug":1365,"externalUrl":-1},"the-road-to-gitaly-1-0",{"content":1367,"config":1373},{"title":1368,"heroImage":1369,"category":687,"description":1370,"authors":1371,"date":1372},"How a fix in Go 1.9 sped up our Gitaly service by 30x","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666775/Blog/Hero%20Images/cover.jpg","After noticing a worrying pattern in Gitaly's performance, we uncovered an issue with fork locking affecting virtual memory size. Here's how we figured out the problem and how to fix it.",[1343],"2018-01-23",{"slug":1374,"externalUrl":-1},"how-a-fix-in-go-19-sped-up-our-gitaly-service-by-30x",1772652080334]