前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DevOps 之 Coding CD

DevOps 之 Coding CD

原创
作者头像
鲍远林
修改2021-10-14 17:24:28
1.8K0
修改2021-10-14 17:24:28
举报
文章被收录于专栏:泛互云原生泛互云原生

CI 篇见:https://cloud.tencent.com/developer/article/1889086

使用 Coding 在 TKE 上初次部署应用,需要以下步骤:

  • 配置云账号
  • 配置应用
  • 配置部署流程
  • 提单发布

配置云账号

只有配置了 TKE 集群的认证信息,Coding 才有部署的权限,因而使用 Coding CD 功能的第一步是配置云账号。如下图所示,在 Coding 部署控制台导航栏菜单中选择【云账号】,在云账号管理页面选择【绑定云账号】,云账号类型选择腾讯云 TKE,按照指引完成与云账号名下的集群绑定。

add-tke-cluster-account.png
add-tke-cluster-account.png

NOTE:部署控制台可通过 CODING 团队首页左侧导航栏快速进入,更多帮助见:https://help.coding.net/docs/cd/console.html

配置应用

应用是 CODING CD 中的基本部署单位,Coding 推荐的做法是一个应用对应微服务架构中的一个服务。在 CODING 部署控制台左侧导航栏点击【应用】进入应用页面;接着点击【创建应用】按钮,在弹出的创建应用对话框中输入应用名称,部署方式选择 TKE,然后确认后就创建好一个应用了

add-app-step-2.png
add-app-step-2.png

如果想在项目中提交发布单执行应用的发布流程,还需要把应用和一个项目进行关联。下面两图展示了如何将应用 order-service 和项目 QCBM 进行关联。

guan-lian-project-1.png
guan-lian-project-1.png
guan-lian-project-2.png
guan-lian-project-2.png

配置部署流程

基于 TCR 的自动触发流程

在配置好云账号以及应用后,可在部署控制台中创建部署流程了。如下图,在应用页面点击 order-service 进入部署流程页面,选择创建流程。在创建部署流程对话框中,可以根据需要选择部署模板。示例 order-service 部署流程选择了空白流程模板。

create-cd-flow.png
create-cd-flow.png

在上图点击确认后,进入 order-service 部署流程编辑页面。在【基础配置】里,为流程添加个自动触发器:TCR 个人版仓库触发器。具体来说,点击“添加触发器”后,在触发器类型里选择 “TCR 个人版仓库触发器”,然后选择好区域、命名空间、仓库等信息即可。

cd-trigger.png
cd-trigger.png

接着,点击【基础配置】右边的【添加阶段】按钮,并选择 “部署(Manifest)” 。

add-deploy-manifest.png
add-deploy-manifest.png

在部署(Manifest)的基础设置中选择上文中配置好的云账号。

manifest-basic-config.png
manifest-basic-config.png

接下来进行 Manifest 配置,Coding 支持两种 manifest 来源:使用制品输入内容

  • 使用制品

该方式使用事先编写好的,并上传到代码仓库中的部署描述文件。比如,下图中就使用了 order-service 的部署 yaml,该 yaml 位于 Coding 代码仓库 qcbm-deployments 中(可通过链接 https://jishufanganzhongxin.coding.net/public/qcbm/qcbm-deployments/git/files/master/deployments/order-service.yaml 查看)。

manifest-source-git.png
manifest-source-git.png
  • 输入内容

顾名思义,就是直接输入应用的部署 yaml,如下图所示。

manifest-source-input.png
manifest-source-input.png

至此,基于 TCR 自动触发的部署流程就配置完成了,按下图的说明保存好配置流程。

save-cd-flow.png
save-cd-flow.png
基于审批和确认的人工触发部署流程

上一节讲述的 “基于 TCR 的自动触发流程” 适用于开发/测试环境。对于生产环境的部署,一般都很慎重,需要人工审批、部署后验证、以及部署失败后的回滚等操作。本节为 order-service 创建一个新的部署流程,实现人工确认、回滚等功能,具体见下图展示的新流程 order-service-deployment-with-approve。

order-service-deployment-with-approve.png
order-service-deployment-with-approve.png

在流程配置的第二步,选择 “通用类型” 下的 “人工确认”,如下图:

add-manual-confirm.png
add-manual-confirm.png

然后添加人工确认信息,包括确认人和确认选项,如下图:

config-manual-confirm.png
config-manual-confirm.png

填写好人工确认信息后,再添加一个后续 “部署Manifest” 的步骤并命名为 “部署 GZ-AZ3”,相关配置在上一节中已描述,这里略过。

add-step-deploy-manifest.png
add-step-deploy-manifest.png

接着,在步骤 “部署 GZ-AZ3” 后添加一个人工确认步骤,命名为 “GZ-AZ3 部署确认”,用于对广州三区部署结果的确认。后续步骤将根据本步骤的确认结果进行判断,如果确认通过,则继续部署广州四区,否则回滚广州三区。

gz-az3-dep-confirm.png
gz-az3-dep-confirm.png

接下来,添加继续部署广州四区的步骤,该步骤的基本配置参见上一节的 “部署Manifest” 的描述。不同的地方在于,本步骤需要根据上一步的确认结果判断是否继续执行。此时,需要为步骤配置 “执行选项”,如下图所示。这里需要勾选 “条件表达式” 并配置下面的表达式语句:

代码语言:txt
复制
${#judgment("GZ-AZ3 部署确认") == '部署成功,继续部署 AZ4'}  

当前一步骤 “GZ-AZ3 部署确认” 中,用户选择了选项 “部署成功,继续部署 AZ4”,则上面的表达式为真,将会继续执行本步骤,否则跳过本步。

continue-deploy-az4.png
continue-deploy-az4.png

接下来添加回滚步骤,在 “GZ-AZ3 部署确认” 后添加一个新步骤,类型选择 “回滚 (Manifest)”,并命名为“回滚 GZ-AZ3” 。回滚 Manifest 配置下云账号选择 AZ3 TKE 集群对应的云账号(见第二节中的云账号配置);资源类型按实际情况选择,由于 AZ3 使用 K8S Deployment 进行部署的,因而这里选择 deployment;资源名称处选择 order-service(若无此选项,按下图说明手工输入一个资源名称)。

roll-back-basic.png
roll-back-basic.png

继续 “回滚 GZ-AZ3” 的配置。接着就是配置回退版本数和条件表达式。回退版本数为 1 ,表示回滚到上一个版本的 docker 镜像。条件表达的配置如下:

代码语言:txt
复制
${#judgment("GZ-AZ3 部署确认") == '部署失败,回滚 AZ3'}  
roll-back-az3.png
roll-back-az3.png

至此,带有审批和人工确认的部署流程已配置完成。

发布单

上面介绍的是如何在部署控制台里配置发布流程,具体进行发布时 coding 都会创建一个发布单记录每次发布的过程以及发布结果,不管是自动触发还是手工触发的部署。

下面介绍下如何在 Coding 里进行手工部署操作。首先,进入 qcbm 项目,在左侧的导航栏找到 “持续部署”,再选择 “Kubernetes”,右侧窗口将会所有 Kubernetes 应用部署流程,如下图所示。

order-fabudan.png
order-fabudan.png

在上图中,点击 order-service 下的 “发布单” 按钮,进入 order-service 发布单列表,如下图:

order-fabudan-list.png
order-fabudan-list.png

在上图中,点击 “新建发布” 选择框下的 “新建发布单”,在弹出的对话框中选择部署流程:order-service-deployment-with-approve,其它配置保持默认。

manual-new-fabudan.png
manual-new-fabudan.png

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 配置云账号
  • 配置应用
  • 配置部署流程
    • 基于 TCR 的自动触发流程
      • 基于审批和确认的人工触发部署流程
        • 发布单
        相关产品与服务
        CODING DevOps
        CODING DevOps 一站式研发管理平台,包括代码托管、项目管理、测试管理、持续集成、制品库等多款产品和服务,涵盖软件开发从构想到交付的一切所需,使研发团队在云端高效协同,实践敏捷开发与 DevOps,提升软件交付质量与速度。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档