{"id":8332,"date":"2025-07-07T21:15:45","date_gmt":"2025-07-07T19:15:45","guid":{"rendered":"https:\/\/www.almtoolbox.com\/blog\/?p=8332"},"modified":"2025-07-07T21:15:47","modified_gmt":"2025-07-07T19:15:47","slug":"gitlab-architecture-components","status":"publish","type":"post","link":"https:\/\/www.almtoolbox.com\/blog\/gitlab-architecture-components\/","title":{"rendered":"What Components are Running in GitLab Behind the Scenes?"},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"512\" height=\"197\" src=\"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2022\/06\/GitLab-new-logo.png\" alt=\"gitlab logo new\" class=\"wp-image-6276\" srcset=\"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/2022\/06\/GitLab-new-logo.png 512w, https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/2022\/06\/GitLab-new-logo-300x115.png 300w, https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/2022\/06\/GitLab-new-logo-150x58.png 150w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><\/figure>\n<\/div>\n\n\n<p>&#8220;What are the components that run in GitLab behind the scenes, and what is the architecture of GitLab?&#8221; These are questions we are often asked, both by customers who have been running GitLab for a while, and by customers who are considering using GitLab Self-hosted or GitLab SaaS. And the questions are really important, both in terms of understanding the infrastructure and in terms of information security.<\/p>\n\n\n\n<p>Understanding GitLab&#8217;s infrastructure and architecture helps to understand the implications for future challenges and problems (such as performance issues, configuration and optimization of the environment, scaling up the environment, etc.), and security aspects are also important if vulnerabilities are discovered in the components that are part of GitLab&#8217;s infrastructure and supply chain.<\/p>\n\n\n\n<p>The main components in GitLab are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>PostgreSQL<\/li>\n\n\n\n<li>Redis<\/li>\n\n\n\n<li>Puma<\/li>\n\n\n\n<li>NGINX<\/li>\n\n\n\n<li>Sidekiq<\/li>\n\n\n\n<li>Gitaly<\/li>\n\n\n\n<li>Zoekt<\/li>\n\n\n\n<li>Prometheus<\/li>\n\n\n\n<li>Consul (optional, for HA \/ service discovery)<\/li>\n\n\n\n<li>Grafana (optional)<\/li>\n<\/ul>\n\n\n\n<p>In addition, it is worth remembering that GitLab can be deployed in several ways, so Docker is also a central component. And sometimes, Kubernetes if you have chosen to base your setup on it.<\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#dbf2fa\">We have been the official representatives of GitLab since 2016, and to date have helped hundreds of customers solve complex problems in GitLab and the infrastructure on which it runs, including the following additional tools: Postgres, Redis, NginX, Prometheus, Grafana, Docker, Kubernetes, OpenShift, Terraform, Elastic, Rancher, Sidekiq, GitLab and more.<br>For more details, contact us: <a href=\"mailto:gitlab@almtoolbox.com\">gitlab@almtoolbox.com<\/a> or call us: <br>866-503-1471 (USA \/ Canada) or +31 85 064 4633 (International)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Understanding GitLab&#8217;s infrastructure and architecture helps to understand the implications for future challenges and problems<\/p>\n","protected":false},"author":10,"featured_media":6409,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[166,172],"tags":[582,580,581,583,103,584,547,585],"class_list":["post-8332","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gitlab","category-gitlab-ci","tag-architecture","tag-backend","tag-database","tag-gitaly","tag-infrastructures","tag-postgres","tag-redis","tag-scaling"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>What Components are Running in GitLab Behind the Scenes? - ALMtoolbox News<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.almtoolbox.com\/blog\/gitlab-architecture-components\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What Components are Running in GitLab Behind the Scenes? - ALMtoolbox News\" \/>\n<meta property=\"og:description\" content=\"Understanding GitLab&#039;s infrastructure and architecture helps to understand the implications for future challenges and problems\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.almtoolbox.com\/blog\/gitlab-architecture-components\/\" \/>\n<meta property=\"og:site_name\" content=\"ALMtoolbox News\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/almtoolbox.israel\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-07-07T19:15:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-07T19:15:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2022\/08\/gitlab-logo-100.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"990\" \/>\n\t<meta property=\"og:image:height\" content=\"380\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Tamir Gefen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@Dikla\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Tamir Gefen\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/gitlab-architecture-components\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/gitlab-architecture-components\/\"},\"author\":{\"name\":\"Tamir Gefen\",\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/#\/schema\/person\/409e35aa3486f92208065230bb6ebb63\"},\"headline\":\"What Components are Running in GitLab Behind the Scenes?\",\"datePublished\":\"2025-07-07T19:15:45+00:00\",\"dateModified\":\"2025-07-07T19:15:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/gitlab-architecture-components\/\"},\"wordCount\":252,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/gitlab-architecture-components\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2022\/08\/gitlab-logo-100.jpg\",\"keywords\":[\"architecture\",\"backend\",\"database\",\"gitaly\",\"Infrastructures\",\"postgres\",\"redis\",\"scaling\"],\"articleSection\":[\"GitLab\",\"GitLab CI\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.almtoolbox.com\/blog\/gitlab-architecture-components\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/gitlab-architecture-components\/\",\"url\":\"https:\/\/www.almtoolbox.com\/blog\/gitlab-architecture-components\/\",\"name\":\"What Components are Running in GitLab Behind the Scenes? - ALMtoolbox News\",\"isPartOf\":{\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/gitlab-architecture-components\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/gitlab-architecture-components\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2022\/08\/gitlab-logo-100.jpg\",\"datePublished\":\"2025-07-07T19:15:45+00:00\",\"dateModified\":\"2025-07-07T19:15:47+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/gitlab-architecture-components\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.almtoolbox.com\/blog\/gitlab-architecture-components\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/gitlab-architecture-components\/#primaryimage\",\"url\":\"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2022\/08\/gitlab-logo-100.jpg\",\"contentUrl\":\"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2022\/08\/gitlab-logo-100.jpg\",\"width\":990,\"height\":380,\"caption\":\"gitlab new logo\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/gitlab-architecture-components\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.almtoolbox.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What Components are Running in GitLab Behind the Scenes?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/#website\",\"url\":\"https:\/\/www.almtoolbox.com\/blog\/\",\"name\":\"ALMtoolbox News\",\"description\":\"All the news of ALMtoolbox\",\"publisher\":{\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.almtoolbox.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/#organization\",\"name\":\"ALMtoolbox\",\"url\":\"https:\/\/www.almtoolbox.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2015\/10\/logo.png\",\"contentUrl\":\"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2015\/10\/logo.png\",\"width\":410,\"height\":190,\"caption\":\"ALMtoolbox\"},\"image\":{\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/almtoolbox.israel\/\",\"https:\/\/www.linkedin.com\/company\/almtoolbox\/\",\"https:\/\/www.youtube.com\/user\/GoMidjets\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/#\/schema\/person\/409e35aa3486f92208065230bb6ebb63\",\"name\":\"Tamir Gefen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d3d4df00aa386b2805c42441dfebcedd46abf25846febb352f00c11524d994c4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d3d4df00aa386b2805c42441dfebcedd46abf25846febb352f00c11524d994c4?s=96&d=mm&r=g\",\"caption\":\"Tamir Gefen\"},\"sameAs\":[\"https:\/\/x.com\/Dikla\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"What Components are Running in GitLab Behind the Scenes? - ALMtoolbox News","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.almtoolbox.com\/blog\/gitlab-architecture-components\/","og_locale":"en_US","og_type":"article","og_title":"What Components are Running in GitLab Behind the Scenes? - ALMtoolbox News","og_description":"Understanding GitLab's infrastructure and architecture helps to understand the implications for future challenges and problems","og_url":"https:\/\/www.almtoolbox.com\/blog\/gitlab-architecture-components\/","og_site_name":"ALMtoolbox News","article_publisher":"https:\/\/www.facebook.com\/almtoolbox.israel\/","article_published_time":"2025-07-07T19:15:45+00:00","article_modified_time":"2025-07-07T19:15:47+00:00","og_image":[{"width":990,"height":380,"url":"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2022\/08\/gitlab-logo-100.jpg","type":"image\/jpeg"}],"author":"Tamir Gefen","twitter_card":"summary_large_image","twitter_creator":"@Dikla","twitter_misc":{"Written by":"Tamir Gefen","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.almtoolbox.com\/blog\/gitlab-architecture-components\/#article","isPartOf":{"@id":"https:\/\/www.almtoolbox.com\/blog\/gitlab-architecture-components\/"},"author":{"name":"Tamir Gefen","@id":"https:\/\/www.almtoolbox.com\/blog\/#\/schema\/person\/409e35aa3486f92208065230bb6ebb63"},"headline":"What Components are Running in GitLab Behind the Scenes?","datePublished":"2025-07-07T19:15:45+00:00","dateModified":"2025-07-07T19:15:47+00:00","mainEntityOfPage":{"@id":"https:\/\/www.almtoolbox.com\/blog\/gitlab-architecture-components\/"},"wordCount":252,"commentCount":0,"publisher":{"@id":"https:\/\/www.almtoolbox.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.almtoolbox.com\/blog\/gitlab-architecture-components\/#primaryimage"},"thumbnailUrl":"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2022\/08\/gitlab-logo-100.jpg","keywords":["architecture","backend","database","gitaly","Infrastructures","postgres","redis","scaling"],"articleSection":["GitLab","GitLab CI"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.almtoolbox.com\/blog\/gitlab-architecture-components\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.almtoolbox.com\/blog\/gitlab-architecture-components\/","url":"https:\/\/www.almtoolbox.com\/blog\/gitlab-architecture-components\/","name":"What Components are Running in GitLab Behind the Scenes? - ALMtoolbox News","isPartOf":{"@id":"https:\/\/www.almtoolbox.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.almtoolbox.com\/blog\/gitlab-architecture-components\/#primaryimage"},"image":{"@id":"https:\/\/www.almtoolbox.com\/blog\/gitlab-architecture-components\/#primaryimage"},"thumbnailUrl":"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2022\/08\/gitlab-logo-100.jpg","datePublished":"2025-07-07T19:15:45+00:00","dateModified":"2025-07-07T19:15:47+00:00","breadcrumb":{"@id":"https:\/\/www.almtoolbox.com\/blog\/gitlab-architecture-components\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.almtoolbox.com\/blog\/gitlab-architecture-components\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.almtoolbox.com\/blog\/gitlab-architecture-components\/#primaryimage","url":"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2022\/08\/gitlab-logo-100.jpg","contentUrl":"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2022\/08\/gitlab-logo-100.jpg","width":990,"height":380,"caption":"gitlab new logo"},{"@type":"BreadcrumbList","@id":"https:\/\/www.almtoolbox.com\/blog\/gitlab-architecture-components\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.almtoolbox.com\/blog\/"},{"@type":"ListItem","position":2,"name":"What Components are Running in GitLab Behind the Scenes?"}]},{"@type":"WebSite","@id":"https:\/\/www.almtoolbox.com\/blog\/#website","url":"https:\/\/www.almtoolbox.com\/blog\/","name":"ALMtoolbox News","description":"All the news of ALMtoolbox","publisher":{"@id":"https:\/\/www.almtoolbox.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.almtoolbox.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.almtoolbox.com\/blog\/#organization","name":"ALMtoolbox","url":"https:\/\/www.almtoolbox.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.almtoolbox.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2015\/10\/logo.png","contentUrl":"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2015\/10\/logo.png","width":410,"height":190,"caption":"ALMtoolbox"},"image":{"@id":"https:\/\/www.almtoolbox.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/almtoolbox.israel\/","https:\/\/www.linkedin.com\/company\/almtoolbox\/","https:\/\/www.youtube.com\/user\/GoMidjets"]},{"@type":"Person","@id":"https:\/\/www.almtoolbox.com\/blog\/#\/schema\/person\/409e35aa3486f92208065230bb6ebb63","name":"Tamir Gefen","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.almtoolbox.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d3d4df00aa386b2805c42441dfebcedd46abf25846febb352f00c11524d994c4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d3d4df00aa386b2805c42441dfebcedd46abf25846febb352f00c11524d994c4?s=96&d=mm&r=g","caption":"Tamir Gefen"},"sameAs":["https:\/\/x.com\/Dikla"]}]}},"_links":{"self":[{"href":"https:\/\/www.almtoolbox.com\/blog\/wp-json\/wp\/v2\/posts\/8332","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.almtoolbox.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.almtoolbox.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.almtoolbox.com\/blog\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.almtoolbox.com\/blog\/wp-json\/wp\/v2\/comments?post=8332"}],"version-history":[{"count":5,"href":"https:\/\/www.almtoolbox.com\/blog\/wp-json\/wp\/v2\/posts\/8332\/revisions"}],"predecessor-version":[{"id":8348,"href":"https:\/\/www.almtoolbox.com\/blog\/wp-json\/wp\/v2\/posts\/8332\/revisions\/8348"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.almtoolbox.com\/blog\/wp-json\/wp\/v2\/media\/6409"}],"wp:attachment":[{"href":"https:\/\/www.almtoolbox.com\/blog\/wp-json\/wp\/v2\/media?parent=8332"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.almtoolbox.com\/blog\/wp-json\/wp\/v2\/categories?post=8332"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.almtoolbox.com\/blog\/wp-json\/wp\/v2\/tags?post=8332"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}