# 基本概念
# 基础名词
Erda 平台中存在三层组织层级,即组织层、项目层和应用层,以此实现组织租户隔离以及项目、应用、资源和用户管理。在项目层和应用层,则通过各自的成员角色管理,来区分不同成员对项目、应用的访问和操作权限。
# 组织
平台通过组织(Organization)来管理项目、团队成员和环境资源。目前所有资源对象和功能都关联定义在组织 ID 上,实现严格的租户隔离。一个租户建议设置为一个组织。假设有一个研发团队希望通过 Erda 进行研发运维管理,其基本操作流程如下:
- 团队 Leader 在平台上创建组织并邀请其他成员加入;
- 团队 Leader 在组织内创建项目并指定项目主管;
- 项目主管将组织成员加入到指定项目,并设置成员角色,进行项目协同工作;
- 项目主管创建应用并添加应用成员,进行具体的应用研发工作。
# 项目
项目(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 设计、部署中心、代码质量、制品管理 | 无应用设置权限 无开发环境管理权限 |
更多应用成员角色信息,请进入 我的应用 > 应用设置 > 应用成员 > 角色权限说明 查看。