您的位置:  首页 > 技术杂谈 > 正文

Zadig 跨团队之最佳使用姿势:搞定开发、测试、运维协作自动化

2022-08-26 11:00 https://my.oschina.net/koderover/blog/5569780 Zadig云原生交付 次阅读 条评论

测试和验证环境作为工程师的协同平面,承担着至关重要的作用。对于多人协同的团队来说,对环境的使用和权限控制是日常工作中一个避免不了的槽点:着急发布新功能做测试验证但是只有管理员才有权限操作;一个不合时宜的发布甚至会带来生产事故让企业遭受巨大损失。不同开发者对环境和业务的熟悉程度不一样,让正确的人做正确的事;设计一个适合自己团队、基于环境权限分配的自动化协作流程,就变成一件迫在眉睫的事情。

Zadig 协作模式

Zadig 协作模式可以很好的解决上述痛点:支持对不同的工作流和环境配置不同的使用权限,批量按需赋予给团队中不同的角色成员。

下面我们以一个场景设定,来帮助大家了解 Zadig 协作模式,如何帮助团队实现权限管理、高效自动化协作的全流程。

案例场景实践

该案例场景实战讲解 Demo 项目的搭建、管理员如何配置、以及不同工程师视角的使用过程。

Demo 项目搭建

  • microservice-demo 项目为例,参考教程:如何使用 GitLab + Zadig 实现产品级持续交付
  • 为项目配置额外的资源供使用
    • 新增环境:pre-release
    • 新增工作流:microservice-demo-workflow-pre-release 以上基础资源将满足从研发到交付上线的整个生命周期,以及在不同的环节团队成员的合作诉求。

一个典型的研发过程:

  1. 开发工程师:在 dev 环境进行功能开发、自测 debug、bugfix 等。日常对 dev 环境有极其频繁的变更诉求。自测完毕后,提交测试验收。
  2. 测试开发工程师:新的变更发布到 qa 环境中进行集成测试。日常对 qa 环境的鲁棒性和正确性有一定的要求。
  3. 运维工程师:负责将质量保障通过的功能灰度到 pre-release 环境(预发布环境),灰度验证无误后再全量部署到生产,对 pre-release 环境有极高的权限限制。

权限与协作需求分析

不同角色的工程师对于环境分别有不同的使用诉求和时机,而 dev / qa / pre-release 环境也分别有不同的使用目标。以下是不同角色、工作流、环境需求对照表:

如何配置协作模式

针对以上场景,描述管理员如何一步步配置协作模式

配置权限前置操作

配置协作模式前需要先把项目成员添加到项目中。

进入权限->添加成员,并赋予 project-read-only 角色。

点击项目配置中的协作模式,进入协作模式配置界面。

为不同角色配置协作模式

分别为各个角色配置不同的协作模式,根据实际需要分配工作流资源和环境资源

开发工程师对环境和工作流的使用诉求见下表:

为开发工程师配置协作模式的具体过程:

  1. 新建协作模式 dev,选择开发组成员
  2. 配置 microservice-demo-workflow-dev 工作流资源的使用权限
  3. 配置环境资源:
    • dev 共享资源,可以查看、配置、管理服务实例、服务调试
    • qa 共享资源,可以查看环境、管理服务实例,用于和测试(开发)工程师协同诊断问题
  4. 继续新建协作模式 dev-independent,选择开发组成员,配置独享工作流和独享环境,配置资源回收策略:30 天

根据项目需要为测试(开发)工程师、运维工程师配置相应的协作模式 qasre,此处不赘述。

工程师如何使用

当项目成员登录 Zadig 系统访问相应项目时,系统会为开发者分配项目资源。

开发工程师视图

  • 工程师 flyer 访问 microservice-demo 项目,自动进入资源分配页面,点击确认
  • 场景一:日常 bugfix,改动影响面小,风险可控,可执行工作流 microservice-demo-workflow-dev 更新共享环境 dev
  • 场景二:新 feature 开发,暂时无法保证质量,没有信心部署到共享 dev 环境,可执行独享工作流更新独享环境进行自测 debug
  • 场景三:当测试(开发)工程师反馈集成测试验收不符合预期,可以进入qa 环境查看,进行联合诊断

测试工程师视图

  • 测试工程师 jody 进入该项目,进入资源分配页面,点击确认
  • 当有业务集成测试需求时,执行工作流 microservice-demo-workflow-qa 更新 qa 环境,做集成验收

运维工程师视图

  • 运维工程师 leo 进入该项目,进入资源分配页面,点击确认
  • 需要灰度发布时,执行工作流 microservice-demo-workflow-pre-release 更新环境 pre-release
  • 当开发工程师反馈 dev 环境有故障时,可对其进行诊断,协同排查;对 qa 环境的故障诊断操作也同理 至此基于环境权限分配的自动化协作流程介绍完毕,每个团队需要根据自身现状设置合理的权限和资源分配策略,实现基于环境平面的高效协作。

Zadig,让工程师更专注创造。欢迎加入 开源吐槽群🔥

Zadig on Github
Zadig on Gitee

展开阅读全文
  • 0
    感动
  • 0
    路过
  • 0
    高兴
  • 0
    难过
  • 0
    搞笑
  • 0
    无聊
  • 0
    愤怒
  • 0
    同情
热度排行
友情链接