在快节奏的 DevOps 世界里,流水线 和 工作流 常常被混为一谈,但真相是,它们在实现软件快速、高效交付的过程中扮演着截然不同的角色。Jenkins 在新建 Pipeline 时的描述,无意中揭示了这一混淆:“Pipeline Orchestrates long-running activities... Suitable for building pipelines (formerly known as workflows)... ” 这让我们不禁思考,Zadig 为何坚持使用“工作流”这一称呼。今天,我们将揭开这背后的奥秘。
流水线,作为工业时代的象征,以其无可匹敌的效率和精准度彻底改变了生产方式。然而,《百年流水线的前世今生》一文提醒我们,“过度自动化是一个错误,人类被低估了”。这不仅是对过去的反思,也是对未来的启示。在 DevOps 领域,我们同样面临着如何实现“人机融合”的挑战,以保持生产流程的弹性和适应性。
在这一背景下,Zadig 工作流应运而生。它不仅保留了流水线的自动化优点,还通过可视化编辑器,让用户能够轻松在工作流中添加人工处理步骤,满足 DevOps 对自动化和人工卡点的双重需求,保障软件迭代更顺畅、质量更高。
工作流 Vs. 流水线
在 DevOps 领域,流水线和工作流的概念有何不同?
1. 工作流(Workflow) :
- 定义:工作流是一系列相互关联的任务和活动的集合,旨在实现特定的业务目标。在 DevOps 中,工作流通常涵盖了从需求分析、设计、开发、测试、部署到运维的整个软件开发生命周期。
- 特点:工作流强调各团队之间的协作,其中既包含自动化任务,也存在需要人工参与完成的任务。
2. 流水线(Pipeline) :
- 定义:流水线是一种自动化的流程,用于将软件从开发阶段逐步推进到部署阶段。它通常由一系列连续的任务组成,每个任务执行特定的操作,如代码编译、测试、打包和部署等。
- 特点:流水线中的任务具有自动化、可重复性,并且是按照线性顺序执行的。
其实 Zadig 从一开始就实现了工作流,并兼顾了流水线的能力。它关注软件开发的整个生命周期,致力于实现从代码到生产发布的全过程。这涉及到开发、测试、运维等多个团队的交互与协作,且能依据项目实际情况灵活调整流程。
Zadig 工作流的演进
Zadig 的第一代工作流引擎「产品工作流」以其极简的配置和全流程自动化编排能力赢得了用户的广泛好评。然而,面对日益复杂的用户场景,需要更多的能力编排,例如配置、数据、任务项变更等,原有的工作流模式在扩展性上显得力不从心。为了解决这一挑战,Zadig 第二代工作流引擎应运而生,它在设计上采用了创新的横纵结合策略。
在横向上,第二代引擎增强了工作流的串联能力,使得人机协同更加顺畅。在纵向上,它扩展了任务类型,允许更多的工具和功能集成。这种设计不仅提升了自动化任务的执行效率,更重要的是,它为流水线中的人工介入提供了更为友好的接口和机制。这种改进确保了在流水线需要人工调整时,用户可以灵活地进行必要的干预,从而显著提高了流水线的适应性和可控性。
第一代产品工作流
第二代工作流引擎
Zadig 工作流能力介绍
Zadig 工作流支持并行构建、部署、测试,提升代码验证效率,内置 40 +个官方任务类型,满足通用的工程交付流程自动化场景。通过自定义任务的开发,支持与外部系统对接,包括企业自建系统和第三方系统,以满足企业特异化流程编排。
目前,Zadig 针对不同协作场景提供了以下几个人工介入点:
- 审批:在生产发布过程中,需要开发、测试、运维和安全等部门负责人审核确认后才能上线,防止潜在问题,确保所有发布符合企业规范。
- 阶段手动执行:在自动化任务继续前,可以指定执行人,并在执行时重新输入执行参数,提供灵活性,应对复杂情况。
- 任务失败策略:自动化任务失败时,可以选择自动忽略、重试或人工介入确认是否继续执行,保障流程连续性,及时干预错误。
人工审批
Zadig 工作流具备人工审批功能,工作流会暂停并等待审批通过才能继续。目前,Zadig 支持系统内审批以及与飞书、钉钉、企业微信等平台的集成审批。具体如何配置和使用参考官方文档。这样,团队可以根据习惯选择合适的审批方式,确保工作流的顺利执行。
阶段手动执行
阶段支持两种方式执行方式:「自动」和「手动」,在手动执行模式下,用户可以指定具体人员来负责执行任务,还可以在执行阶段重新输入或调整任务的参数。这样使得工作流在保持自动化带来的高效率的同时,也能适应那些需要人工决策和干预的复杂情况。
任务失败策略
Zadig 工作流任务支持更为精细的失败策略配置,其中包括了一项重要的介入策略——「人工确认」。这一策略的设计宗旨是在任务遇到失败时,提供一个决策点,要求操作者介入并做出判断:是选择忽略当前任务的失败并继续执行后续步骤,还是决定停止整个工作流的执行。确保在面对意外情况时,能够根据实际情况做出最合适的决策,从而有效平衡自动化效率与人工干预的必要性。
通过这些人工介入点的设计,Zadig 工作流提高了灵活性和适应性,确保在关键决策点引入必要的人工判断和干预,助力团队高效协作,保障软件发布质量和安全。
即日起,Zadig 新版发布
扫码咨询抢先体验