Skip to content

[meta] Improve GitLab Geo

Achieving general availability (GA) for GitLab Geo is only the first of many steps in making GitLab Geo great.

Direction

HA secondary (read only) -> &16 (closed)

Allow secondaries to be highly available including multiple web workers. This is needed to support large teams using the read only secondary (https://gitlab.my.salesforce.com/00T6100001BNhbh) and in disaster recovery situations the secondary which is promoted is already highly available.

Disaster recovery #846 (closed)

Using GitLab Geo for replication, provide a clearly documented and straightforward process to manually failover and promote a secondary to primary.

planned failover https://gitlab.com/gitlab-org/gitlab-ee/issues/3952

If I'm moving my GitLab instance from one location to another, how do I use DR for a planned failover? This also covers the scenario where I want to fail back to an instance in my original location after a disaster situation has been resolved.

Active proxy for git operations #3912 (closed)

Asking users to manually update the push URL every time they clone a new repository is tedious. We should make it possible for people to do both fetch and push operations using the secondary by proxying the push operations to the primary.

This makes easier for people to use geo because they only needed to grab the closest secondary when cloning and they're good to go.

Users are also mostly static relative to secondary nodes, unless they regularly travel large distances, and will always want to use the same secondary. We should allow users to save their preferred secondary.

Active/active distributed git https://gitlab.com/gitlab-org/gitlab-ee/issues/1381

Ultimately, git operations should be possible on any node (active/active) rather than being proxied to the primary (active/passive). Distributed git requires a consensus system

A load balancer could then distribute traffic to any node based on proximity or load.

Links / references

Documentation blurb

Overview

What is it? Why should someone use this feature? What is the underlying (business) problem? How do you use this feature?

Use cases

Who is this for? Provide one or more use cases.

Feature checklist

Make sure these are completed before closing the issue, with a link to the relevant commit.

Edited by James Ramsay (ex-GitLab)