Routing: Evaluate ability to offer multi-cloud Cells when served under single domain `gitlab.com`
Problem to solve
The Proposal: Stateless Router describes an architecture where stateless routing service is used.
The routing service can intelligently redirect requests to a correct Cell, based on a organization
information of a which Cell holds information. This enables from user perspective to hide information
about Cells under a common domain https://gitlab.com
.
Current design excepts that Cells are located in the same cloud provide, even if geographically split the closest router using anycast would serve the traffic and route to the correct cell with internal netowrk.
If we were to evaluate support for multi-cloud solution the routing service hosted in one of the provides with incur double egress costs, and increased latency. We should evaluate if this is feasible to build routing layer in a way that can be cloud agnostic and external to cloud provider.
Proposal
Since all traffic today is served on GitLab.com using CloudFlare, explore if we can build Routing layer as a deployable Cloudflare Worker.
Evaluation criteria
- We would deploy service of our choice as CloudFlare Worker
- We would use public-public, public with mutual TLS, or VPN-private facing specific cell endpoints to internal traffic redirection.
- Validate what languages can the service be built, can this be Go or Rust so if needed we would be able to host routing service locally.
- Estimate request or traffic cost in such model.
- Evaluate other useable CDN solutions that could provide cloud-agnostic Cells implementations.
Outcome
Capture possible solutions as part of Technical Proposal of Cells blueprint.