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 Cell

    Same as above.

  • @lohrc started a discussion:

    - Top-level groups belong to organizations

    Same 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:

    ![Term Top-level Group](images/term-top-level-namespace.png)

    @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.