Skip App Definition and Development / Continuous Integration & Delivery

Technology Guide

GitLab

License: Mixed (MIT / Proprietary)

GitLab Logo

Field Guide

Complete Guide

GitLab is an end-to-end DevOps platform: Git hosting, merge requests, CI/CD, container registry, package registry, issue tracking, wiki, SAST/DAST/dependency scanning, infrastructure-as-code state, a Kubernetes agent, and an observability stack, all in one application. It’s available as SaaS (gitlab.com) or self-hosted (Community Edition under MIT, Enterprise Edition under a source-available license with paid tiers).

Architecturally, GitLab is a large Ruby on Rails monolith (gitlab-rails) plus a handful of Go services: gitaly (the Git RPC layer that owns the actual repositories), gitlab-shell (SSH), gitlab-workhorse (HTTP request smart-proxying and large file handling), sidekiq (background jobs), and the CI runner agents. Storage is Postgres plus Redis plus object storage; Gitaly Cluster provides replication and leader election for Git itself via Praefect. The CI system is defined in .gitlab-ci.yml, runs on GitLab Runner, and supports Docker, Kubernetes, shell, and custom executors.

Compared to a GitHub + third-party stack, GitLab’s pitch is “one tool, one auth model, one UI for everything DevOps” — which is genuinely useful for regulated environments that need self-hosting and audit, and painful when you want to swap a component for a best-of-breed alternative. The product has aggressively absorbed adjacent categories (security scanning, value stream analytics, and more recently AI via GitLab Duo), which is either a feature or a source of bloat depending on whom you ask.