B How GitLab scaled Git access with Go and what we gained from it
summary
Starting from a Rails monolith using NFS mounts that cause high I/O latency and opaque failures, GitLab builds Gitaly (Go) as a centralized “git database” and migrates repo access off NFS using gRPC + Protocol Buffers with feature‑flagged rollouts. The result is streaming RPCs, per‑request caching, and Prometheus metrics for visibility, enabling ~2,000–3,000 git ops/sec with far lower latency and no NFS single point, at the cost of added Go/protobuf tooling and contributor complexity.
AI-written summary · about
chapters (9)
- 0:00Intro
- 1:09Today we'll cover
- 1:55Introduction (GitLab)
- 4:47How applications access Git
- 7:45strace output
- 11:09Ideas & Decisions
- 12:51Development
- 17:33pBuffers definition
- 20:15Prometheus
related talks
38mHow We Scaled GitLab For a 30k-employee Company
46mFrom 1,000 to 5,000 Users: Scaling GitLab Without (Too Much) Pain
29mScaling Across the Enterprise
28mPushing Git repos over the speed limit.
26mRunning GitLab and GitLab CI in Kubernetes for the Enterprise
20mMigrating from BitBucket to
21mDriving Cultural Change to Improve Software Development and CI/CD
13mDevOps automation with Go
