GitLab Workhorse
GitLab no longer requires NFS: The road to Gitaly v1.0

GitLab no longer requires NFS: The road to Gitaly v1.0

9/12/2018 · Zeger-Jan van de Weg

What this post added

This post details the migration from NFS for Git storage to a new service called Gitaly. It describes the challenges of vertical scaling, the disadvantages of NFS (reduced visibility, single point of failure), and the exploration of alternatives like Ceph. The introduction of Gitaly, a Go service using Protocol Buffers and gRPC, is presented as the solution to decouple Git operations and enable horizontal scaling. The post highlights the use of feature flags for gradual rollout, Prometheus and ELK for monitoring, and the extraction of Rails Git code into a vendored library. It also discusses challenges like N+1 problems in the new architecture and the process of unmounting NFS in staging and production environments. The concept of v1.0 is framed as a state of Git infrastructure rather than a code release, with future goals including NFS removal for all customers and the migration of administrative tasks.

Read the original post ↗