展开全部

主编推荐语

本书“重新定义”了持续交付,增补了组织管理和架构两个维度,对持续交付的诸多原则和实践加以解读。

内容简介

本书分为3个部分:第一部分作者根据自己近十年的工作及咨询经历,通过不断总结、提炼和反思,对原有的持续交付进行修正,重新定义持续交付为实现组织战略目标的能力,并引入持续交付的能力模型;第二部分阐述组织打造持续交付能力模型所需遵循的原则,包括基础原则、组织原则和架构原则;第三部分通过对多个互联网公司案例的解读,阐述如何根据组织的当前状况应用相关原则对很好实践进行取舍,并快速达到组织能力目标。

本书适合大型互联网公司的技术VP、技术负责人,中小型互联网公司的CTO、技术VP、研发/测试/运维负责人、主管及骨干,以及组织变革者阅读。

目录

  • 版权信息
  • 内容提要
  • 序一
  • 序二
  • 自序
  • 前言
  • 致谢
  • 服务与支持
  • 第1章 持续交付2.0
  • 1.1 软件工程发展概述
  • 1.1.1 瀑布软件开发方法
  • 1.1.2 敏捷软件开发方法
  • 1.1.3 DevOps运动
  • 1.1.4 持续交付1.0
  • 1.2 持续交付2.0
  • 1.2.1 精益思想
  • 1.2.2 双环模型
  • 1.2.3 4个核心原则
  • 1.2.4 持续交付七巧板
  • 1.3 小结
  • 第2章 价值探索环
  • 2.1 探索环的意义
  • 2.2 探索环的4个关键环节
  • 2.2.1 提问
  • 2.2.2 锚定
  • 2.2.3 共创
  • 2.2.4 精炼
  • 2.3 工作原则
  • 2.3.1 分解并快速试错
  • 2.3.2 一次只验证一点
  • 2.3.3 允许失败
  • 2.4 共创与精炼的常用方法
  • 2.4.1 装饰窗方法
  • 2.4.2 最小可行特性法
  • 2.4.3 特区法
  • 2.4.4 定向探索法
  • 2.4.5 稻草人法
  • 2.4.6 最小可行产品法
  • 2.5 实施注意事项
  • 2.6 小结
  • 第3章 快速验证环
  • 3.1 验证环的目标
  • 3.2 验证环的4个关键环节
  • 3.2.1 构建
  • 3.2.2 运行
  • 3.2.3 监测
  • 3.2.4 决策
  • 3.3 工作原则
  • 3.3.1 质量内建
  • 3.3.2 消除等待
  • 3.3.3 重复事务自动化
  • 3.3.4 监测一切
  • 3.4 小结
  • 第4章 持续交付2.0的组织文化
  • 4.1 安全、信任与持续改善
  • 4.1.1 失败是安全的
  • 4.1.2 相互信任
  • 4.1.3 持续改善
  • 4.2 文化塑造四步法
  • 4.2.1 行为决定文化
  • 4.2.2 谷歌的工程师质量文化
  • 4.2.3 Etsy的持续试验文化
  • 4.3 行动原则
  • 4.3.1 价值导向
  • 4.3.2 快速验证
  • 4.3.3 持续学习
  • 4.4 度量原则
  • 4.4.1 度量指标的4类属性
  • 4.4.2 度量的目标是改善
  • 4.4.3 古德哈特定律
  • 4.4.4 度量应有行动决策
  • 4.5 “改善套路”进行持续改进
  • 4.6 小结
  • 第5章 持续交付的软件系统架构
  • 5.1 “大系统小做”原则
  • 5.1.1 持续交付架构要求
  • 5.1.2 系统拆分原则
  • 5.2 常见架构模式
  • 5.2.1 微核架构
  • 5.2.2 微服务架构
  • 5.2.3 巨石应用
  • 5.3 架构改造实施模式
  • 5.3.1 拆迁者模式
  • 5.3.2 绞杀者模式
  • 5.3.3 修缮者模式
  • 5.3.4 数据库的拆分方法
  • 5.4 小结
  • 第6章 业务需求协作管理
  • 6.1 产品版本周期概述
  • 6.1.1 准备期
  • 6.1.2 交付期
  • 6.2 需求拆分的利与弊
  • 6.2.1 需求拆分的收益
  • 6.2.2 需求拆分的成本
  • 6.3 需求拆分方法
  • 6.3.1 需求的来源
  • 6.3.2 技术债也是需求
  • 6.3.3 参与需求拆分的角色
  • 6.3.4 不平等的INVEST原则
  • 6.3.5 五大拆分技法
  • 6.3.6 七大组成部分
  • 6.4 需求分析与管理工具集
  • 6.4.1 用户故事地图
  • 6.4.2 用户故事树
  • 6.4.3 依赖关系图
  • 6.4.4 需求管理数字化平台
  • 6.5 团队协作管理工具
  • 6.5.1 团队共享日历
  • 6.5.2 团队回顾
  • 6.5.3 可视化故事墙
  • 6.5.4 明确“完成”的定义
  • 6.5.5 持续集成
  • 6.5.6 故事验证
  • 6.6 小结
  • 第7章 部署流水线原则与工具设计
  • 7.1 简单的部署流水线
  • 7.1.1 简单的产品研发流程
  • 7.1.2 初始部署流水线
  • 7.1.3 流水线执行状态解析
  • 7.2 部署流水线的设计与使用
  • 7.2.1 流水线的设计原则
  • 7.2.2 团队的协作纪律
  • 7.3 部署流水线平台的构成
  • 7.3.1 工具链总体架构
  • 7.3.2 平台应当具备的基本能力
  • 7.3.3 工具链建设策略
  • 7.4 基础支撑服务的云化
  • 7.4.1 基础支撑服务的协作过程解析
  • 7.4.2 编译构建管理服务
  • 7.4.3 自动化测试管理服务
  • 7.4.4 软件部署管理服务
  • 7.4.5 基础环境管理服务
  • 7.5 企业制品库的管理
  • 7.5.1 制品库的分类
  • 7.5.2 制品库的管理原则
  • 7.6 多种多样的部署流水线
  • 7.6.1 多组件的部署流水线
  • 7.6.2 个人部署流水线
  • 7.6.3 部署流水线的不断演进
  • 7.7 为开发者构建自助式工具
  • 7.8 小结
  • 第8章 利于集成的分支策略
  • 8.1 版本控制系统的使用目的
  • 8.1.1 集中式版本控制系统
  • 8.1.2 分布式版本控制系统
  • 8.1.3 版本控制系统中的基本概念
  • 8.2 常见分支开发模式
  • 8.2.1 主干开发,主干发布
  • 8.2.2 主干开发,分支发布
  • 8.2.3 分支开发,主干发布
  • 8.3 分支模式的演化
  • 8.3.1 “三驾马车”分支模式
  • 8.3.2 Gitflow分支模式
  • 8.3.3 GitHubFlow分支模式
  • 8.4 分支策略的选择
  • 8.4.1 版本发布模式
  • 8.4.2 分支策略与发布周期的关系
  • 8.5 小结
  • 第9章 持续集成
  • 9.1 起源与定义
  • 9.1.1 原始定义
  • 9.1.2 一次集成过程
  • 9.2 六步提交法
  • 9.2.1 4个关键点
  • 9.2.2 同步与异步模式
  • 9.2.3 自查表
  • 9.3 速度与质量的权衡
  • 9.3.1 分级构建
  • 9.3.2 多人同时提交的构建
  • 9.3.3 云平台的威力
  • 9.4 在团队中实施持续集成实践
  • 9.4.1 快速建立团队的持续集成实践
  • 9.4.2 分支策略与部署流水线
  • 9.5 常见的实施问题
  • 9.5.1 工程师的开发习惯
  • 9.5.2 视而不见的扫描问题
  • 9.5.3 自动化测试用例的缺乏
  • 9.6 小结
  • 第10章 自动化测试策略与方法
  • 10.1 自动化测试的自身定位
  • 10.1.1 自动化测试的优势
  • 10.1.2 自动化测试所需的投入
  • 10.2 突破传统自动化测试的困境
  • 10.2.1 传统自动化测试的特点
  • 10.2.2 自动化测试的分层
  • 10.2.3 不同类型的测试金字塔
  • 10.3 自动化测试的实施策略
  • 10.3.1 增加自动化测试用例的着手点
  • 10.3.2 提高自动化测试的执行次数
  • 10.3.3 良好自动化测试的特征
  • 10.3.4 共享自动化测试的维护职责
  • 10.3.5 代码测试覆盖率
  • 10.4 用户验收自动化测试要点
  • 10.4.1 先搭建分层框架
  • 10.4.2 测试用例数应保持低位
  • 10.4.3 为自动化测试用例预留API
  • 10.4.4 为调试做好准备
  • 10.4.5 测试数据的准备
  • 10.5 其他质量检查方法
  • 10.5.1 差异批准测试方法
  • 10.5.2 代码规范检查与代码动静态检测
  • 10.5.3 AI在测试领域的应用
  • 10.6 小结
  • 第11章 软件配置管理
  • 11.1 将一切纳入软件配置管理
  • 11.1.1 软件配置管理的目标
  • 11.1.2 软件配置管理的范围
  • 11.1.3 软件配置管理的原则
  • 11.2 软件包的版本管理
  • 11.2.1 包管理的反模式
  • 11.2.2 集中式包管理服务
  • 11.2.3 软件包的元信息
  • 11.3 包依赖管理
  • 11.3.1 显式声明依赖
  • 11.3.2 自动管理依赖
  • 11.3.3 减少复杂依赖
  • 11.4 环境基础设施管理
  • 11.4.1 环境准备的4种状态
  • 11.4.2 领域专属语言的应用
  • 11.4.3 环境基础设施即代码
  • 11.5 软件配置项的管理
  • 11.5.1 二进制与配置项的分离
  • 11.5.2 配置信息的版本管理
  • 11.5.3 配置项的存储组织方式
  • 11.5.4 配置漂移与治理
  • 11.6 不可变基础设施与云应用
  • 11.6.1 实现不可变基础设施
  • 11.6.2 云原生应用
  • 11.6.3 优势与挑战
  • 11.7 数据的版本管理
  • 11.7.1 数据库结构变更
  • 11.7.2 数据文件
  • 11.8 需求与源代码的版本关联
  • 11.9 小结
  • 第12章 低风险发布
  • 12.1 高频发布是一种趋势
  • 12.1.1 互联网企业的高频发布
  • 12.1.2 收益与成本共存
  • 12.2 降低发布风险的方法
  • 12.2.1 蓝绿部署
  • 12.2.2 滚动部署
  • 12.2.3 金丝雀发布与灰度发布
  • 12.2.4 暗部署
  • 12.3 高频发布支撑技术
  • 12.3.1 功能开关技术
  • 12.3.2 数据迁移技术
  • 12.3.3 抽象分支方法
  • 12.3.4 升级替代回滚
  • 12.4 影响发布频率的因素
  • 12.5 小结
  • 第13章 监测与决策
  • 13.1 生产监测范围
  • 13.1.1 后台服务的监测
  • 13.1.2 分发软件的监测
  • 13.2 数据监测体系
  • 13.2.1 收集与处理
  • 13.2.2 数据的标准化
  • 13.2.3 监测数据体系及其能力衡量
  • 13.3 问题处理体系
  • 13.3.1 告警海洋与智能化管理
  • 13.3.2 问题处理是一个学习过程
  • 13.4 生产环境测试
  • 13.4.1 测试活动扁平化趋势
  • 13.4.2 生产环境中的测试
  • 13.4.3 混沌工程
  • 13.5 向东,还是向西
  • 13.6 小结
  • 第14章 大型互联网团队的FT化
  • 14.1 简介
  • 14.1.1 改进前状态
  • 14.1.2 改进后状态
  • 14.2 改进方法论
  • 14.2.1 指导思想
  • 14.2.2 改进步骤
  • 14.3 改进的历程
  • 14.3.1 架构解耦
  • 14.3.2 组织解耦
  • 14.3.3 研发流程再造
  • 14.3.4 自动化一切
  • 14.4 小结
  • 第15章 小团队逆袭之旅
  • 15.1 背景简介
  • 15.1.1 改进前的“死亡行军”之旅
  • 15.1.2 改进后的无缺陷交付
  • 15.2 改进方法论
  • 15.2.1 指导思想
  • 15.2.2 试点团队的选择
  • 15.3 第一阶段:研发准备期
  • 15.3.1 功能简介与需求拆分
  • 15.3.2 架构设计与需求依赖识别
  • 15.3.3 工作量估算与排期
  • 15.4 第二阶段:软件交付期
  • 15.4.1 通过可视化看板改进工作流程
  • 15.4.2 无缺陷交付
  • 15.4.3 主干开发与持续集成
  • 15.4.4 测试活动左移
  • 15.4.5 代码评审
  • 15.4.6 关注结果,更要关注过程
  • 15.5 小结
  • 第16章 研发推动的DevOps
  • 16.1 改进的关键点
  • 16.1.1 改进方法论
  • 16.1.2 定义改进目标
  • 16.2 第一阶段:敏捷101
  • 16.2.1 做个靠谱的计划
  • 16.2.2 开发阶段启航
  • 16.2.3 对过程质量的约束
  • 16.2.4 阶段性改进点
  • 16.3 第二阶段:DevOps转型
  • 16.3.1 与运维人员的“冲突”
  • 16.3.2 高频部署发布中的具体障碍
  • 16.3.3 整体解决方案的设计
  • 16.3.4 DevOps阶段的团队改变
  • 16.4 小结
  • 第17章 研发组织效能提升的必经之路
  • 17.1 知识工作者与熵增定律
  • 17.1.1 每个工程师生产的都是非标品
  • 17.1.2 软件工程的复杂性令研发效率降低
  • 17.2 一致性是效能提升的必经之路
  • 17.3 组织能力三要素
  • 17.4 胜任力评估
  • 17.4.1 组织胜任力评估模型
  • 17.4.2 个人胜任力培养体系
  • 17.5 组织健康度
  • 17.6 小结
  • 附录A 软件工程的三次进化
  • 附录B 排序法做相对估算
展开全部

评分及书评

4.3
9个评分
  • 用户头像
    给这本书评了
    4.0
    关于 DevOps 的道

    有启发的 10 句话 1.DevOps 并非一个标准、一种模式或者一套固定方法,而是一种 IT 组织管理的发展趋势 2. 从生产过程开始,就做到质量内建 3. 你无法管理你不能衡量的事情 4. 古德哈特定律:如果一项指标变成了目标,它将不再是一个好指标 5 持续交付的需求拆分总原则:坚持以业务视角对需求进行分解 6. 技术债也是需求 7. 规范化和标准化并不等于僵化 8. 功能开关技术:通过开关来隐藏未开发完成的功能 9. 问题处理是一个学习过 10. 没有反馈,就是 “风险” 重点整理 :1. 没有放之四海皆准的企业管理解决方案能够完美解决每个企业遇到的问题。但是,管理者只有从整体视角出发,抵住局部优化的诱惑,才能在资源有限的情况下,引领企业创造更大的价值 2.DevOps 是一种软件工程文化和实践,旨在统一整合软件开发和软件运维 3.DevOps 并非一个标准、一种模式或者一套固定方法,而是一种 IT 组织管理的发展趋势,改变 IT 组织内部的原有合作模式,使之更紧密结合,从而促进业务迭代速度更快 4. 部署流水线模式的 4 条指导原则:* 每个构建阶段都应该交付可工作的软件,即中间产物的生成不应该是一个单独的阶段 * 用同一个制品向不同类型的环境部署,即将其与运行时配置分开管理 * 自动化测试和部署,即根据测试目的,分成几个独立的质量关卡 * 部署生产线设计也应该随着你的应用程序的发展而不断演进 5. 部署与交付 / 发布的意义并不相同:* 部署:一种技术领域的操作,但它并不一定意味着 “必须包含业务功能的发布或交付”* 交付 / 发布:是一个业务决策活动 6. 持续交付 2.0 的 4 个核心工作原则:* 坚持少做 * 持续分解问题 * 坚持快速反馈 * 持续改进并衡量 7. 探索环的 4 个关键环节:* 提问:通过有针对性的提问与讨论,找出团队期望达成的业务目标或者希望解决的业务本质问题 * 锚定 * 共创 * 精炼 8. 量化式影响地图的用 Why-Who-How-What 的分析法:* 角色 * 影响 * 方案 * 量化 9. 用户旅行地图,将用户与产品或服务之间的互动,按业务流分阶段呈现出来:* 用户接触点 * 接触阶段 * 用户痛点 * 用户情绪 10. 探索环遵循:* 分解并快速试错 * 一次只验证一点 * 允许失败 11. 共创与精炼的常用方法:* 装饰窗方法:新功能预留一个 “入口”,让用户能够看到,但实际上并没有真正实现其功能 * 最小可行特性法:寻找用户可直接感知到的需求假设作为产品的最小可行特性优先开发的方法 * 特区法:是指在特定用户范围内进行试验,以验证某个新功能的有效性 * 定向探索法:指针对具有某种特定行为的特定用户群体,依据该用户的具体行为模式,设计调查提纲,有针对性地探索其行为背后的动机 * 稻草人法:不开发任何真实的功能,只假装这个功能已经完成了,并向用户展示该功能的真实效果,从而得到用户的真实反馈 * 最小可行产品法:尽可能少的成本快速开发产品的核心功能,并找到用户,收集真实反馈,验证真实的用户需求,以确定新产品方向和形态 12. 彼得・德鲁克:结果只存在于企业的外部…… 在企业的内部,只有成本 13. 验证环的 4 个关键环节:* 构建 * 运行 * 监测 * 决策 14. 验证环的工作原则:* 质量内建 * 消除等待 * 尽量并行 * 监测一切 15. 戴明:我们无法依靠大批量的检验来达到质量标准。依靠检验提高质量已经太迟了,且成本高而效益低。正确的做法是,从生产过程开始,就做到质量内建 16. 工程师质量文化:* 第一步:定义想要做的事情 * 第二步:定义期望的做事方法 * 第三步:提供相应的培训 * 第四步:做些必需的事情来强化那些行为 17. 行动原则:价值导向、快速验证、持续学习 18. 彼得・德鲁克:你无法管理你不能衡量的事情 19. 衡量 IT 高绩效组织的 4 个度量项:发布频率、发布周期、MTBF 平均失效间隔 / MTTR 平均恢复时间和吞吐量 20. 古德哈特定律:如果一项指标变成了目标,它将不再是一个好指标。当一个人对一项政策有一定的预期,并以人为操作的手段去偏向化改变结果的时候,就会有此种现象发生 21. 改善套路进行持续改进 * 第一阶段:明确方向 * 第二阶段:掌握当前状态 * 第三阶段:定义下一个目标状态 * 第四阶段:迭代改进: PDCA 循环 22. 系统架构在设计时考虑因素:* 为测试而设计 * 为部署而设计 * 为监控而设计 * 为扩展而设计 * 为失效而设计:一旦部署或发布失败,如何优雅且快速地处理 23. 大系统小做的原则:* 每个组件或服务有清晰的业务职责,可以被独立修改,甚至被另一种实现方案所替代 * 高内聚、低耦合 * 整个系统易于构建与测试 * 使团队成员之间的沟通协作更加顺畅 24. 微核架构又称为插件架构:常用于需要向用户分发的客户端软件,指的是软件的核心框架相对较小,而其主要业务功能和业务逻辑都通过插件实现 25. 微核架构优点:* 良好的功能延伸性 * 易发布 * 易测试 * 可定制性高 * 可以渐进式地开发 26. 微核架构不足:* 扩展性差 * 开发难度相对较高 * 高度依赖框架 27. 分层的巨石应用也称巨石架构,常见于创业公司的产品项目,其设计理念就是自己从头到尾完成某项功能所需的所有步骤,而不只是实现其中某个环节 28. 对遗留系统进行架构改造的 3 种方式:* 拆迁者模式:一次性重写所有代码。这是大家最熟悉的方式 * 绞杀者模式:不改变或少改变原有遗留系统,通过增加新的服务来不断替代遗留系统的功能 * 修缮者模式:通过迭代,对原有遗留系统进行逐步改造,同时开发新的功能 29. 持续交付的需求拆分总原则:坚持以业务视角对需求进行分解 30. 技术债也是需求 31. 用户故事拆分方法:* 路径拆分法:用户使用场景中的不同路径进行拆分 * 按接触点拆分 * 按数据类型或格式拆分 * 按规则拆分:业务规则或者技术规则。* 按探索路径拆分 32. 提高团队协作的工具与方法:* 共享时间表 * 回顾会议 * 持续集成 * 故事验证 33. 流水线的设计遵循:* 一次构建,多次使用 * 与业务逻辑松耦合 * 并行化原则 * 快速反馈优先 * 重要反馈优先 34. 部署流水线发挥最大的作用,研发团队遵守原则:* 任何软件包的取用皆须通过受控源,各角色之间禁止通过私有渠道(如电子邮件、即时通信工具等)获取 * 尽可能将一切流程自动化,并持续优化执行时间 * 每次提交都能够自动触发部署流水线 * 尽可能地少用手动触发方式 * 必须执行立即暂停原则 35.“未开发完成的功能代码不能带入将要发布的版本里” 曾被认为是一种最佳软件质量管理实践。然而,在这种高频交付模式下,很难再遵守这一实践。相反,应该允许提交未完成功能的代码,前提是不影响用户的正常使用和发布 36. 常见分支开发模式 * 主干开发,主干发布 * 主干开发,分支发布 * 分支开发,主干发布 37. 版本发布模式三要素:* 交付时间点 * 特性数量 * 交付质量 38.GitHubFlow 分支模式的原则:* 分支越少越好,最好只有一条主干 * 分支生存周期越短越好,最好在 3 天以内 * 在业务允许的前提下,发布周期越短越好 39. 持续集成的自我检查:* 主干开发,频繁提交 * 每次提交应该是一个完整的任务 * 让提交构建在 10 分钟以内完成 * 提交构建失败后应禁止团队成员提交新代码,也不许其他人检出该代码 * 立即在 10 分钟内修复已失败的提交构建,否则回滚代码 * 自动化构建验证通过后,对软件质量有比较大的信心 40. 对自动化测试的实践管理原则:* 自动化测试用例运行次数越多,平均成本越低,收益就越大 * 自动化测试用例之间应该尽可能相互独立,互不影响 * 在质量有保障的前提下,自动化测试用例的数量越少越好 * 遗留代码的自动化测试编写应该从代码热区开始 * 自动化测试用例从测试金字塔的中间层开始补充,投入产出比最高 41. 软件配置管理的基本原则:* 一切皆有版本 * 共享唯一受信源 * 标准化与自动化 42. 规范化和标准化并不等于僵化,所有的规范管理都应该有相应的改进机制,并持续进行优化 43. 常见的包依赖问题:* 依赖过多或者链条过长 * 依赖冲突 * 循环依赖 44. 解决依赖冲突:* 想办法令被依赖库的两个不同版本可以在同一环境下运行 * 打平依赖:通过对产品代码的修改,使 A B 依赖于同一个版本 * 分裂依赖 * 每次升级时使用梯形升级法 45. 环境准备的 4 种状态:* 蛮荒:以 “人脑 + 手工” 为代表 * 规范化:以 “文档 + 私有脚本” 为代表 * 标准化:以 “办公自动化” 为代表 * 自动化:以 “受控式自动化脚本” 为代表 46. 配置项的内容:* 环境配置项 * 应用配置项:信息安全控制及应用程序自身相关 * 业务配置项 47.Heroku 云原生应用的 12 要素:* 一套基准代码,多环境部署 * 显式声明依赖关系 * 在环境中存储配置 * 把后端服务当作附加资源 * 严格分离构建、发布和运行 * 应用本身应该是一个或多个无状态进程,进程之间没有数据共享 * 通过端口绑定提供服务 * 通过进程模型进行扩展 * 快速启动和优雅终止 * 尽可能让开发环境、预生产环境与生产环境等价 * 日志作为事件流 * 将管理 / 管理任务作为一次性进程运行 48. 验证检查放入版本管理:* 产品源代码和测试代码 * 软件应用的配置信息 * 各类环境的系统配置 * 自动化的构建和部署脚本 * 软件包 49. 高频发布是一种趋势 50. 下降低发布风险的方法:* 蓝绿部署 * 滚动部署 * 金丝雀发布 * 灰度发布 * 暗部署 51. 功能比较复杂,无法在两次发布之间完成开发的办法:* 拆分功能 * 先后再前法:先实现服务端功能,再实现用户界面 * 功能开关技术:通过开关来隐藏未开发完成的功能 52. 商业套装软件来说,通常软件授权证书就是一个开关,用于激活你购买的软件。而且不同的授权证书,还可以激活该软件中的不同功能 53. 对高频率的软件部署来说,开关技术被赋予了两种新的用途:* 隔离:即将未完成功能的代码隔离在执行路径之外,使之对用户不产生影响 * 快速止血:一旦生产环境出了问题,直接找到对应功能的开关选项,将其设置为 “关闭” 54. 后台服务监测包括 3 个层次,分别是基础监测、应用监测和业务监测 55. 一部分告警信息都会被接收者直接忽略的原因:* 警信息的第一处理人不是自己 * 警信息是一个预备告警,并不需要马上处理 56. 缓解 “告警海洋” 的问题:* 通过关联分析,让监控点离问题发生地更近 * 通过动态阈值设定合理的告警 * 定期梳理告警设置,清理不必要的告警 * 通过人工智能动态解除告警 57. 问题处理是一个学习过 58. 混沌工程是指通过在生产环境中注入 “问题”,从而发现生产环境系统性弱点,并进行系统性改进的方法或手段。其目标是不断提升生产环境面对任何变更的可靠性 59.“目标驱动,从简单问题开始,持续改善” 是整个改进的指导思想 60. 团队上下的目标一致,并且 “让所有人理解这个目标” 是成功关键 61. 发版原则:* 不能让用户感觉到骚扰 * 外发版本的质量要达标 62. 持续改进最重要的就是核心管理层要有持续改进的决心,特别在短期改进没有明显效果的情况下,需要管理团队有坚定的信心,并克服组织惯性对变革的阻力而坚持下去 63. 选择试点团队:* 项目压力适中,有相对富裕的时间 * 团队负责人心态开放,能够承受压力,勇于尝试 * 团队成员有热情 * 业务方有频繁及快速频繁交付的强烈诉求 64. 没有反馈,就是 “风险” 65. 团队产能,回答问题:* 理想情况下,团队每周工作时间是多少?* 理想情况下,每周能完成多少需求?* 实际每周最有可能开发完成多少需求?* 如何处理整个项目开发过程中的线上需求变更?* 系统测试的时间在哪里?* 其他类型的测试(如性能测试和压力测试)怎么办?* 计划时还需要考虑依赖因素?* 项目计划在整体上要加一个缓冲时间,更符合实际?66. 自动化测试金字塔理论:* 自动化单元测试 * 模块自动化测试 * 服务接口自动化测试 * 子服务系统自动化测试 * 大环自动化测试 67. 改进工作:* 业务目标合理 * 项目计划透明(过程透明与结果透明)* 流程 “自定义,自遵守”,团队确保高质量交付 * 定期主动回顾,而非事件驱动的回顾 * 通过细粒度需求组织开发流程 * 持续集成六步提交法 * 适当使用自动化测试,提高质量反馈效率 68. 一致性是效能提升的必经之路 69. 企业所展现的组织能力由 3 个基本要素组成:* 流程机制 * 工具平台 * 个体能力 70. 提升企业整体产品研发胜任力的问题:* 愿不愿意做?* 能不能做?* 会不会做?

      1
      评论
      用户头像
      给这本书评了
      5.0

      从 “软件工程” 这一名词诞生以来,“质量” 和 “效率” 就是它的目标。IT 组织大多在这条路上探寻,从最初的瀑布模型,到 CMMI,很多组织曾经尊其为软件开发过程的 “圣经”。而当 “敏捷运动” 兴起时,他们想要 “做” 敏捷;当听说 “持续交付” 时,他们想要 “做” 持续交付。现在,DevOps 也来了!在各种各样的交流大会里,不断传来 DevOps 胜利的凯歌,各种媒体也在报道它的好处。

        转发
        评论

      出版方

      人民邮电出版社

      人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。