本节书摘来自华章计算机《DevOps实战:VMware管理员运维方法、工具及最佳实践》一书中的第2章,第2.1节,作者:小特雷弗 A. 罗伯茨(Trevor A. Roberts Jr.)乔希·阿特韦尔(Josh Atwell)埃格勒·西格勒(Egle Sigler)著,更多章节内容可以访问云栖社区“华章计算机”公众号查看
第2章 DevOps工具
2.1 为成功而组织:看板
传统的运营团队任务管理通常涉及某种单据系统。故障单据很适合于跟踪问题,并在问题解决以后进行历史分析。故障单据系统的问题在于,它们给应该相关的任务之间的关联带来了困难。另一个挑战是生产交付瓶颈根源的识别。而且,工作者们可能无法看到其他人处理的故障单据,从而无法借助他人的专业知识。最后,管理工作过程、避免过度分配运营团队成员的最佳途径是什么?也就是说,如果运营团队总是专注于堆积如山的指派任务,他们何时才有时间改善系统,偿还技术债务呢?我们如何正确排定工作的优先级,考虑任务之间的依赖性?
看板(Kanban,字面翻译为“标记卡片”)系统有助于解决这些问题,以及其他的一些问题。这种方法是Taiichi Ohno在开发丰田制造系统时为了实现即时生产(JIT)目标而开发的,它通过检查制造过程不同步骤的流程,识别需要补救的瓶颈,使系统更加高效。具体的思路是,缓解瓶颈,就会将工作任务从在途状态带到完成状态。限制在途工作可以为工作者带来空闲时间,对制造过程进行改进(例如,在缓解旧瓶颈的同时识别和消除新瓶颈)。图2-1展示了制造过程的估计完成时间没有实现的例子。
随着工作流从原材料输入到制造过程,最后进入装配过程,我们可以看到估算的完成时间和实际不符。装配过程似乎有某些问题。在进一步调查中,工厂工人们可能发现在金属薄板上喷涂特种涂料的过程效率不高。例如,服务器面板制造过程的输入可能表现出没有正确应用涂料的信号,所以进行返工,导致整个过程的效率不高。如果喷涂过程中固定薄钢板的托架没有超载,输出产品的制造可能从一开始就是正常的,不需要太多的返工。
在前一个例子中,如果工人埋头修复没有正确喷涂的金属薄板,而没有去识别问题的真正根源,就会继续浪费精力。我们从来没有在IT运营工作流中看到这种问题,对吗?
你可能会觉得奇怪,我们为什么在关于DevOps工具的章节中讨论制造工程组织方法。但是,在成功地改变工作方式之前,我们必须用一种条理性的方法来安排工作、识别系统中的问题。
尽管看板是制造中的一个学科,但是通过David J.?Anderson和其他人的努力,将精益的概念与丰田的看板方法相结合,在IT业流行起来。我们不对看板做全面介绍,但是将讨论有助于IT运营团队的关键点。
看板系统最重要的特征是工作过程管理。在新工作请求时分配所有IT运营人员会造成效率低下,这一点似乎有些违反直觉。但是,运营团队面对和制造团队类似的问题。例如,如果团队使用预先制作的ISO金映像构建服务器,如果金映像有一段时间没有更新,那么在需要人工更新应用程序和打补丁时就有可能出现错误。如果团队的管理者将重点主要放在满足服务器请求,以至于100%的工作人员都参与这类工作流,而没有寻找改善过程效率的方法,这样的情况还会持续。不过,人为的错误可能引起失败,重要的安全更新可能遗漏,容易遭到攻击的端口保持打开,必须加以补救才能确保服务器不会遭到攻击。团队可能习惯于这种低效的状态,管理层也对产量感到满意。但是,很多时间浪费在这种重复劳动上,这种状态被称作“技术负债”。
技术负债是在计划好的工作期间,由于错误或者效率低下造成的所有计划外工作。运营团队需要充分的时间进行系统改进,即使这一工作没有相关的具体可交付成果。我并不是为运营团队的“游手好闲”辩护(经理们可能这么想)。运营团队看上去似乎很高效地服务于当前的客户需求,但是,当公司希望很快增加运营规模时会发生什么情况?现有的工作流不能停止,在你遇到没有准备好解决方案的伸缩性问题时,就要对系统进行改进。如果现在已经遇到某些这类问题,积极调查并缓解瓶颈,可以帮助你增进效率。
看板的另一个重要特征是工作流自始至终的可视化。最流行的展示方式是看板图,它可以采用物理或者数字形式。图2-2展示了可供第1章介绍的DevWidgets公司使用的看板图示例。
图2-2 在线看板图
看板图的思路是每个任务由一张索引卡或者即时贴(也被称作看板)表示,在看板图左侧的“积压工作”(Backlog)分类下排队。“积压工作”和“完成”(Done)之间的栏目代表工作过程。在工作任务移出积压工作栏时,在它们上面放置工作过程(WIP)限制(例如,4/4和5/5)。在一张看板移到工作流的下一栏之前,不应该在WIP栏上放置其他工作。
图2-2展示了不同的任务行——也称为泳道。这些泳道对应于不同类型的工作(例如,新产品、维护和缺陷)。正确地为工作分类有助于优先级的排定。
团队第一次开始使用看板时,WIP限制可以根据过去的经验设置。以后,随着瓶颈的缓解和团队效率的改进,这些限制可以更改,这样团队就可以随着时间的推移不断寻求工作流的改善。记住,目标是持续改善,同时避免团队100%投入新的任务。如果你对在团队中引入看板方法感兴趣,咨询该学科从业者中的佼佼者(如Dominica DeGrandis或精益看板大学认可的从业者)是值得的。你的看板图不一定要和图2-2中的相似,目标是开发对团队有意义的清晰、实用系统。