扫码阅读
手机扫码阅读

源自精益思想的 DevOps

44 2024-02-01




吴清晨

正在 DevOps 路上匍匐前进


DevOps 好比一个大熔炉,它集百家之长,体内融合流淌着多方优质的基因。

/ DevOps 大熔炉

DevOps 广泛吸收了各行各业优秀的经验成果,容纳了包括精益、约束理论、丰田生产系统、柔性工程、学习型组织、安全文化、人员优化因素等这样的知识体系,还参考了高信任管理文化、服务型领导、组织变动管理等方法论。

DevOps 有选择地汲取其中最为有价值的原则,将它们贯彻到整个交付流程当中。这其中给DevOps 带来了极大影响的便是精益思想,可以说 DevOps 是把精益思想应用到技术价值流中的结果。

那么精益思想是什么?技术价值流又是什么?DevOps 又是如何应用精益思想的呢?

/ 三问

什么是精益思想?

精益思想源于20世纪80年代日本丰田发明的精益生产方式,精益生产方式大大提升了日本汽车的质量与成本优势,一度压得美国汽车抬不起头,使得世界汽车工业重心向日本倾斜。

精益原则更进一步从理论的高度,归纳了精益生产中所包含的新的管理思维,并将精益方式扩大到制造业以外的所有领域,尤其是第三产业,把精益生产方法外延到企业活动的各个方面,不再局限于生产领域,从而促使管理人员重新思考企业流程,消灭浪费,创造价值。

精益思想的核心就是(消除浪费)以越来越少的投入——较少的人力、较少的设备、较短的时间和较小的场地,创造出尽可能多的价值;同时也越来越接近用户,提供他们确实要的东西。

/ 精益思想核心

践行精益思想有着如下的步骤:

第一步:精确地定义价值,这是关键性的一步。

第二步:确定每个产品的全部价值流。

第三步:要使保留下来的、创造价值的各个步骤流动起来,使需要若干天才能办完的订货手续,在几小时内办完,使传统的物资生产完成时间由几个月或几周减少到几天或几分钟。

第四步:及时跟上不断变化着的顾客需求,因为一旦具备了在用户真正需要的时候就能设计、安排生产和制造出用户真正需要的产品的能力,就意味着可以抛开销售,直接按用户告知的实际要求进行生产,这就是说,可以按用户需要拉动产品,而不是把用户不想要的产品硬推给用户。

/ 精益思想践行之路

上述的步骤涉及到了精益思想中的一个十分重要的概念——价值流。

那么什么是价值流呢?

什么是价值流?

价值流有如下的定义:

“一个组织基于客户的需求所执行的一系列有序的交付活动。”


“为了给客户设计、生产和提供产品或服务所需从事的一系列活动,它包含了信息流和物料流的双重价值。”

简单以制造业中的一个具体例子来说明就是,价值流始于接收到客户订单并将原材料发往工厂,结束于将订单产品交付到用户手中。

/ 制造业中的价值流

在价值流中涉及了两个重要的概念——前置时间、处理时间。

它们是度量价值流性能的重要指标。在精益思想中,前置时间被视作是提升质量、客户满意度和员工幸福度的最佳度量指标之一。

下面我们来具体看看,

前置时间、处理时间这两个指标。

什么是前置时间、处理时间?

前置时间在工单创建后开始计时,到工作完成时结束。

而处理时间则从实际开始处理这个工作时才开始计时,它不包含这个工作在队列中排队等待的时间。

/ 前置时间与处理时间

因为前置时间是客户能够体验到的时间,所以我们把重点放在缩短前置时间而不是处理时间上。

处理时间与前置时间的比率是十分重要的效率指标,为了实现快速的流动并缩短前置时间,必须缩短工作在队列中的等待时间。

大致了解完什么是精益思想后,

接下来让我们看看,

什么说, DevOps 是把精益思想应用到技术价值流中的结果。

技术价值流

首先,DevOps 将源自制造业的价值流概念引入到软件开发中,得到了所谓的“技术价值流”概念,与之相对于的定义是:

“技术价值流是把业务构想转化为向客户交付价值的、由技术驱动的服务所需要的流程”。

具体而言,技术价值流始于开发团队接受开发任务,在此之后开发团队将开发任务的种种想法转化为用户故事以及各种功能性说明,接着编码实现,将代码提交到版本控制库,进行测试,最后终止与软件的部署。

/ 一个具体的技术价值流

如果将技术价值流简单分为两个部分,那么我们可以很容易看到精益思想与 DevOps 的联系。

价值流的第一阶段主要包括设计和开发,这一阶段类似于精益中的产品开发,具有高度的可变性和不确定性,不仅需要创意,某些工作还可能无法重来,这导致无法确定总体处理时间。

第二阶段主要包括测试和运维,这一阶段类似于精益中的产品制造,需要专业技术,力求可预见性和自动化,将可变性降到最低,最终满足业务目标。

/ 两种价值流的对应关系

在技术价值流中同样也有着精益思想里的价值流性能独立衡量指标——前置时间、处理时间。

在精益思想的指导下, 我们提高价值流性能的方式同样是力求缩短前置时间。

而在实际中,很多开发情形下前置时间是十分长的。

常见的场景:为期数月的部署前置时间

许多开发团队因为少有集成测试的环境,并且严重依赖手动测试或者需要各种审批流程,技术价值流变得异常复杂,最终导致部署前置时间动辄需要好几个月。

部署前置时间过长不仅直接影响了客户体验,还积累了开发中的大量问题,而这些问题往往直到临近交付的时候才被发现,修复这些问题又需要花费大量时间,从而间接带来了糟糕的用户体验。

为了解决前置时间过长的问题,

我们将精益思想引进了软件开发,

也就是DevOps。

DevOps实现分钟级别的部署前置时间

DevOps的目标是:开发人员能快速、持续地获得工作反馈,能快速和独立地开发、 集成和验证代码,并能将代码部署到生产环境中,实现分钟级别的部署前置时间。

为了实现这个目标,DevOps有一个它自身的工作“三步法”,

在这个三步法中我们可以看到精益思想的影子。

DevOps工作三步法

第一步:实现开发到运维的工作快速地从左向右流动。

通过加快技术价值流的流速,缩短满足内部或者外部客户需求所需的前置时间,尤其是缩短代码部署到生产环境所需的时间,可以有效地提高工作质量和产量,并使企业具有更强的外部竞争力。

为了最大程度地优化工作流,需要将工作可视化,减小每批次大小和等待间隔,通过内建质量杜绝向下游传递缺陷,并持续地优化全局目标。

相关的实践包括持续构建、集成、测试和部署,按需进行环境搭建,限制在制品数量,构建能够安全地实施变更的系统和组织。

第二步:在从右向左的每个阶段中,应用持续、快速的工作反馈机制。

现代流程优化方法的一个核心原则就是及时发现并控制问题,直到拥有有效的对策,可以持续地缩短反馈周期和放大反馈环。

在这一步中,我们通过放大反馈环防止问题复发,并能缩短问题检测周期,实现快速修复。通过这种方式,我们能从源头控制质量,并在流程中嵌入相关的知识。这样不仅能创造出更安全的工作系统,还可以在灾难性事故发生前就检测到并解决它。

第三步:建立具有创意和高可信度的企业文化,支持动态的、严格的、科学的实验。

通过主动地承担风险,不但能从成功中学习,也能从失败中学习。

通过持续地缩短和放大反馈环,不仅能创造更安全的工作系统,也能承担更多的风险,并进行试验帮助自己比竞争对手改进得更快,从而在市场竞争中战胜他们。

以上就是 DevOps 的三步工作法,可以看到 DevOps 将精益思想的应用范围扩展到了软件开发,让精益原则在加速交付的领域里大放异彩。

原文链接: http://mp.weixin.qq.com/s?__biz=Mzg5MzUyOTgwMQ==&mid=2247488653&idx=1&sn=75707ce3732589738b571d69d0eaa14e&chksm=c02c2f2bf75ba63d014141460f9959c2caba6f7056d4133af620fc7b09c6292df02ed6764472#rd