测试与验证环境是工程师协作的关键平台,对于多成员团队而言,环境使用与权限管理常常成为工作流程中的痛点。例如,新功能的紧急发布和测试验证往往受限于管理员权限,而不恰当的发布时机可能导致严重的生产事故。
鉴于不同开发者对环境和业务的了解程度各异,确保合适的人员执行相应的任务变得尤为重要。因此,构建一个团队定制化的、基于环境权限的自动化协作流程显得尤为迫切。
# Zadig 协作模式
Zadig 协作模式可以很好的解决上述痛点:支持对不同的工作流和环境配置不同的使用权限,批量按需赋予给团队中不同的角色成员。
下面我们设定一个场景,来帮助大家了解 Zadig 协作模式,如何帮助团队实现权限管理、高效自动化协作的全流程。
# 案例场景实践
# Demo 项目搭建
以
microservice-demo
项目为例,参考教程: 如何使用 GitLab + Zadig 实现产品级持续交付 (opens new window)为项目配置额外的资源供使用
- 新增环境:
pre-release
- 新增工作流:
microservice-demo-workflow-pre-release
- 新增环境:
以上基础资源将满足从研发到交付上线的整个生命周期,以及在不同环节团队成员的协作诉求。
一个典型的研发过程:
- 开发工程师:在
dev
环境进行功能开发、自测 debug、bugfix 等。日常对dev
环境有极其频繁的变更诉求。自测完毕后,提交测试验收。 - 测试工程师:新的变更发布到
qa
环境中进行集成测试。日常对qa
环境的鲁棒性和正确性有一定的要求。 - 运维工程师:负责将质量保障通过的功能部署到
pre-release
环境(预发布环境),验证无误后再全量部署到生产,对pre-release
环境有极高的权限限制。
权限与协作需求分析
不同角色的工程师对于环境分别有不同的使用诉求和时机,而 dev
/ qa
/ pre-release
环境也分别有不同的使用目标。以下是不同角色、工作流、环境需求对照表:
角色 | 环境权限 | 工作流权限 |
---|---|---|
开发工程师 | dev:查看、配置、管理服务实例、服务调试qa:查看、管理服务实例pre-release:查看 | microservice-demo-workflow-dev :查看、执行 |
测试(开发)工程师 | dev:查看qa:查看、配置、管理服务实例、服务调试pre-release:查看 | microservice-demo-workflow-qa :查看、执行 |
运维工程师 | dev:查看、配置、管理服务实例、服务调试qa:查看、配置、管理服务实例、服务调试pre-release:查看、配置、管理服务实例、服务调试 | microservice-demo-workflow-pre-release :查看、执行、修改 |
# 如何配置协作模式
# 配置权限前置操作
配置协作模式
前需要先把项目成员添加到项目中。进入权限->添加成员
,并赋予 project-read-only
角色。
# 为不同角色配置协作模式
根据实际需要分配工作流资源和环境资源,分别为各个角色配置不同的协作模式。
开发工程师对环境和工作流的使用诉求见下表:
资源 | 说明 |
---|---|
|
|
|
|
|
|
为开发工程师配置协作模式的具体过程:
- 新建协作模式
dev
,选择开发组成员 - 配置
microservice-demo-workflow-dev
工作流资源的使用权限
配置环境资源:
dev
共享资源,可以查看、配置、管理服务实例、服务调试qa
共享资源,可以查看环境、管理服务实例,用于和测试(开发)工程师协同诊断问题
- 继续新建协作模式 ,选择开发组成员,配置独享工作流和独享环境,配置资源回收策略:30 天
根据项目需要为测试(开发)工程师、运维工程师配置相应的协作模式 qa
、sre
,此处不赘述。
# 工程师如何使用
当项目成员登录 Zadig 系统访问相应项目时,系统会为开发者分配项目资源。
# 开发工程师视图
- 开发工程师访问
microservice-demo
项目,自动进入资源分配页面,点击确认
- 场景一:日常 bugfix,改动影响面小,风险可控,可执行工作流
microservice-demo-workflow-dev
更新共享环境dev
- 场景二:新 feature 开发,暂时无法保证质量,没有信心部署到共享
dev
环境,可执行独享工作流更新独享环境进行自测 debug
- 场景三:当测试(开发)工程师反馈集成测试验收不符合预期,可以进入
qa
环境查看,进行联合诊断
# 测试工程师视图
- 测试工程师进入该项目,进入资源分配页面,点击
确认
- 当有业务集成测试需求时,执行工作流
microservice-demo-workflow-qa
更新qa
环境,做集成验收
# 运维工程师视图
- 运维工程师进入该项目,进入资源分配页面,点击
确认
- 需要发布预发环境时,执行工作流
microservice-demo-workflow-pre-release
更新环境pre-release
- 当开发工程师反馈
dev
环境有故障时,可对其进行诊断,协同排查;对qa
环境的故障诊断操作也同理
至此基于环境权限分配的自动化协作流程介绍完毕,每个团队需要根据自身现状设置合理的权限和资源分配策略,实现基于环境平面的高效协作。