DevOps在字节跳动的实践和探索
如果无法正常显示,请先停止浏览器的去广告插件。
1. DevOps 在字节移动
研发中的探索和实践
波波|字节跳动应用开发套件 MARS 研发工程师
2021/11/20
1
2. 1.移动研发面临的效能挑战
2.字节移动 DevOps 简介
3.字节移动 DevOps 核心能力介绍
4.总结和展望
2
2
3. 3
移动研发面临的效能挑战
4. 移动研发面临的效能挑战
构建:
• 环境碎片化
•
4
工程:
• 单体工程 ->组件化,多仓
Mac 非标准机器
设备:
• 机型碎片化
•
4
系统碎片化
编程语言:
• OC,Swift,Java,Kotlin,Dart,C/C++…..
•
混合编程
发布:
• 止损慢
•
更新慢
www.volcengine.com
5. 5
字节移动 DevOps 简介
6. 字节移动 DevOps 简介
6
6
www.volcengine.com
7. 字节移动 DevOps 简介
7
7
在字节跳动的落地效果:
一周
发版频次
20%
+
静态检测拦截率
2
分钟 7
分钟 10
分钟
Android 增量构建 Android 全量构建 iOS 构建
www.volcengine.com
8. 8
DevOps 核心能力介绍
9. DevOps 核心能力-工作流
9
9
三层产品架构(自上而下):
•
•
•
原子服务
• 规范化封装的最小功能性任务
• 全流程、多平台
• 开放平台、自由扩展
工作流
• 原子服务串/联组成的任务流
• 自由编排、按需配置
模板
• 字节跳动研发模式的沉淀
• 基础流、多仓流、多宿主流
www.volcengine.com
10. DevOps 核心能力-工作流
10
10
支持框选添加串并行:
•
自由编排,降低上手成本
DAG:
找最近公共父子节点并遍历,存在框选节
点,高亮该分支所有节点。
www.volcengine.com
11. DevOps 核心能力-工作流实践
11
11
多仓集成流介绍:
www.volcengine.com
12. DevOps 核心能力-工作流实践
12
12
多仓原理:
www.volcengine.com
13. DevOps 核心能力-持续构建
13
构建集群 构建监控 构建缓存
• 构建资源云化,动态资源调度 • 耗时分析 • 容器缓存/文件缓存
• 任务隔离,安全 • 裂化监控 • 分布式缓存
13
www.volcengine.com
14. DevOps 核心能力-持续构建
14
字节云构建集群:
• 机器、队列、环境、任务,运管监控平台统一管理
• 分布式集群,弹性伸缩,横向扩容,充分利用资源
• 调度策略灵活可配:优先级、最优环境匹配
• 任务隔离, Mac 虚拟化支持,保障构建安全
图片区域
图片区域
www.volcengine.com
15. DevOps 核心能力-持续构建
15
Mac 虚拟化技术——Cusk:
• 免配置生产就绪的 MacOS 环境
• 基于 Mac 硬件可信虚拟化技术
• 快速伸缩,按需配置规格和容量
图片区域
www.volcengine.com
16. DevOps 核心能力-持续构建
16
16
www.volcengine.com
17. DevOps 核心能力-持续构建
17
17
分布式编译加速系统——Dolphin
• 利用分布式缓存加速编译。
• 不同工程目录下缓存可以复用。
• App 编译效率提升 30%-50%。
• 简单配置即可使用。
www.volcengine.com
18. DevOps 核心能力-持续测试
静态:
• MR 检测
• 代码规约检测
• 单元测试
• 安全合规检测
• 包检测
•
18
18
静态测试,如何更好在业务落地?
Daily 检测
• 代码缺陷检测
动态:
• 移动端自动化测试 (后面会由孤影同学给大家详细介绍)
www.volcengine.com
19. DevOps 核心能力-持续测试
19
19
• 线上无需改动任何代码,开箱即用
• 规则有效,规则包多业务复用,提供最佳实践
• 问题消费可见可跟进
www.volcengine.com
20. DevOps 核心能力-持续测试
20
20
www.volcengine.com
21. DevOps 核心能力-持续测试
21
21
新方向的探索:
•
CodeGraph-Based DynamicTest:
• 定位改动的 Activity/ViewController
• 更精准的测试,更快速的暴露问题
• 原理可以关注这里
www.volcengine.com
22. DevOps 核心能力-持续发布
制品库 质量保障 发布
• •
• •
•
唯一发布可信源
安全预审
内测/众测
22
22
精准灰度
放量管控
发布监控
•
•
•
•
Crash/舆情监控
精准熔断
Bug 反馈
归因分析
www.volcengine.com
23. DevOps 核心能力-持续发布
23
23
www.volcengine.com
24. 24
总结和展望
25. 总结和展望
25
25
工作流:自由编排,最佳实践
持续构建:集群管理,编译监控,缓存优化
持续测试:场景覆盖,开箱即用,问题跟踪
持续发布:制品库、质量预审、灰度发布、发布监控
www.volcengine.com
26. 火山引擎应用开发套件 MARS,免费公测中
MARS DevOps 即将公测,欢迎关注 MARS,关注 MARS DevOps
火山引擎应用开发套件 MARS,是由字节跳动技术经验的沉淀,经抖音、今日头条等多款 App 研发实践验证、诸多企业使
用的面向多端开发场景的应用研发工具,致力于通过先进的研发技术,帮助企业和用户降低研发成本、聚焦业务成功。
微信扫码关注公众号,点击底部菜单栏“MARS 产品”即可申
请免费试用,如有私部需求也可在公众号内随时与我们联系解决。
www.volcengine.com
27. 欢迎加入
2
7
27
扫码关注
“火山引擎开发者社区”公众号
www.volcengine.com
28. www.volcengine.com