# 基本概念

    # 基础名词

    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 地址)。
    • Worker 节点用于部署应用服务,节点数按需规划即可。

    除 Kubernetes + Docker 之外,集群还需要安装平台提供的 Agent 程序,用于监控相关数据的采集。

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

    # 高级名词

    # 环境

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

    提示

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

    # 服务和 Runtime

    服务(Service)是一个单体的进程,例如一个 Java 进程或一个 PHP 进程。一个应用可能只有一个单体服务,也可能拥有多个服务。

    提示

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

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

    # 容器

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

    # 角色权限说明

    # 平台层

    角色 菜单 权限
    平台管理员 平台后台管理页面所有菜单 全部操作权限
    平台审计成员 审计日志 查看权限
    平台成员 无后台管理页面访问权限

    # 组织层

    角色 菜单 权限
    组织管理员 DevOps 平台
    微服务治理平台
    快数据平台
    多云管理平台
    边缘计算平台
    管理中心
    组织最高权限拥有者,拥有全部权限
    组织研发工程师 DevOps 平台
    微服务治理平台
    可进入 DevOps 平台和微服务治理平台,具体项目/应用中的权限由其角色而定
    数据开发工程师 DevOps 平台
    快数据平台
    可进入 DevOps 平台和快数据平台,具体项目/应用中的权限由其角色而定
    组织运维工程师 多云管理平台 拥有多云管理平台的全部权限
    边缘运维工程师 边缘计算平台 拥有边缘计算平台的全部权限
    数据管理员 DevOps 平台
    微服务治理平台
    快数据平台
    可进入 DevOps 平台、微服务治理平台和快数据平台,具体项目/应用中的权限由其角色而定
    报告人员 DevOps 平台 可进入 DevOps 平台,其在项目中仅为报告人员的角色

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

    # 项目层

    角色 菜单 权限
    项目所有者 所有菜单 项目最高权限拥有者
    研发主管 应用列表、项目协同、测试管理、项目大盘、扩展服务、资源汇总、工单、项目设置 全部操作权限
    项目经理 应用列表、项目协同、测试管理、项目大盘、扩展服务、资源汇总、工单、项目设置 无应用创建、删除、修改权限
    产品经理 应用列表、项目协同、测试管理、项目大盘、扩展服务、资源汇总、工单 无应用创建、删除、修改权限
    无项目成员管理权限
    研发工程师 应用列表、项目协同、测试管理、项目大盘、扩展服务、资源汇总、工单 无应用管理、成员管理权限
    无测试、预发和生产分支编辑权限
    无测试、预发和生产环境部署权限
    测试工程师 应用列表、项目协同、测试管理、项目大盘、扩展服务、资源汇总、工单 无应用管理、成员管理权限
    报告人员 工单 仅有工单提交和查看权限

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

    # 应用层

    角色 菜单 权限
    应用所有者 所有菜单 应用最高权限拥有者
    应用主管 代码仓库、流水线、API 设计、部署中心、代码质量、制品管理、应用设置 全部操作权限
    运维工程师 代码仓库、流水线、API 设计、部署中心、代码质量、制品管理 目前与研发工程师一致
    无应用设置权限
    无测试、预发、生产环境管理权限
    研发工程师 代码仓库、流水线、API 设计、部署中心、代码质量、制品管理 无应用设置权限
    无测试、预发、生产环境管理权限
    测试工程师 代码仓库、流水线、API 设计、部署中心、代码质量、制品管理 无应用设置权限
    无开发环境管理权限

    更多应用成员角色信息,请进入 我的应用 > 应用设置 > 应用成员 > 角色权限说明 查看。