基于Serverless Argo构建大规模高效低成本CI Pipeline

ACK One的分布式工作流Argo集群(简称工作流集群)作为一款完全遵循社区规范的全托管式Argo Workflows服务,致力于应对大规模计算密集型作业,通过集成阿里云ECI实现自动扩展、按需扩容以及弹性扩缩容,并支持使用Spot ECI(抢占式ECI实例)可以大幅降低使用成本。基于工作流集群可以帮助您构建更加云原生、大规模、高效率和低成本的CI Pipeline。本文为您介绍基于工作流集群构建的CI Pipeline方案的优势、解决的问题、方案架构及最佳实践操作。

方案优势

Argo Workflows构建在Kubernetes之上,伴随Kubernetes一起经过了长时间大量使用者的考验,其Autoscaling和并发等能力,使得Argo Workflows可以处理大规模的Pipelines,并具有更快的运行速度和更低的使用成本。开发者能够更加聚焦于业务功能,专注为客户提供和传播更多的产品价值。

并且Argo Workflows支持与Argo生态的Argo CD、Argo Rollout、Argo Event无缝集成,为CI等场景提供更强大的能力。

您可以基于Argo Workflows来构建更加云原生、大规模、高效率、低成本的CI Pipeline。

相较于Jenkins,Argo Workflows有诸多优势。具体差异如下:

对比项

Argo Workflows

Jenkins

是否为Kubernetes原生

Kubernetes原生,因此也具有K8s管理容器的部分优势,如:

  • 容器故障后自动恢复。

  • 弹性伸缩。

  • 支持RBAC权限管理,配合Argo的集成SSO能力,更容易实现企业的多租隔离场景。

非Kubernetes原生

Autoscaling、并发性、使用性能

  • Argo一般被用来处理大规模Pipeline项目,支持自动扩展。

  • 可并发运行,执行效率更高。

  • Jenkins更适合规模较小的场景,在处理大量Pipelines时,性能下降。自动扩展能力差。

  • 并发不足,运行时间长。

使用成本

  • 支持自动伸缩,使成本最小化。

  • 原生支持Spot ECI运行任务,降低使用成本。

Jenkins采用空闲计算容易造成成本浪费。

社区与生态

Argo社区不断壮大,与其生态的Argo CD、Argo Rollout、Argo Event的无缝集成,为CI等场景提供更强大的能力。

Jenkins社区成熟、资源丰富,大量插件降低使用门槛。

但随着时间推移,插件更新和权限管理极大增加运维成本,使开发者投入更多精力在维护插件上,而非聚焦业务功能和为客户提供价值。

解决问题

  • 可应用于Kubernetes原生的CI系统。

  • 使用性能不会随着Pipeline的数量增加而衰减。

  • 自动扩展能力和并发能力强,可支持Pipeline快速运行,减少空闲计算造成的成本浪费。

  • 支持RBAC权限管理,集成Argo的SSO能力,可实现企业的多租户隔离场景。

  • 支持Spot ECI(抢占式ECI实例)运行任务,可大幅降低使用成本。

方案架构

image

最佳实践操作

具体最佳实践操作,请参见基于分布式工作流Argo集群构建大规模、高效率、低成本CI Pipeline

相关文档

了解更多工作流集群信息,请参见分布式工作流Argo集群概述