本章阐述了本书的目标,然后为目标群体命名,讨论了“持续万物”的背景,简要说明了每一部分所涵盖的内容,介绍了本书的结构和内容,最后提供附录和阅读指南。
一、目标
本书的主要目标是提供一个持续万物工具箱。本书讨论了八个关键的连续万物方面的领域。当然还有很多其他方面的领域,但本书中选择的领域是一个很好的基础。由篇幅所限,领域的深度有限。这本书可供所有参与DevOps的人员参考。
二、目标群体
本书的目标群体都是DevOps团队中的成员,其中包括架构师、开发工程师、运维工程师、产品经理、Scrum master、敏捷教练以及用户组织的代表。当然,这本书也非常适用于通过DevOps方法参与创建信息供应的业务经理、流程所有者、流程经理等,以及不参与开发或管理的目标群体,包括质检员工和审计员,因为他们可以利用这本书来识别需要接受或控制的风险,也能确定价值流是否符合所要求的标准。
三、背景
这本书包含了各种方法和技巧,以持续的方式为持续万物提供事实基础。DevOps 八字环概述了“持续万物”的各个关键方面,如图0.1.1所示。
DevOps 八字环概述了持续生产软件所需的阶段。因此,DevOps八字环是定义持续万物(CE)概念的良好基础。CE概念以持续执行的活动的形式描述DevOps八字环的所有阶段。表0.1.1显示了DevOps八字环与“持续万物”各阶段之间的关系。
DevOps 八字环中不包含持续审核(9)和持续评估(10),也不包含其他“持续”领域(如持续自动化和持续增长)。这是为了保持DevOps 八字环清晰。
词语“持续”表示了DevOps团队内部工作的许多特征。第一,行动的频率高于传统的系统开发。这与建造和部署已经构建的东西有关。这可能体现在部署频率从分钟、小时到天不等。第二,“持续”是指工作的整体视角。例如,监控不限于生产环境,而是监控所有环境。第三,持续监控不仅对产品和服务进行监控,还对价值流乃至人们的知识和技能进行监控。这符合ITIL 4的人员、流程、合作伙伴和技术观点。第四,术语“持续”表示DevOps 八字环的各个阶段相互关联。例如,“规划”“设计”“部署”和“监控”等中都使用了持续测试。
四、结构
这本书总结了以前出版的八本书,见表0.1.2。
1.第一部分:DevOps持续规划
持续规划是一种可以掌握信息提供过程中所做的变更,以实现业务流程的成果改进,从而实现有效的业务目标的方法。该方法针对多个层次,为每个层次提供敏捷规划技术,细化更高级别的计划。这样,就可以在战略、战术和运营层面上,以灵活的方式进行规划,从而尽可能减少开销,增多价值。
持续规划包括规划技术,如平衡计分卡、企业架构、产品愿景、路线图、单页史诗故事、产品积压管理、版本规划和迭代规划,并指出这些技术是如何相互联系的。
2.第二部分:DevOps持续设计
持续设计是一种方法,旨在让DevOps团队提前简要地思考信息系统的轮廓,并在敏捷项目(迭进设计)期间实现设计的发展。这可防止界面风险并保证基本的知识转移,以支持管理和遵守法律和法规。这些要素保证了组织的连续性。持续设计包括设计金字塔模型,其中定义了以下设计视图:业务、解决方案、设计、需求、测试和代码视图。持续设计涵盖了信息系统的整个生命周期。
前三个视图是在价值流图和用例等现代设计技术的基础上完成的。然而,持续设计有效应用的重点在于通过将设计集成到行为驱动开发和测试驱动开发以及持续文档来实现信息系统建设。
3.第三部分:DevOps持续测试
持续测试是一种旨在在软件开发过程中提供快速反馈的方法,该方法是在开始构建解决方案之前将“什么”和“如何”定义为测试用例。因此,需求、测试用例和验收标准的概念集成在一种方法中。本部分使用定义、业务案例、架构、设计和最佳实践定义了持续测试。本部分讨论的概念包括变更范式、理想测试金字塔、测试元数据、业务驱动开发、测试驱动开发、测试策略、测试技术、测试工具和单元测试用例在持续测试中的作用。
4.第四部分:DevOps持续集成
持续集成是一种全面的精益软件开发方法,旨在以增量和迭代的方式制造并投入生产持续软件,以减少浪费作为高度优先事项。由于功能可以提前投入生产,持续集成的增量和迭代方法使得快速反馈成为可能。这样做可以减少浪费,因为产品修正的速度更快,得益于错误发现得更早,而且可以更快解决。在定义、业务用例、架构、设计和最佳实践的基础上讨论持续集成。此处讨论的概念包括变更范式、持续集成的应用、储存库的使用、代码质量、绿色代码、绿色构建、重构、基于安全的开发和内置故障模式。
5.第五部分:DevOps持续部署
持续部署是一种全面的精益生产方法,旨在以增量和迭代方式部署和发布持续软件,其中上市时间和高质量至关重要。持续部署可实现快速反馈,因为在生产CI/CD安全管道的较早阶段就可以检测错误。更快的、更节约成本的修复行动可以减少浪费。在定义、业务用例、架构、设计和最佳实践的基础上讨论持续部署。此处讨论的概念包括变更范式、持续部署的应用、系统持续部署安排的分步计划以及允许进行循环部署的许多模式。
6.第六部分:DevOps持续监控
持续监控是一种控制核心价值流(业务流程)和赋能价值流来支持这些核心价值流的方法。持续监控不同于传统监控,因为重点在于改进成果和衡量价值流的整体范围,即PPPT的所有四个视角(People—人员、Process—流程、Partner—合作伙伴和Technology—技术)的整个CI/CD安全流水线,这使得能够映射和消除价值流中的瓶颈。
使用持续监控层级模型中定义的监测功能来讨论持续监控。此层级模型对市场上可用的监控工具进行分类。本部分从定义、目标、度量属性、要求、示例和最佳实践等方面定义了每种监控原型,还指出了如何根据变更经理的范式和体系结构原则和模型设置持续监控。
7.第七部分:DevOps持续学习
持续学习是一种掌握实现组织战略所需能力的方法。为此,持续学习为人力资源管理提供了一种方法,可以逐步探讨能力的组织需求,并将这些需求转换为能力画像。此处定义的能力画像是在产生特定结果的某个Bloom(Bloom’s Taxonomy)级别上的知识、技能和行为集合,然后说将能力画像合并为依次形成功能模式,这样就获得了一个敏捷的工作空间。持续学习是在持续学习模式的基础上进行讨论的,该模式可以逐步将价值链战略转化为员工的个人路线图。本部分还介绍了如何根据变更经理的范式和架构原则与模型在组织中设置持续学习。
8.第八部分:DevOps持续评估
持续评估是一种旨在使DevOps团队在业务、开发、运营和安全领域不断发展知识和技能的方法。持续评估为DevOps团队提供了一个工具,使其了解发展现状以及后续步骤。
在商业案例、两种评估模型的体系结构和评估问卷的基础上,本部分对持续评估进行了讨论。DevOps多维数据集模型基于这样的理念,即可以从一个多维数据集的六个不同角度来查看DevOps,即“流程”“反馈”和“持续学习”“治理”“流水线”和“质保”。DevOps CE模型基于持续万物的视角:“持续规划”“持续设计”“持续测试”“持续集成”“持续部署”“持续监控”“持续学习”“持续评估”。
五、附录
附录包含重要信息,有助于更好地了解相关内容。
六、阅读指南
本书中的缩略词数量有限。但是,出现的术语以缩写的形式显示出来,以提高可读
性。附录二列出了这些缩写。