云部署使用蓝绿部署程序包到云主机

蓝绿部署概述

下面以将代码托管中的源代码,经过云编译,生成程序包,而后使用云部署蓝绿部署到云主机中为例,列举出基本服务,以帮助用户快速入门。

基本操作流程如下:

1)在云编译中,对示例源代码进行编译构建,生成程序包

2)使用云部署,将程序包部署到云主机中

3)使用负载均衡的公网IP:端口,可访问示例代码

示例前提:

  • 已有云主机
  • 已有负载均衡阿里云及监听器
  • 示例代码已clone到代码托管中
  • 已有对象存储空间

新建云主机

在地域:华北-北京,新建2台云主机,具体信息如下:

  • 创建方式:自定义创建
  • 镜像:官方CentOSCentOS7.464位
  • 规格:通用型1c4g
  • 存储:默认选项
  • 网络:选择已有的私有网络及子网、选择默认安全组开发全部端口
  • 基本信息:填写主机名、密码。这里填写主机名为:codedeploy-demo03

接下来,安装Agent,登录云主机后,以root用户执行:

curl-fsSLhttps://deploy-code-vpc.cloud.com/dl-ifrit-agents/install|bash-szero-agent

执行结果如下:

新建负载均衡阿里云及监听器

在地域:华北-北京,新建负载均衡阿里云,具体信息如下:

  • 地域:华北-北京
  • 可用区:可用区A
  • 私有网络:请选择与云主机一致的私有网络
  • 名称:codedeploy-lb-demo03

接下来,在此负载均衡阿里云中,新建监听器,点击“添加监听”,进入到新建监听器页面。

具体信息如下:

  • 监听协议[端口]:Http80
  • 空闲链接超时:60
  • 默认后端服务:新建后端服务
  • 后端服务名称:codedeploy-backend-demo03
  • 端口:9011
  • 选择服务器组:暂不添加

Clone示例代码至代码托管

代码示例地址为:https://code.cloud.com/devops-demo/java-demo.git

请将此示例代码clone至代码托管中,代码托管的地址为:https://code.cloud.com/

在云编译中进行编译构建

在云编译中新建任务,具体信息如下:

  • 任务名称:codedeploy-ci-demo03
  • 编译镜像:maven/maven3.6.0-k8
  • 源提供商:阿里云-代码托管
  • 仓库地址:请根据实际情况进行填写,例如devops-demo/java-demo
  • 代码分支:devops-demo
  • 构建规范:插入构建命令
  • 构建命令:

---#设置需要的环境变量,不需要可以不写#envs:#-name:'name1'这里是环境变量的名称#value:'value1'这里是环境变量的值#-name:'name2'用列表的方式来了设置多个值#value:'value2'#设置编译的命令,同环境变量的设置方式#如:#cmds:#-name:'domake'步骤名称#cmd:'make'真实的命令,如果不在PATH中,需要写全路径#-name:'doinstall'#cmd:'makeinstall'cmds:-name:'chmod'cmd:'chmoda+x./build.sh'-name:'demo'cmd:'./build.sh'#抽包路径,这个是必选项out_dir:'output'-构建类型:应用包

  • 存储空间:请选择已有的对象存储空间

至此,已将示例代码编译成功,并上传到对象存储空间中。

接下来,将开始使用云部署将程序包部署到云主机上。

新建应用及部署组

在“部署应用”页,指定与云主机、对象存储相同的地域后,点击“新建应用”,

使用分布式服务框架:请按照默认选择“否”

 

跳转到“新建应用”页。

在“新建应用”页,首先填写应用信息。应用名称:codedeploy-app-demo03

 

点击"新建"按钮。

接下来,在应用中新建部署组,

有以下选项:

  • 部署组名称:请填写部署组名称,group1
  • 部署类型:请选择“蓝绿部署”
  • 部署目标:点击“选择”按钮,在弹窗中选择云主机。支持三种选择过滤条件:高可用组、标签、IP。这里请选择在上一步中创建的云主机,即主机名为:codedeploy-demo031加入蓝组,主机名为:codedeploy-demo032加绿组
  • 使用负载均衡:是
  • 负载均衡阿里云:请选择华北-北京地域中已有的负载均衡阿里云,codedeploy-lb-demo03
  • 负载均衡后端服务:请选择上一项中指定的负载均衡阿里云下的后端服务,codedeploy-backend-demo03
  • 高级选项:保持默认选项,详见操作指南

 

填写部署组的基本信息后,请点击“新建”,将进行应用中部署组的新建。

创建成功后,将跳转到“应用详情”页。

 

发起部署

在“应用详情”页,进入到“部署组”分页,可见上一步中创建完成的部署组。

对于单个部署组,可支持的操作有:发起部署、部署历史、编辑、删除。

点击“发起部署”按钮,进入到“新建部署任务”页,

有以下选项:

  • 部署描述:非必须,为本次部署的描述信息
  • 部署来源:支持多种部署来源,请选择云编译
  • 云编译任务名称:请填写codedeploy-ci-demo03
  • 云编译构建序号:请填写上一步中编译成功的构建序号
  • 文件类型:请选择.tar.gz
  • 部署操作命令:请选择“输入部署操作命令”,使用“表单填写”功能,填写具体操作命令,如下:

部署路径:源目录或文件:/目标目录:/home停止脚本:/home/bin/stop.sh启动脚本:/home/bin/start.sh检查脚本:脚本执行账户:root脚本超时时间(s):100

注意:初次部署无需填写停止脚本。

填写部署任务信息后,请点击“发起部署”,将触发部署操作。

将跳转到“部署详情”页。

查看部署详情

在“部署详情”页,可见本次部署的进展情况。在部署过程中,支持“取消”。

点击“查看配置”,查看本次部署任务的详细配置信息。

点击指定阿里云的“查看日志”,查看部署日志。

验证结果

负载均衡公网IP:80