GitLab version 13.0, released just days ago, now allows for high availability and redundancy of the Git storage component.
This is important if GitLab is critical for your organization, and its downtime disables software development, CI/CD pipelines and delivery times.
We are talking about Gitaly — one of GitLab’s most important components.
Let’s talk about Gitaly
Gitaly is an open-source service, which enables RPC-based fast read/write to git repositories without a need in NFS (Network File System).
Previously, the GitLab HA model did not include redundancy of the git storage. The new Gitaly Clusters feature fills that void.
A Gitaly Cluster contains several Gitaly nodes, where every git repository is stored on every node in the cluster. If an outage occurs on one node, another takes over.
This improvement is another step toward a complete active-active cluster solution.
We have already experimented and seen running results on an early version of this feature and the results look satisfactory!
So what does the new feature give you?
- Higher availability of GitLab to end-users: if an outage occurs, they will not notice it. If one Gitaly node fails, the work will be redirected to the other component transparently to the end-users
- Fewer possible failure points
- Redundant git storage
Here is a possible GitLab layout with Gitaly Clusters:
In a preliminary review we conducted with some customers and users, we saw that they liked the new feature and considered it an important addition and a game changer!
Do you need GitLab high availability solution at your company?
We (at ALM-Toolbox company) are qualified and ready to design and implement such a solution for our clients.
We have already implemented some of these recently, which would include advanced and tailored solutions, such as:
- Building a GitLab HA solution in an active-active configuration
- GitLab GEO solution for application’s disaster recovery (DR)
- Designing and building a HA solution in a cloud (such as AWS, GCP, Azure, with RDS and more)
- Building an integrated DR solution with Kubernetes
- Building an integrated cloud/private server solution for employees working from home