The road to Gitaly v1.0 (aka, why GitLab doesn't require NFS for storing Git data anymore)
Blog post from GitLab
Initially, GitLab.com operated on a single server, which made deployment and maintenance straightforward, but as the platform grew, vertical scaling by adding more resources like RAM and CPU became insufficient. To address this, GitLab shifted to horizontal scaling, adding new servers and using NFS (Network File System) to mount repositories across application servers. However, NFS presented challenges such as reduced visibility and system-wide outages when a storage node failed. Seeking alternatives, GitLab considered Ceph but found it lacking in cloud performance, prompting a redesign of the application architecture with a new service called Gitaly to handle Git requests. Gitaly introduced a well-defined protocol using Protocol Buffers and gRPC, facilitating a transition away from NFS towards an HTTP boundary, with changes tested and monitored using Prometheus and the ELK stack to ensure stability. The migration allowed GitLab to maintain performance and stability across installations, gradually unmounting NFS with no impact on customers. While v1.0 of Git infrastructure was not officially tagged, the successful transition set the stage for future goals, including eliminating NFS dependency entirely and further enhancing Git data availability.
No tracked trend matches for this post yet.