软件开发交付 源代码-价值流映射的三个度量和版本控制的重要性
1.价值流的三个度量:前置时间、完成准确率,流程时间。为了满足需求而按顺序排好的一些列活动,成为价值流。
2.价值流映射:致力于可视化价值流的工作。
3.映射的两个步骤:创建当前as-is流图;创建未来to-be图。
4.价值流映射有助于有优化业务流程。
5.研究未来to-be流图的重要性:有助于避免局部优化;理解目标状态,是的我们能够基于清晰的改进目标来启动实现的改进机制。
6.价值流思维是Devops的核心:关键度量(LT,PT,%C/A);可视化展现,创建价值而非动作;避免局部优化陷阱(约束理论),
Devops的关键想法从每一步到下一步而到顺畅且统一的流动,有节奏软件开发交付 源代码,没有不必要的延迟且有最优的资源利用率,实现持续交付。
7.部署流水线的理念:节约资源,确保产品质量,加速度生成环境的变更交付,不断在审计日志中保留记录
8.版本控制理念:不仅要存储源代码,还要存储于IT系统相关的所有内容:测试,用于创建和修改数据库的脚本,构建脚本,环境创建脚本,部署脚本,人工产出物,库文档,配置文件,开发工具。
9.版本控制的重要:
原则允许对允许中的系统的所有组成部分进行前所未有的控制,而其他工具无法实现。
需要改变工作在信息和配置上的变化
结果:能够确定更改内容,何时以及由谁更改,能够在过去的任何时候恢复系统,包括以最小的努力将故障系统恢复到保证的工作状态。允许团队中的任何成员自由的删除不必要的文件和文档,而不会有意外丢重要的信息或产品风险。
10.配置管理的理念:整合了生产环境和其它环境的管理;对于环境的任何更改都只会由脚本维护并存在版本管理系统里。
当部署流水线在执行时,环境会自动生成,该原则要求对IT支持和运营的工作进行全面重组,实际上,现在管理员无权以以往的方式更改生成环境中的任何内容。
11.配置管理的重要:
优势是版本控制,所有的变化都受控制,系统可以快速恢复到稳定状态,如果关键成员离开,知识也不会丢失。
12.Devops完成的定义:是客户收到或者开始收到他们的期望价值。生产环境要完全资讯整个价值流。
DevOps的三大原则:
1、基础设施即代码(Infrastructure as Code)
DeveOps的基础是将重复的事情使用自动化脚本或软件来实现,例如Docker(容器化)、Jenkins(持续集成)、Puppet(基础架构构建)、Vagrant(虚拟化平台)等
2、持续交付(Continuous Delivery)
持续交付是在生产环境发布可靠的软件并交付给用户使用。而持续部署则不一定交付给用户使用。涉及到2个时间,TTR(Time to Repair)修复时间,TTM(Time To Marketing)产品上线时间。要做到高效交付可靠的软件,需要尽可能的减少这2个时间。部署可以有多种方式,比如蓝绿部署、金丝雀部署等。
3、协同工作(Culture of Collaboration)
开发者和运维人员必须定期进行密切的合作。开发应该把运维角色理解成软件的另一个用户群体。协作有几个的建议:1、自动化(减少不必要的协作);2、小范围(每次修改的内容不宜过多,减少发布的风险);3、统一信息集散地(如wiki,让双方能够共享信息);4、标准化协作工具(比如jenkins)
附上DevOps的定义:
DevOps(Development和Operations的组合词)是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。
价值流来自生产线,汽车制造工厂装配线,流经水管的液体或其他物质。
部署流水线:持续集成软件开发交付 源代码,持续交付,持续部署。