以TBD为关键路径的配置管道


历史上,所有组织的重点都是努力在最短的时间内以最佳的质量和成本交付软件。作为实现这一目标的一种手段,组织一直在尝试各种技术、工具、方法和框架。能够做到这一点并满足所有关键参数的组织能够满足客户的期望并在市场中向前发展。因此,许多组织将上市时间(TTM)、质量和成本作为其年度目标的关键关键绩效指标。

根据2016 State of DevOps Report由Puppet and DORA (DevOps研究与评估)出版,高绩效员工的部署频率是低绩效员工的200倍,交付周期快2555倍。它们还有最快的恢复时间和最低的更改失败率。

各种技术和实践累积在连续交付的大伞下,可以帮助组织更快地交付软件,同时提高质量和优化成本。

据观察,软件是出了名的难以运输。为了解决这一问题,一个重要的概念上的连续交付实践有助于促进这一需求,这就是连续集成,当它与基于主干的开发(TBD)一起实施时,会更有效。

竞争情报也可以在没有TBD的情况下进行,但是当我们使用TBD的时候,竞争情报的全部效果就会显现出来。TBD是谷歌等高绩效组织的常态。对TBD的关注是最近才被观察到的,尽管一些团队已经做得更早了。TBD和竞争情报之间的联系可能并不明显,但当我们深入研究时,我们可以直观地观察到,高层次的持续整合是通过TBD逐步巩固的。

此外,当所有成员都在同一个分支上工作时,这增加了对每个成员所做工作的可见性,减少了重复工作,并增加了协作。可视化管理指标是精益和敏捷中的一个关键概念,TBD提供了一种实现这些目标的方法。

关键路径是项目管理领域的一个术语,描述了一套工具、方法和手段。关键路径是一系列链接工作包中松弛量最小的路径。因此,借用这个类比并对其进行调整,并将其应用到软件开发中,如果我们满足关键路径的要求,并且我们知道关键路径所花费的时间,我们就可以采取措施,通过自动化和其他技术将关键路径最小化,从而缩短上市时间。

在软件开发的情况下,关键路径是部署管道。部署管道促进了与TBD的有效工作流,部署管道是从构建到生产的关键路径。关键路径上的任何延迟都会影响应用程序的上市时间。

如果应用程序交付是沿着从构建(主干到主线)到生产的这个管道建模的,那么成员就可以看到它,并将其持续部署到生产中。此外,这种可见性也转化为可靠性,因为可见的东西可以得到适当的管理,并提高了可靠性。管道通常被建模为一系列阶段,因为这再次与阶段向管道提供的高可见性相关联。

如果在部署管道的任何阶段有任何故障,我们可以很容易地将其隔离,而不是像单级管道那样花费太多时间来确定问题在管道中的什么位置。这也考虑了模块化的概念,以使整个部署过程可见。

在被合并到主干中之前,具有非常短的生命周期(不到一天)的分叉最多具有两个活动分支,将代码合并到主干或分支中是需要管理的重要方面,这些类型的准则有助于提高性能。此外,没有代码冻结期(当人们不能合并代码或拉请求时)的团队也能获得更高的性能。

类似地,正如我们有基础设施即代码(IaC)一样,我们也有流水线即代码(PaC),它描述了一组允许Jenkins或其他配置项用户用代码定义流水线作业过程的特性,这些代码存储在源代码库中并进行版本控制。这些功能允许Jenkins/其他配置项工具发现、管理和运行多个源存储库和分支的作业,从而消除手动创建和管理作业的需要。

这自动缩短了关键路径的时间,如果是手动完成,这是不可能的。正如我们所观察到的,所有自动化或缩短关键路径的活动都会缩短应用程序的上市时间。最大限度缩短关键路径持续时间的技术之一是PAC概念,它有助于自动化所有活动,从而减少应用程序的TTM。

因此,使用部署管道的光盘工具可以支持TBD的工作流。这反过来又会缩短上市时间。通过改善客户关系和客户满意度以及满足不断变化的市场需求的能力,组织从这一时间缩减中获益。

因此,以基于主干的开发(TBD)为关键路径的部署管道是持续交付实践实施过程中的一个重要关注领域。