You need to enable JavaScript to run this app.
导航
通过应用交付实现一套编排差异化部署
最近更新时间:2025.03.18 17:20:50首次发布时间:2025.03.18 17:20:50
我的收藏
有用
有用
无用
无用

应用交付功能以应用为核心,提供应用编排、环境管理、配置管理、应用发布等一站式能力,帮助简化云原生场景下发布微服务的复杂性,提高应用交付效率,降低发布风险。
本文以在开发环境部署 Kubernetes YAML 应用为例,为您介绍应用交付的基本能力和使用流程。开发环境关联的部署集群使用火山引擎容器服务集群。

前提条件

除 准备工作 外,您还需要完成以下操作:

  • 已创建工作区,具体操作请参见 创建工作区
  • 已准备好要部署的镜像。

步骤一:应用初始化

应用初始化包括创建应用、环境配置及应用编排。完成初始化后,应用基本可达到部署条件。

1. 创建应用

创建一个可独立交付的对外提供服务的单元。

  1. 登录 持续交付控制台

  2. 在概览页面的工作区区域,选择目标工作区名称,进入该工作区。

  3. 在当前工作区页面,选择左侧导航栏的 应用交付,  进入应用交付页面,单击 创建应用

  4. 在创建应用页面,按要求填写应用的相关配置信息。

    配置项说明

    应用显示名

    自定义应用的显示名称。本示例设置为App-demo

    注意

    该名称不是 YAML 文件中的资源名称。

    应用标识根据界面提示填写应用标识。应用标识是应用的唯一标识,创建后不可更改。应用编排 YAML 文件中预置占位符 appName 的值将采用您填写的应用标识。本示例设置为appdemo1201
    描述填写当前应用的备注信息,可以为空。
    应用类型当前仅支持 K8S YAML 应用

    成员管理

    快捷配置当前应用的组成成员,并为每个成员配置不同的权限,满足多角色协作进行应用交付的需求。

    • 添加成员:为当前应用添加成员,支持添加多个成员。
    • 权限:系统预置管理员、开发、测试、运维、只读共五种角色。每个成员支持配置一个或多个角色的权限。

    火山引擎账号默认为应用的管理员,不可取消。本示例在火山引擎账号基础上,添加一名成员,并赋予开发权限。

    部署方式当前仅支持 预置 K8S YAML 部署,即通过 K8S YAML 描述文件对应用进行部署。
  5. 填写完成后,单击 确定,弹出 应用初始化配置 下一步指引框。

2. 环境配置

系统预置了 开发测试预发生产 共四个环境等级。每个环境等级可选择预置一个环境。建议至少预置一个环境,便于后续应用编排及配置管理使用。

  1. 根据界面引导,单击 初始化 2:环境管理。
  2. 在环境管理页面,勾选需要预置环境的环境等级。本示例选择预置一个开发环境和一个测试环境。
  3. 单击 确定,弹出 应用初始化配置 下一步指引框。

3. 应用编排

对应用的 YAML 描述文件进行编排。当前支持编排 Deployment、Service、Configmap 三种资源类型的 YAML 文件。系统为您提供了 Deployment、Service、Configmap 模板文件,模板中每个参数的值均使用占位符表示,并且每个占位符已填充常用的默认值,方便您快速进行应用编排。

说明

本示例使用默认的 Deployment 和 Service 模板文件,并对 Deployment 模板文件做以下修改,为您介绍如何在应用编排中使用变量,实现不同环境下的差异化部署。变量的值会在后续的环境配置中启用和填充。

  • 为 Deployment 添加一个标签 label,label 的值使用变量 Label 填充。
  • 使用变量 Replicas 填充副本数 replicas 的值。
  1. 根据界面引导,单击 初始化 3:应用编排

  2. 在应用编排页面,左侧展示 Deployment 和 Service 的 YAML模板,右侧展示各占位符信息。您可根据需要,单击 ➕,新建更多的 YAML 文件。本示例不新增其他 YAML 文件。

    • 当前一个应用仅允许添加一个 Deployment 类型的资源。
    • 一个应用最多可添加 10 个 YAML 文件。

  3. 编排 Deployment 文件,设置标签 label。

    1. 在左侧 metadata.labels.run 参数下方输入run: "{{ .Values.label }} "
    2. 单击 提取占位符,右侧自定义占位符区域同步展示新增的自定义占位符 label。
    3. 设置自定义占位符 label 的信息。类型 选择 字符串值来源 选择 变量
    4. 在  输入框里,单击 创建配置项,  快捷创建一个自定义配置项 Label,并使用 Label 填充 值。

    alt

  4. 编排 Deployment 文件,使用变量 Replicas 填充副本数 replicas 的值。

    1. 在右侧自定义占位符区域,找到 replicas 参数,类型 选择 整数值来源 选择 变量
    2. 在  输入框里,单击 创建配置项,  快捷创建一个自定义配置项 Replicas,并使用 Replicas 填充 值。

      alt
  5. 单击 确定,弹出对话框,设置当前编排记录的生效环境。本示例选择生效至上一步预置的 开发环境 1 和 测试环境 1

  6. 单击 创建,弹出 恭喜完成应用初始化配置 的引导框,单击 我知道了,返回当前应用的发布页面。

步骤二:环境初始化

对预置环境完成初始化操作,主要是为预置环境关联待部署的集群。本示例对预置的 开发环境 1 进行初始化。

  1. 切换至 环境 页签,找到 开发环境 1,单击 环境初始化

  2. 在编辑环境页面,按要求配置参数。

    配置项说明
    环境等级显示所选环境的环境等级,本示例为 开发
    环境显示名默认为 开发环境 1,支持修改。本示例不修改。
    环境标识环境标识是环境的唯一标识,不支持修改。本示例为dev1。环境标识对应应用编排 YAML 文件中预置占位符 envName 的值。
    部署资源选择应用实际部署的位置,例如 Kubernetes 集群、云服务器、虚拟机、物理机等。当前仅支持 Kubernetes 集群类型的部署资源。此处选择前提条件中准备好的容器服务集群Demo-Deploy-Resource
    Namespace 覆盖勾选后,须填写 Namespace 名称。部署当前环境时,此处的 Namespace 名称将覆盖 YAML 中定义的 Namespace。如果待部署集群中不存在该 Namespace,将在部署时新建。本示例不勾选。
    关联配置检查配置是否符合环境诉求。此处主要进行环境初始化,可跳过。
    关联工作流查看已关联的发布工作流。此处主要进行环境初始化,可跳过。
  3. 单击 确定,完成环境初始化操作。

步骤三:启用/更新环境配置

在环境中启用配置项,为配置项赋值。本示例在 开发环境 1 启用步骤一应用编排中设置的自定义配置项 Label 和 Replicas,并为 Label 和 Replicas 在当前环境赋值。

说明

推荐开发人员先检查对应环境的配置项,完成配置更新,之后运维人员再去发起部署动作。

  1. 切换至 配置 页签。在 环境配置 标签页下,选择 开发环境 1,单击 编辑配置值
  2. 在编辑配置值页面,启用 Label 和 Replicas,并赋值。本示例中 Label 赋值为 demo1201-1940,Replicas 赋值为 3
  3. 单击 确定,完成配置项启用及赋值。

步骤四:集成外部服务

集成外部镜像仓库。建议将您自己的镜像仓库接入应用交付,部署应用时从您的仓库拉取镜像,提高镜像部署效率及安全性。

说明

使用工作流发布方式,必须先集成自己的镜像仓库。工作流发布当前仅支持从已集成的镜像仓库拉取镜像。

  1. 切换至 外部集成 页签,单击 添加外部服务

  2. 在添加服务页面,按要求填写参数信息。

    配置项说明
    名称自定义外部服务的名称,本示例名称为myharbor
    类型选择外部服务的类型。当前支持 Harbor 镜像仓库和通用的 Docker Registry 类型镜像仓库。本示例选择接入 Harbor 镜像仓库。
    地址输入待接入镜像仓库的 HTTP(S) 协议地址。
    项目输入仓库下的项目名称。
    用户名输入登录仓库的用户名。
    密码输入登录仓库的密码。
    忽略证书有效性使用 HTTPS 地址时,是否忽略证书有效性校验。本示例不勾选。
  3. 单击 校验并创建,将您的镜像仓库集成至应用交付。

步骤五:部署应用

应用交付提供立即部署和工作流发布两种部署方式。本示例将分别为您介绍两种部署方式。

  • 立即部署:直接发起部署,操作简单敏捷,适用于开发、测试环境随时发起部署,进行快速验证。
  • 工作流发布:创建一个完整的发布流程,包括工作流配置、人工审核、镜像部署、 脚本执行等环节,支持通知提醒及查看工作流实时日志,发布流程更加完善可靠。生产环境部署必须创建发布工作流。

方式一:立即部署

  1. 切换至 环境 页签,找到 开发环境 1,单击 立即部署

  2. 在立即部署页面,按要求填写部署配置信息。

    配置项说明
    应用版本显示应用编排的版本。支持单击查看当前版本的应用编排是否符合预期。

    镜像

    输入要部署镜像的完整地址,此处的镜像即对应 Deployment. yaml 文件中的镜像占位符 image.backend 的值。
    本示例使用 myharbor 仓库中的 Nginx 镜像,完整地址为 harbor.volces.com/cp-test/nginx:1.9.1

    部署策略

    支持 原生部署 和 分批发布 两种部署策略。推荐使用分批发布策略,支持分批、暂停、继续的精细化部署能力,更加可控。
    本示例使用分批发布:分 2 批,第 1 批比例为 30%,第 2 批比例为 70%。结合副本数 Replicas 为 3,则第一批发布 1 个实例,第二批发布 2 个实例(第 1 批 ≤ 1 时,向上取 1;其余批次,不为整数时向下取整)。

    环境配置

    单击 查看详情,检查配置是否符合环境诉求:启用的配置项是否正确、配置项的值是否正确。如果不正确支持快速修改。
    本示例启用 Label 和 Replicas, Label 赋值为 demo1201-1940,Replicas 赋值为 3,符合诉求。

    部署 YAML

    直观展示最终要部署的 YAML 文件。单击 查看详情,检查要部署的 YAML 文件是否符合预期。
    本示例部署 1 个 Deployment 和 1 个 Service,各参数值符合预期。

  3. 单击 确定,跳转至 运行流程 页签,开始部署。

  4. 在运行流程页签,第一批部署成功后,系统展示 部署下一批 按钮,单击后开始部署下一批。直至所有批次部署完毕。

方式二:工作流发布

本示例创建一条 人工审核 > 镜像部署 > 脚本执行 工作流,并运行工作流,为您介绍工作流发布的完整操作。

  1. 切换至 发布 页签,单击 创建工作流

  2. 在创建工作流页面,填写 工作流配置 基本信息。

    配置项说明
    名称自定义工作流名称。本示例名称为工作流 demo
    描述填写当前工作流的备注信息,可以为空。
    环境级别本示例选择 开发。
    通知提醒配置工作流消息的通知提醒方式。应用交付支持通过站内信、短信、邮件、Webhook 推送工作流消息,帮助您快速了解应用部署结果。本示例不启用。
  3. 在左侧单击 人工审核,配置人工审核的任务信息。

    配置项说明
    任务名称自定义任务名称。本示例使用默认名称。

    审批方式

    支持 会签 和 或签 两种审批方式。本示例选择或签。

    • 会签:所有审批人通过,即表示任务成功,流水线继续运行。
    • 或签:任一审批人通过,即表示任务成功,流水线继续运行。
    审批角色选择审批人的角色,本示例选择管理员。
    通知提醒支持在 待审批 和 审批失败 两种情况下发送通知。勾选通知条件后,需要进一步选择通知方式。支持站内信、短信、邮件共三通知方式。本示例不启用。
  4. 在左侧单击 镜像部署,配置镜像部署的任务信息。

    配置项说明
    任务名称自定义任务名称。本示例使用默认名称。
    镜像仓库选择部署应用时从哪个镜像仓库拉取镜像。本示例选择步骤四接入的 myharbor 仓库。
  5. 在左侧单击 脚本执行,配置脚本执行的任务信息。

    说明

    脚本执行支持使用自定义运行环境执行自定义任务,例如:数据库变更、运行一些定时任务、源码编译等。本示例主要为您介绍脚本执行支持变量传参的功能。

    配置项说明
    任务名称自定义任务名称。本示例使用默认名称。
    自定义镜像如果您需要自定义运行环境,需要上传自定义运行环境的镜像。本示例不使用。

    运行脚本

    输入您的运行脚本。执行框内支持设置占位符作为变量传参,在实际运行工作流时需输入占位符对应的值,仅支持输入常量。
    本示例输入以下脚本:

    echo {{ .Script.VALUES1}} #引入变量 VALUES1
    echo hello world
    
  6. 单击 保存,完成工作流创建。

  7. 找到刚创建完成的工作流,单击 运行。

  8. 在运行页面,按要求配置以下信息。

    • 运行配置
    配置项说明
    环境等级显示当前工作流关联的环境等级。本示例为开发。
    环境本示例选择 开发环境 1
    应用编排显示应用编排的版本。支持单击查看当前版本的应用编排是否符合预期。
    • 镜像部署配置
    配置项说明
    镜像仓库显示您创建工作流时选择的镜像仓库。

    镜像

    输入要部署镜像的地址:repo:tag。此处的镜像即对应 Deployment. yaml 文件中的镜像占位符 image.backend 的值。
    本示例使用 myharbor 仓库中的 Nginx 镜像,地址为 nginx:1.9.1

    部署策略

    支持 原生部署 和 分批发布 两种部署策略。推荐使用分批发布策略,支持分批、暂停、继续的精细化部署能力,更加可控。
    本示例使用分批发布,分 2 批,第 1 批比例为 30%,第 2 批比例为 70%。结合副本数 Replicas 为 3,则第一批发布 1 个实例,第二批发布 2 个实例(第 1 批 ≤ 1 时,向上取 1;其余批次,不为整数时向下取整)。

    环境配置

    单击 查看详情,检查配置是否符合环境诉求:启用的配置项是否正确、配置项的值是否正确。如果不正确支持快速修改。
    本示例启用 Label 和 Replicas, Label 赋值为 demo1201-1940,Replicas 赋值为 3,符合诉求。

    部署 YAML直观展示最终要部署的 YAML 文件。单击 查看详情,检查要部署的 YAML 文件是否符合预期。本示例部署 1 个 Deployment 和 1 个 Service,各参数值符合预期。
    • 脚本执行配置
    配置项说明
    配置值输入占位符 VALUES1 对应的值。本示例输入的值为 hello app demo
  9. 单击 运行,跳转至 运行流程 页签,开始运行工作流。

  10. 运行至人工审核任务,页面显示待审批,由审批人单击 通过 后,工作流继续运行。管理员可以选择跳过人工审核环节。

  11. 运行至镜像部署任务,第一批部署成功后,系统展示 部署下一批 按钮,单击后开始部署下一批。直至所有批次部署完毕。

  12. 部署完成后,运行至脚本执行任务。系统将自动执行脚本。

    预期脚本执行将成功打印出“hello app demo”。至此,整个工作流运行成功。

检查结果

您也可以登录容器服务控制台,找到具体部署的命名空间和 Deployment 名称,检查部署的 Deployment 应用是否符合预期。

如图所示,Deployment 名称为appdemo1201-dev1,标签为demo1201-1940,实例数量为3;部署镜像为harbor.volces.com/cp-test/nginx:1.9.1;关联的服务为 appdemo1201-dev1,均符合预期。




至此,您已体验完成应用交付快速入门。