从 「开发 5 分钟,上线 2 小时」 到 「开发 5 小时,上线 2 分钟」
如果无法正常显示,请先停止浏览器的去广告插件。
1. - 李 倩 K o d e R o ve r 创
卓越工程生产力峰会 ee.msup.com.cn
始人
2. 业务为王的时代,什么在变化?
卓越工程生产力峰会 ee.msup.com.cn
3. 软件交付:软件开发模式 Before
研发阶段
需求阶段
运行阶段
单体:需求设计 | 代码编写 | 构建 | 测试 | 部署 | 发布
想法
用户
角色: 产品/架构 开发 测试 运维 运维/开发 技术支持
事件 需求设计 拆任务、写代码 写测试用例 数据变更 部署/灰度上线 服务、工单管理
架构设计 代码集成 系统验证 代码变更 监控/告警 事件、缺陷管理
单元测试验证 自动化测试 配置变更 版本归档 代码扫描 性能测试 部署测试环境 交付追踪 自测、联调 安全测试 部署预发环境 数据度量
集成验证
卓越工程生产力峰会 ee.msup.com.cn
部署生产环境
4. 软件交付:开发 5 分钟,上线 2 小时
研发阶段
需求阶段
服务一:设计
服务二:设计
服务三:设计
想法
代码编写
代码编写
代码编写
构建
构建
构建
运行阶段
测试
测试
测试
角色: 产品/架构 开发 测试 运维
事件 需求设计 拆任务、写代码 写测试用例 数据变更
部署
部署
部署
发布
发布
发布
运维/开发
技术支持
服务、工单管理
架构设计
事件、缺陷管理
监控/告警
卓越工程生产力峰会 ee.msup.com.cn
用户
5. 软件交付的核心驱动力
软件交付 1.0 流程驱动
• 像 IBM 早期 IPD 流程工具集,国外像 CA,electric cloud;以流程串工具和人,大部分以平台形式存在。
软件交付 2.0 工具驱动
• 基于单点工具提升交付能力,比如过去几年交付领域 Artifacts 管理厂商 Jfrog、CI/CD 工具 Jenkins、
面向运维侧的 Tekton/Argo 等;以解决交付链条中某个环节的效率为主。
软件交付 3.0 业务驱动
• 把业务作为整体,进入了以
的 3.0 时代。主要利
用云原生的能力,赋能于开发者,软件交付才能真正地变快变稳,从而推动以数字形态为主的产品交付。
卓越工程生产力峰会 ee.msup.com.cn
6. 云原生核心交付思路
以前:面向代码的串行交付
服务一: 代码编写 | 构建 | 部署 | 测试
服务二: 代码编写 | 构建 | 部署 | 测试
服务三: 代码编写 | 构建 | 部署 | 测试
| 发布
| 发布
| 发布
特点:
重复流程自动化
边开发、边验证
服务全生命周期管理
每天多次提交提早验证
现在:面向多个服务编排的产品级自动化并行交付
服务一: 代码编写 ➡ 构建 ➡ 部署 ➡ 测试 ➡ 发布
服务二: 代码编写 ➡ 构建 ➡ 部署 ➡ 测试 ➡ 发布
服务三: 代码编写 ➡ 构建 ➡ 部署 ➡ 测试 ➡ 发布
卓越工程生产力峰会 ee.msup.com.cn
7. Zadig 业务架构
卓越工程生产力峰会 ee.msup.com.cn
8. 云原生软件交付:开发 5 小时,上线 2 分钟
研发阶段
需求阶段
运维阶段
服务一:设计 ➡ 代码编写 ➡ 构建 ➡ 测试 ➡ 部署 ➡ 发布
服务二:设计 ➡ 代码编写 ➡ 构建 ➡ 测试 ➡ 部署 ➡ 发布
服务三:设计 ➡ 代码编写 ➡ 构建 ➡ 测试 ➡ 部署 ➡ 发布
想法
用户
角色: 产品/架构 开发 测试 运维 运维/开发 技术支持
事件 需求设计 拆任务、写代码 写测试用例 数据变更 部署/灰度上线 服务、工单管理
架构设计 代码集成 系统验证 代码变更 监控/告警 事件、缺陷管理
单元测试验证 自动化测试 配置变更 版本归档 代码扫描 性能测试 部署测试环境 交付追踪 自测、联调 安全测试 部署预发环境 数据度量
集成验证
开发模式
:
代码验证方式 :
客户服务效率 :
卓越工程生产力峰会 ee.msup.com.cn
部署生产环境
瀑布式串行小马路单车道
大爆炸集中验证
数月一次响应客户
➡
➡
➡
多服务并行持续交付高速公路
边开发、边验证
每天多次、按需发布
9. 附件资料1 : 交付模式转变图
• 小分队->全栈组合
• 分工协作->目标对齐
• 持续交付支撑->步调一致
卓越工程生产力峰会 ee.msup.com.cn
10. Zadig 设计精髓
Zadig 用云原生的视角整体来看软件产品上线所需的过程 , 借助云
原生的能力 , 拉起环境 , 捋清产品构成中微服务启停顺序 、 依赖关系 ,
实现高效验证及上线 , 是更适用于基于微服务架构的 End-To-End
产品级交付方式 。
希望
的脏活累活 ,
比如服务部署 、 找环境 , 服务编排这些 Infra 的事情 。
卓越工程生产力峰会 ee.msup.com.cn
11. Zadig 功能特性
• 基于云原生设计 , 经过简单配置 , 系统自动生成工作流 , 实现多服务高并发执行构建部署
测试任务 , 以解决微服务架构下带来的多服务构建部署效率低下问题 。
• 一套服务配置 , 分钟级创建多套数据隔离的测试环境 。 为开发者进行日常调试 、 为测试人
员做集成测试 、 为产品经理对外 Demo 提供强力支撑 。
• 对于现有的环境无需担心迁移成本 , 一键托管 , 轻松浏览 、 调试环境中的所有服务 。
• 可便捷且无侵入的对接已有自动化测试框架 , 通过 GitHub/GitLab webhook 自动构
建 、 部署及测试 。
• 通过办公通讯机器人为开发者提供第一时间质量反馈 , 精准高效 。 有效落地 “ 测试左移 ” 工
程实践 , 让测试价值得到体现 , 让测试价值得到体现 。
• 开发本地编辑完代码 , 一键进行本地代码构建 , 部署到联调环境 , 无需再陷入复杂且繁琐
的工作流程 , 让本地联调不再成为难事 。 解放工程师双手 , 去创造更多产品价值 。
卓越工程生产力峰会 ee.msup.com.cn
12. Zadig 效果
在字节、腾讯等一流的巨头公司复杂研发环境
中得到考验,深受工程师喜爱
验证等待时间从 4 小时变 5 分钟;交付
周期缩短一半以上
聚焦研发部门内部验证和交付效
率,帮助企业降低流程事故至 0,企业灵活控制软件发布节奏
10 分钟接入30 分钟代码上生产
企业自主控制软件发布
KodeRover 持续度量让企业非常轻松的自
定义仪表板、简洁清晰地衡量并实时跟踪软件交付性能
研发预算从低价值的传统运维岗位转向运
维开发岗位,同时平均每 10 个工程师省出 1 - 3 名开发工程师
生产力:将每个工程师软件验证所需时间从以往 4 小时缩短为
5 分钟,迭代速度明显加快
客户 10 分钟接入,30 分钟代码上生产
产品采用松耦合架构设计,上游支持所
有生态和开源产品对接以及企业二次开发,下游可使用任何云厂
商基础设施。
卓越工程生产力峰会 ee.msup.com.cn
典型企业级合作伙伴客户:
13. 典型案例
“Zadig 解决方案面向
, 可用性极高 , 通用性场景适配
性强 , 重复利用度高 。 市面上的其他产品基本没办法解决微
服务联调的问题 … 大家一般进入统一的环境里自测 , 但通常
只会测试能想到的点 , KodeRover 用自动化的方式让大家
测得更全面 , 把事情做的质量提高 , 提升了测试的覆盖度 。
”
字节跳动 - 飞书 SRE 工程师
卓越工程生产力峰会 ee.msup.com.cn
14. 字节跳动 - 飞书主干开发主干发布
方案一:Gerrit + Zadig
方案二:Gitlab + Zadig
非核心服务:采用单分支模型
master发版。
核心服务:采用双分支模型:
master发版测试环境和
online发版生产环境 。
卓越工程生产力峰会 ee.msup.com.cn
15. 卓越工程生产力峰会 ee.msup.com.cn
16. 字节跳动 -
飞书 Gerrit
+ Zadig
方案
卓越工程生产力峰会 ee.msup.com.cn
17. 典型案例
“ 没有 Zadig, 我们的
不可能做起来 ”
非码测试总监
卓越工程生产力峰会 ee.msup.com.cn
“Zadig 让运维在
的情况下仍能轻松应对 ”
非码 DevOps 负责人
18. 卓越工程生产力峰会 ee.msup.com.cn
19. 典型案例
“ 各产品线的研发测试部署的对接都在 Zadig 上 , 实现
对
的自动化管理 ”
七牛测试开发技术专家
卓越工程生产力峰会 ee.msup.com.cn
20. 卓越工程生产力峰会 ee.msup.com.cn
21. Zadig 完成 100% 开源,欢迎吐槽
卓越工程生产力峰会 ee.msup.com.cn
22. Zadig 开源 RoadMap
接入:安装10分钟以内,成功率达 90%
1.5 个月核心重构 集成环境:支持开发者 Remote debug/ IDE 插件
65% 功能实现开源 工作流:效率和性能、开发者体验提升
3-5 个行业领域敏感型场景
建立产品发展委员会
稳定支撑3-5个优质开源社区开发者环境
6月
2021年5月
7月
1 个月功能改造
90% 功能实现开源
技术社区雏形搭建
卓越工程生产力峰会 ee.msup.com.cn
8月
10月
12月
3-5 个技术方向敏感型场景 生态伙伴工具 + Zadig
贡献者流程优化 Zadig 企业交付案例场景
23. 关注msup公众号
获取更多工程效能实践案例