基本概念

    Erda 平台中存在三层组织层级,即组织层、项目层和应用层,以此实现组织租户隔离以及项目、应用、资源和用户管理。在项目层和应用层,则通过各自的成员角色管理,来区分不同成员对项目、应用的访问和操作权限。

    平台通过组织(Organization)来管理项目、团队成员和环境资源。目前所有资源对象和功能都关联定义在组织 ID 上,实现严格的租户隔离。一个租户建议设置为一个组织。假设有一个研发团队希望通过 Erda 进行研发运维管理,其基本操作流程如下:

    1. 团队 Leader 在平台上创建组织并邀请其他成员加入;
    2. 团队 Leader 在组织内创建项目并指定项目主管;
    3. 项目主管将组织成员加入到指定项目,并设置成员角色,进行项目协同工作;
    4. 项目主管创建应用并添加应用成员,进行具体的应用研发工作。

    项目

    项目(Project)是研发运维的主要对象,是多个应用的集合。它可以是一个产品,也可以是一个大型解决方案,主要实现项目协同工作的管理,包含需求、任务、缺陷事项、迭代、测试用例等。

    应用

    应用(Application)是研发运维的最小单元,包含代码仓库、流水线等一系列 DevOps 工具。 平台中所有的开发、部署都是基于应用实现的。

    集群(Cluster)是一个由多台物理机或虚拟机组成的有机整体,是一个由 Kubernetes + Docker 组建的集群,主要用于资源管理和服务部署运行。

    一个集群内所有节点(即主机)的网络是互通的,但集群之间的网络是相互隔离的。每一个集群由三种节点(主机)组成,分别是 Master 节点、LB 节点和 Worker 节点。

    • Master 节点负责整个集群的高可用管控,一般为 3 个节点。
    • LB 节点是集群的访问流量入口,一般为 2 个节点(需确保用户可以访问 LB 外网 IP 地址)。

    集群属于企业的一种资源,需要被添加到企业内才能够使用。企业可以拥有任意数量的集群,例如创建两个集群,一个用于应用的开发测试,另一个用于应用的生产部署。

    环境

    环境(Environment)是应用的一个逻辑概念,每个应用都有开发、测试、预发和生产四大环境。四个环境可以共享一个集群,也可以分别单独拥有一个集群。资源预算充足的情况下,建议每个环境独占一个集群(至少生产环境应该独占一个集群)。

    ::: tip 提示

    并非所有类型的应用都拥有环境。无需部署运行的应用(如库应用)是没有环境的。

    :::

    服务和 Runtime

    ::: tip 提示 此处的服务(Service)不等同于 Kubernetes 的 Service,两者之间没有任何关系。 :::

    Runtime 是应用部署后所有服务的集合,也被称为应用的运行实体。

    容器是 Linux Container,也是 Docker 容器。一个服务进程一般运行在一个容器内(该容器即服务的一个实例)。通常情况下,服务会运行多个实例以实现高可用。

    基本概念 - 图3

    平台层

    组织层

    更多组织成员角色信息,请进入 管理中心 > 组织设置 > 组织成员 > 角色权限说明 查看。

    更多项目成员角色信息,请进入 DevOps 平台 > 我的项目 > 项目设置 > 项目成员 > 角色权限说明 查看。

    应用层