赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 分布式云容器平台ACK One
  4. 操作指南
  5. 分布式工作流Argo集群
  6. 最佳实践
  7. 基于EventBridge的事件驱动CI Pipeline

基于EventBridge的事件驱动CI Pipeline

  • 最佳实践
  • 发布于 2025-04-18
  • 0 次阅读
文档编辑
文档编辑

基于事件总线EventBridge和分布式工作流Argo Workflows,可以构建高效、快速、低成本的事件驱动自动化CI Pipeline,大幅简化和加速应用交付过程。本文介绍如何构建基于事件驱动的自动化CI Pipeline流程。

前提条件

  • 已开通分布式云容器平台ACK One。

  • 已开通阿里云弹性容器实例ECI。

  • 已开通事件总线EventBridge并授权。

  • 已创建工作流集群。

  • 已创建文件系统。

  • 已创建企业版实例。

  • 已授予RAM用户AliyunAdcpFullAccess权限。具体操作,请参见为RAM用户授权。

概述

基于事件驱动的自动化CI Pipeline,包含2部分:

  1. 基于Git事件的触发,代码提交到Git仓库时,触发相应的事件。

  2. CI系统运行构建前的测试,构建Docker镜像,并推送至镜像仓库。

镜像构建成功后,可使用CD系统(如ACK One GitOps)将新的Image Tag同步到Kubernetes集群中。

image

在本实践中,事件驱动方案采用了在可用性、易用性、安全性、可扩展性等多方面具有优势的事件总线EventBridge,CI部分基于CNCF毕业项目Argo Workflows来构建。ACK One工作流集群全托管Argo Workflows,提升了稳定性、可观测等性能,提供运维能力,帮助您实现更大规模、具有更快的运行速度和更低成本的CI Pipeline。

image
  1. 用户向Git仓库提交代码。

  2. EventBridge根据配置的规则,捕获Git事件并将其传递给ACK One工作流集群,从而触发CI工作流的执行。

  3. 基于ACK One工作流集群的CI工作流构建Docker Image,并推送至镜像仓库中。之后可通过GitOps自动同步相应镜像变化至ACK集群。

步骤一:在ACK One工作流集群中准备CI环境

  1. 创建ACR EE访问凭证并挂载NAS存储卷。具体操作,请参见基于工作流集群构建Golang项目的CI Pipeline中的步骤一和步骤二。

    说明

    请确保命名空间与Workflow资源保持一致。

  2. Apps Code Repo示例为echo-server项目,请将其Fork到您自己的GitHub账号下,并参考在CI Pipeline中Clone私有Git仓库来修改WorkflowTemplate。

步骤二:使用EventBridge实现Git事件驱动CI Pipeline

  1. 创建自定义事件总线。

  2. 事件总线EventBridge与GitHub进行集成对接。具体操作,请参见GitHub集成。

  3. 配置事件规则(可选),以下为本示例配置内容。详细配置事件规则的方式,请参见管理事件规则。

    1. 事件模式:如下设置为只触发来自release-v1分支的变更。

      {
          "source": [
              "github.event"
          ],
          "data": {
              "body": {
                  "ref": [
                      "refs/heads/release-v1"
                  ]
              }
          }
      }
      
    2. 配置事件目标。

      1. 服务类型:选择容器服务Kubernetes。

      2. 集群配置文件 KubeConfig:输入ACK One工作流集群的KubeConfig。

      3. YAML配置:本示例选择模板。

      4. 变量:增加workflowName,配置事件ID。

        {
        	"workflowName": "$.id"
        }
      5. 模板:填入Workflow CI CR。以下示例仅供参考,请根据您的实际信息构建CR。

        重要

        资源配置的要求是必须明确设置name和namespace,不能使用generateName。如果资源属于默认命名空间default,也必须声明。

        apiVersion: argoproj.io/v1alpha1
        kind: Workflow
        metadata:
          name: ci-go-v1-eb-${workflowName}
          namespace: default
          labels:
            workflows.argoproj.io/workflow-template: ackone-ci
        spec:
          arguments:
            parameters:
            - name: repo_url
              value: https://github.com/ivan-cai/echo-server.git
            - name: repo_name
              value: echo-server
            - name: target_branch
              value: release-v1
            - name: container_image
              value: "YOUR-IMAGE-REGISTRY-ADDRESS"     # 容器镜像库的地址,请根据您的实际信息替换.
            - name: container_tag
              value: "v1.0.0"
            - name: dockerfile
              value: ./Dockerfile
            - name: enable_suffix_commitid
              value: "true"
            - name: enable_test
              value: "true"
          workflowTemplateRef:
            name: ci-go-v1
            clusterScope: true
      6. 网络访问:本示例选择公网。

  4. 根据上述配置,当您在GitHub仓库的release-v1分支上进行代码修改并提交时,该操作会触发自动化流程,您可以通过以下方式验证。

    1. 查看事件轨迹。

      1. 登录事件总线EventBridge控制台,在左侧导航栏,单击事件总线。
      2. 单击对应事件总线名称,在左侧导航栏,单击事件追踪。

      3. 进入事件追踪页面,可查看对应事件轨迹。

        image

    2. 查看新建的Workflow的执行拓扑。

      在ACK One工作流集群查看新建的Workflow的执行拓扑。具体操作,请参见开启Argo Server访问工作流集群。

      image

相关文章

迁移Batch批量计算到分布式工作流Argo集群 2025-04-18 18:08

批处理作业(Batch)通常用于数据处理、仿真计算、科学计算等领域,往往需要大规模的计算资源。分布式工作流Argo集群基于开源Argo Workflows项目开发,完全符合开源工作流标准。通过工作流集群,您可以轻松编排工作流,每个工作流步骤使用容器运行,可以在短时间内轻松运行大规模机器学习、仿真计算

使用Argo Workflow编排动态DAG Fan-outFan-in任务 2025-04-18 18:08

在工作流编排过程中,为了加快大任务处理的速度,可以使用Fan-out Fan-in任务编排,将大任务分解成小任务,然后并行运行小任务,最后聚合结果。分布式工作流Argo集群(简称工作流集群)支持动态DAG方式编排Fan-out Fan-in任务,可按需调度云上算力、利用云上弹性可调用数万核CPU资源

使用Argo Workflows编排基因计算工作流 2025-04-18 18:08

在基因计算这一高度复杂且数据密集型的领域,科研人员和生物信息分析师面临着严峻挑战,这不仅体现在数据量的爆炸性增长上,还在于需要高效、准确地整合和分析数据,以揭示生命的奥秘。为应对这些挑战,工作流自动化编排成为关键技术,其中,Argo Workflows以其容器化、灵活性和易用性脱颖而出,成为串联基因

使用Argo Workflows安全高效管理文件 2025-04-18 18:08

工作流集群是一个全托管的Argo服务,专注于高效安全的文件管理,并提供了一些增强功能。它在批处理、数据处理和持续集成等场景中比标准的Argo Workflows更具优势。本文将介绍工作流集群如何实现高效安全的文件管理。 复杂工作流编排的存储难题 Argo Workflows<

使用Python SDK构建大规模Argo Workflows 2025-04-18 18:08

Argo Workflows是一个强大的工作流管理工具,广泛应用于定时任务、机器学习和ETL数据处理等场景,但是使用YAML定义工作流程可能会增加学习难度。Hera Python SDK提供了一种简洁易用的替代方案,Hera允许用户以Python代码构建工作流,支持复杂任务,易于测试,并与Pytho

基于EventBridge的事件驱动CI Pipeline 2025-04-18 18:08

基于事件总线EventBridge和分布式工作流Argo Workflows,可以构建高效、快速、低成本的事件驱动自动化CI Pipeline,大幅简化和加速应用交付过程。本文介绍如何构建基于事件驱动的自动化CI Pipeline流程。 前提条件

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号