- 瀑布式开发
- 精益运动
- 敏捷开发
- 持续交付运动
- DevOps持续交付体系
- DevOps的组织文化
- 交付“价值”
- 允许失败、获得反馈、持续改善
- 持续学习、彼此信任
- DevOps的研发文化
- 目标:高质量、低风险地快速发布软件价值
- 核心模式
- 核心原则
- 0.业务需求协作管理
- 1.需求拆分(产品组织主导)
- 1.1 需求拆分的好处
- 1.2 需求拆分的方法
- 1.2.1 以用户故事进行需求拆分
- 1.2.2 用户故事的拆分原则(INVEST)
- 2.研发准备工作(研发组织)
- 2.1 研发任务拆分
- 2.2 测试用例编写
- 2.3 系统架构梳理
- 2.3.1 架构的设计原则
- 2.3.2 涉及遗留架构的改造策略
- 1.持续集成(Continuous integration 简称CI)
- 1.1 持续集成的步骤
- 1.2 持续集成的实践]
- 1.2.1 使构建过程脚本化,搭建持续集成框架
- 1.2.2 向构建中添加已有的自动化验证集合
- 1.2.3 选择利于持续集成的分支策略
- 1.2.4 建立六步提交法
- 2.持续测试
- 2.1 Brian Marick 测试四象限
- 2.2 测试类型
- 2.2.1 单元测试
- 2.2.2 组件测试
- 2.2.3 集成测试
- 2.2.4 验收测试
- 3.持续部署(发布)
- 3.1 高频发布的好处
- 3.2 低风险发布策略
- 3.2.1 蓝绿部署
- 3.2.2 滚动部署
- 3.2.3 灰度发
- 4.软件配置管理
- 4.1 核心原则
- 4.2 制品库管理
- 4.2.1 临时软件包库
- 4.2.2 正式软件包库
- 4.2.3 外部软件包库
- 4.3 数据版本管理
- 总:部署流水线
- 1.核心阶段
- 基础环境准备
- 1.1 “提交构建”阶段
- 1.2 “UAT验收测试”阶段
- 1.3 “部署/发布”阶段
- 2.基础支撑服务
- 3.需遵守的原则
- 1.监测与决策
- 1.1 生产环境监测体系
- 1.1.1 后台服务监测
- 1.1.2 分发客户端监测
- 1.3 问题处理体系
- 2.数据治理体系
- (一)产品准备期
- 1.需求及研发任务管理:禅道或Jira
- (二)产品交付期
- 1.部署流水线:KubeSphere
- 2.CI&CD 系统:Jenkins
- 3.代码质量管理:SonarQube
- 2.1 多语言支持
- 2.2 七个维度检测代码质量
- 2.3 执行流程
- 4.持续测试平台:MeterSphere
- 5.容器镜像制品库:Harbor
- 让镜像分发更高效
- 让镜像分发更安全
- 优雅的资源清理和垃圾回收
- 多种HA方案
- (三)产品运营期
- 1.服务器及应用监控:KubeSphere + Prometheus + 公有云自带
- 2.业务监控及运营:自研智能运营分析系统
- 1.过程维度
- 1.1 能力雷达图谱
- 2. 结果维度
- 2.1 质量
- 2.1.1 交付前的过程质量
- 2.1.2 交付后的生产质量
- 2.2 速度
- 2.2.1 业务需求响应速度
- 2.2.2 持续交付能力