应用交付功能以应用为核心,提供应用编排、环境管理、配置管理、应用发布等一站式能力,帮助简化云原生场景下发布微服务的复杂性,提高应用交付效率,降低发布风险。
本文以在开发环境部署 Kubernetes YAML 应用为例,为您介绍应用交付的基本能力和使用流程。开发环境关联的部署集群使用火山引擎容器服务集群。
除 准备工作 外,您还需要完成以下操作:
应用初始化包括创建应用、环境配置及应用编排。完成初始化后,应用基本可达到部署条件。
创建一个可独立交付的对外提供服务的单元。
登录 持续交付控制台。
在概览页面的工作区区域,选择目标工作区名称,进入该工作区。
在当前工作区页面,选择左侧导航栏的 应用交付, 进入应用交付页面,单击 创建应用。
在创建应用页面,按要求填写应用的相关配置信息。
配置项 | 说明 |
---|---|
应用显示名 | 自定义应用的显示名称。本示例设置为 注意 该名称不是 YAML 文件中的资源名称。 |
应用标识 | 根据界面提示填写应用标识。应用标识是应用的唯一标识,创建后不可更改。应用编排 YAML 文件中预置占位符 appName 的值将采用您填写的应用标识。本示例设置为appdemo1201 。 |
描述 | 填写当前应用的备注信息,可以为空。 |
应用类型 | 当前仅支持 K8S YAML 应用。 |
成员管理 | 快捷配置当前应用的组成成员,并为每个成员配置不同的权限,满足多角色协作进行应用交付的需求。
火山引擎账号默认为应用的管理员,不可取消。本示例在火山引擎账号基础上,添加一名成员,并赋予开发权限。 |
部署方式 | 当前仅支持 预置 K8S YAML 部署,即通过 K8S YAML 描述文件对应用进行部署。 |
填写完成后,单击 确定,弹出 应用初始化配置 下一步指引框。
系统预置了 开发、测试、预发、生产 共四个环境等级。每个环境等级可选择预置一个环境。建议至少预置一个环境,便于后续应用编排及配置管理使用。
对应用的 YAML 描述文件进行编排。当前支持编排 Deployment、Service、Configmap 三种资源类型的 YAML 文件。系统为您提供了 Deployment、Service、Configmap 模板文件,模板中每个参数的值均使用占位符表示,并且每个占位符已填充常用的默认值,方便您快速进行应用编排。
说明
本示例使用默认的 Deployment 和 Service 模板文件,并对 Deployment 模板文件做以下修改,为您介绍如何在应用编排中使用变量,实现不同环境下的差异化部署。变量的值会在后续的环境配置中启用和填充。
根据界面引导,单击 初始化 3:应用编排。
在应用编排页面,左侧展示 Deployment 和 Service 的 YAML模板,右侧展示各占位符信息。您可根据需要,单击 ➕,新建更多的 YAML 文件。本示例不新增其他 YAML 文件。
编排 Deployment 文件,设置标签 label。
run: "{{ .Values.label }} "
。编排 Deployment 文件,使用变量 Replicas 填充副本数 replicas 的值。
单击 确定,弹出对话框,设置当前编排记录的生效环境。本示例选择生效至上一步预置的 开发环境 1 和 测试环境 1。
单击 创建,弹出 恭喜完成应用初始化配置 的引导框,单击 我知道了,返回当前应用的发布页面。
对预置环境完成初始化操作,主要是为预置环境关联待部署的集群。本示例对预置的 开发环境 1 进行初始化。
切换至 环境 页签,找到 开发环境 1,单击 环境初始化。
在编辑环境页面,按要求配置参数。
配置项 | 说明 |
---|---|
环境等级 | 显示所选环境的环境等级,本示例为 开发。 |
环境显示名 | 默认为 开发环境 1,支持修改。本示例不修改。 |
环境标识 | 环境标识是环境的唯一标识,不支持修改。本示例为dev1 。环境标识对应应用编排 YAML 文件中预置占位符 envName 的值。 |
部署资源 | 选择应用实际部署的位置,例如 Kubernetes 集群、云服务器、虚拟机、物理机等。当前仅支持 Kubernetes 集群类型的部署资源。此处选择前提条件中准备好的容器服务集群Demo-Deploy-Resource 。 |
Namespace 覆盖 | 勾选后,须填写 Namespace 名称。部署当前环境时,此处的 Namespace 名称将覆盖 YAML 中定义的 Namespace。如果待部署集群中不存在该 Namespace,将在部署时新建。本示例不勾选。 |
关联配置 | 检查配置是否符合环境诉求。此处主要进行环境初始化,可跳过。 |
关联工作流 | 查看已关联的发布工作流。此处主要进行环境初始化,可跳过。 |
单击 确定,完成环境初始化操作。
在环境中启用配置项,为配置项赋值。本示例在 开发环境 1 启用步骤一应用编排中设置的自定义配置项 Label 和 Replicas,并为 Label 和 Replicas 在当前环境赋值。
说明
推荐开发人员先检查对应环境的配置项,完成配置更新,之后运维人员再去发起部署动作。
demo1201-1940
,Replicas 赋值为 3
。集成外部镜像仓库。建议将您自己的镜像仓库接入应用交付,部署应用时从您的仓库拉取镜像,提高镜像部署效率及安全性。
说明
使用工作流发布方式,必须先集成自己的镜像仓库。工作流发布当前仅支持从已集成的镜像仓库拉取镜像。
切换至 外部集成 页签,单击 添加外部服务。
在添加服务页面,按要求填写参数信息。
配置项 | 说明 |
---|---|
名称 | 自定义外部服务的名称,本示例名称为myharbor 。 |
类型 | 选择外部服务的类型。当前支持 Harbor 镜像仓库和通用的 Docker Registry 类型镜像仓库。本示例选择接入 Harbor 镜像仓库。 |
地址 | 输入待接入镜像仓库的 HTTP(S) 协议地址。 |
项目 | 输入仓库下的项目名称。 |
用户名 | 输入登录仓库的用户名。 |
密码 | 输入登录仓库的密码。 |
忽略证书有效性 | 使用 HTTPS 地址时,是否忽略证书有效性校验。本示例不勾选。 |
单击 校验并创建,将您的镜像仓库集成至应用交付。
应用交付提供立即部署和工作流发布两种部署方式。本示例将分别为您介绍两种部署方式。
切换至 环境 页签,找到 开发环境 1,单击 立即部署。
在立即部署页面,按要求填写部署配置信息。
配置项 | 说明 |
---|---|
应用版本 | 显示应用编排的版本。支持单击查看当前版本的应用编排是否符合预期。 |
镜像 | 输入要部署镜像的完整地址,此处的镜像即对应 |
部署策略 | 支持 原生部署 和 分批发布 两种部署策略。推荐使用分批发布策略,支持分批、暂停、继续的精细化部署能力,更加可控。 |
环境配置 | 单击 查看详情,检查配置是否符合环境诉求:启用的配置项是否正确、配置项的值是否正确。如果不正确支持快速修改。 |
部署 YAML | 直观展示最终要部署的 YAML 文件。单击 查看详情,检查要部署的 YAML 文件是否符合预期。 |
单击 确定,跳转至 运行流程 页签,开始部署。
在运行流程页签,第一批部署成功后,系统展示 部署下一批 按钮,单击后开始部署下一批。直至所有批次部署完毕。
本示例创建一条 人工审核 > 镜像部署 > 脚本执行 工作流,并运行工作流,为您介绍工作流发布的完整操作。
切换至 发布 页签,单击 创建工作流。
在创建工作流页面,填写 工作流配置 基本信息。
配置项 | 说明 |
---|---|
名称 | 自定义工作流名称。本示例名称为工作流 demo 。 |
描述 | 填写当前工作流的备注信息,可以为空。 |
环境级别 | 本示例选择 开发。 |
通知提醒 | 配置工作流消息的通知提醒方式。应用交付支持通过站内信、短信、邮件、Webhook 推送工作流消息,帮助您快速了解应用部署结果。本示例不启用。 |
在左侧单击 人工审核,配置人工审核的任务信息。
配置项 | 说明 |
---|---|
任务名称 | 自定义任务名称。本示例使用默认名称。 |
审批方式 | 支持 会签 和 或签 两种审批方式。本示例选择或签。
|
审批角色 | 选择审批人的角色,本示例选择管理员。 |
通知提醒 | 支持在 待审批 和 审批失败 两种情况下发送通知。勾选通知条件后,需要进一步选择通知方式。支持站内信、短信、邮件共三通知方式。本示例不启用。 |
在左侧单击 镜像部署,配置镜像部署的任务信息。
配置项 | 说明 |
---|---|
任务名称 | 自定义任务名称。本示例使用默认名称。 |
镜像仓库 | 选择部署应用时从哪个镜像仓库拉取镜像。本示例选择步骤四接入的 myharbor 仓库。 |
在左侧单击 脚本执行,配置脚本执行的任务信息。
说明
脚本执行支持使用自定义运行环境执行自定义任务,例如:数据库变更、运行一些定时任务、源码编译等。本示例主要为您介绍脚本执行支持变量传参的功能。
配置项 | 说明 |
---|---|
任务名称 | 自定义任务名称。本示例使用默认名称。 |
自定义镜像 | 如果您需要自定义运行环境,需要上传自定义运行环境的镜像。本示例不使用。 |
运行脚本 | 输入您的运行脚本。执行框内支持设置占位符作为变量传参,在实际运行工作流时需输入占位符对应的值,仅支持输入常量。
|
单击 保存,完成工作流创建。
找到刚创建完成的工作流,单击 运行。
在运行页面,按要求配置以下信息。
配置项 | 说明 |
---|---|
环境等级 | 显示当前工作流关联的环境等级。本示例为开发。 |
环境 | 本示例选择 开发环境 1。 |
应用编排 | 显示应用编排的版本。支持单击查看当前版本的应用编排是否符合预期。 |
配置项 | 说明 |
---|---|
镜像仓库 | 显示您创建工作流时选择的镜像仓库。 |
镜像 | 输入要部署镜像的地址: |
部署策略 | 支持 原生部署 和 分批发布 两种部署策略。推荐使用分批发布策略,支持分批、暂停、继续的精细化部署能力,更加可控。 |
环境配置 | 单击 查看详情,检查配置是否符合环境诉求:启用的配置项是否正确、配置项的值是否正确。如果不正确支持快速修改。 |
部署 YAML | 直观展示最终要部署的 YAML 文件。单击 查看详情,检查要部署的 YAML 文件是否符合预期。本示例部署 1 个 Deployment 和 1 个 Service,各参数值符合预期。 |
配置项 | 说明 |
---|---|
配置值 | 输入占位符 VALUES1 对应的值。本示例输入的值为 hello app demo 。 |
单击 运行,跳转至 运行流程 页签,开始运行工作流。
运行至人工审核任务,页面显示待审批,由审批人单击 通过 后,工作流继续运行。管理员可以选择跳过人工审核环节。
运行至镜像部署任务,第一批部署成功后,系统展示 部署下一批 按钮,单击后开始部署下一批。直至所有批次部署完毕。
部署完成后,运行至脚本执行任务。系统将自动执行脚本。
预期脚本执行将成功打印出“hello app demo”。至此,整个工作流运行成功。
您也可以登录容器服务控制台,找到具体部署的命名空间和 Deployment 名称,检查部署的 Deployment 应用是否符合预期。
如图所示,Deployment 名称为appdemo1201-dev1
,标签为demo1201-1940
,实例数量为3
;部署镜像为harbor.volces.com/cp-test/nginx:1.9.1
;关联的服务为 appdemo1201-dev1
,均符合预期。
至此,您已体验完成应用交付快速入门。