Cells - Proof of Concepts
## Introduction In this epic we collect all Proofs of Concepts that we believe are required to evaluate different parts of the Cells work. ## Proof of Concept requirements We believe that in order to deliver Cells, we need to explore some parts of the proposed architecture to understand the complexity and challenges. We choose to approach this using PoCs and iterate rather than making a great plan early on. There is too much uncertainty. PoCs should be * Time-boxed * Focus on only one or two specific problems * Establish the complexity and challenges with a given approach. ## Problems to solve These are some of the large problems that we believe need to be solved in order to deliver Cells (in no particular order). Those are good candidates for PoCs because they will give us a feeling for the complexity and possible solutions. ### Authentication for all users Customers and users will reside on different Cells that are largely isolated from each other. We still need to allow customers to authenticate users in a (central) place. We will need to support many different authentication methods (SAML, password, tokens) etc. We will not be able to avoid having some sharding data between pods. The POC should provide a minimal solution to provide authenticating against two Cells. ### Routing for users to Cells With many Cells, requests need to be redirect to a specific Cell. This means we need some kind of service that is able to look up what Cell is associated with the request and route it to the right one. This also requires some shared data. We should keep this minimal and not identifiable to avoid GDPR issues if needed. ### Moving customers between cells Migrating customers is going to be a key challenge for Cells. This will include moving customers out of GitLab.com as it is right now. It will also include moving customers from a Cell into self-managed or dedicated, or between cells for other reasons e.g. size/activity. Migrations should not require downtime and should be transparent for customers. We may be able to utilize Geo as a starting point. ### Regions for Pods How would we realize a Cell in the US and one in the EU? ### Federated Search TBD
epic