Follow-up from "Create Cells sections as separate files"
The following discussions from !118029 (merged) should be addressed:
-
@lohrc started a discussion: A Cell is a set of infrastructure components that contains multiple top-level groups that belong to different organizations. The components include both datastores (PostgreSQL, Redis etc.) and stateless services (web etc.). The infrastructure components provided within a Cell are shared among organizations and their top-level groups but not shared with other Cells. This isolation of infrastructure components means that Cells are independent from each other.@ayufan Suggesting to use top-level groups instead of top-level namespaces, as we just corrected that in the Cells blueprint and I am also using top-level groups in the Organization blueprint.
-
@lohrc started a discussion: - Infrastructure components are shared by organizations and their top-level groups within a CellSame as above.
-
@lohrc started a discussion: - Top-level groups belong to organizationsSame as above.
-
@lohrc started a discussion: ## Top-Level group -
@lohrc started a discussion: Top-level group is the name given to the topmost group of all other groups. Groups and projects are nested underneath the top-level group.Same as above.
-
@lohrc started a discussion: - `gitlab-org` is a `top-level group`; the root for all groups and projects of an organization -
@lohrc started a discussion: The top-level group has served as the de facto Organization entity. With the creation of Organization, top-level groups will be [nested underneath Organizations](https://gitlab.com/gitlab-org/gitlab/-/issues/394796). -
@lohrc started a discussion: Over time there won't be a distinction between a top-level group and a group. All features that make top-level groups different from groups will move to Organization. -
@lohrc started a discussion: @ayufan We might need to change the image as well.
-
@lohrc started a discussion: ### Top-level group properties -
@lohrc started a discussion: - Top-level groups belonging to an organization are located on the same Cell -
@lohrc started a discussion: - Top-level groups can interact with other top-level groups that belong to the same organization -
@lohrc started a discussion: Users are available globally and not restricted to a single Cell. Users belong to a single organization, but can participate in many organizations through group and project membership with varying permissions. Inside organizations, users can create multiple top-level groups. User activity is not limited to a single organization but their contributions (for example TODOs) are only aggregated within an organization. This avoids the need for aggregating across cells. -
@lohrc started a discussion: - Users can create multiple top-level groups -
@lohrc started a discussion: - Users can be a member of multiple top-level groups -
@lohrc started a discussion: A major challenge for shared-infrastructure architectures is a lack of isolation between top-level groups. This can lead to noisy neighbor effects. An organization's behavior inside a top-level group can impact all other organizations. This is highly undesirable. Cells provide isolation at the Cell level. A group of organizations is fully isolated from other organizations located on a different Cell. This minimizes noisy neighbor effects while still benefiting from the cost-efficiency of shared infrastructure. -
@lohrc started a discussion: 1. How will existing `gitlab-org` contributors contribute to the namespace? -
@lohrc started a discussion: 1. How do we move existing top-level groups into the new model (effectively breaking their social features)? -
@lohrc started a discussion: We synced with Fulfillment ([recording](https://youtu.be/FkQF3uF7vTY)) to discuss how Cells would impact them. Fulfilment is supportive of an entity above top-level groups. Their perspective is outline in [!5639](https://gitlab.com/gitlab-org/customers-gitlab-com/-/merge_requests/5639/diffs). -
@lohrc started a discussion: - Fulfillment has a longstanding plan to move billing from the top-level group to a level above. This would mean that a license applies to an organization and all its top-level groups.