弹性伸缩 ESS ECS 部署

弹性伸缩(Auto Scaling)是根据业务需求和策略自动调整计算能力(即实例数量)的服务。您可以指定实例的类型,即 ECS 实例或 ECI 实例。在业务需求增长时,弹性伸缩自动增加指定类型的实例,来保证计算能力;在业务需求下降时,弹性伸缩自动减少指定类型的实例,来节约成本。弹性伸缩不仅适合业务量不断波动的应用程序,同时也适合业务量稳定的应用程序。

背景信息

Flow 支持将构建出来的包制品下载到ESS(弹性伸缩)ECS实例中并按部署命令进行发布。

本文讲述如何使用 Flow 对 ESS 弹性伸缩组进行流水线式构建部署。

image

前提条件

步骤一:创建 ESS 伸缩组

  1. 登录弹性伸缩ESS控制台,选择伸缩组管理创建伸缩组,创建流程请参见使用流程。如图所示,目标伸缩组当前包含 2 台 ECS 实例。Group@1x

  2. 在目标伸缩组配置中,设置了新扩容实例的基础镜像,其中包含了jdkmaven的基础环境。当后续扩容活动发生时,新ECS实例会根据基础镜像(指定的实例规格、镜像环境等)进行创建。

    Group@1x (1)

步骤二:创建 Flow 流水线

  1. 在流水线Flow 控制台,选择目标流水线或者创建流水线。选择任务节点流水线源,添加代码源,本文使用示例代码源JAVA,根据需求选择。Group@1x (2)

  2. 选择空任务或者新的任务,根据需求选择构建环境,选择默认环境,单击添加步骤选择构建 > Java 构建步骤,继续单击添加步骤选择上传 > 构建物上传Group@1x (3)

  3. 在下一个任务节点,选择新的任务,添加任务步骤“ESS ECS部署”。Group@1x

  4. 配置“ESS ECS部署”任务步骤。

    参数名

    说明

    选择服务连接

    选择任务连接的服务。如果没有服务连接,选择添加服务连接,根据界面提示,添加您需要的连接。选择任务的服务授权,使云效能选择ESS伸缩组进行部署。

    说明

    如果您从未授权过,新建服务连接时,请先在服务授权/证书输入框后,单击新建,根据跳转完成阿里云RAM授权后再进行相应配置。

    地域

    选择待发布ESS弹性伸缩组所在的地域。

    伸缩组

    选择待发布ESS弹性伸缩组的名称。

    软件包

    选择构建物上传步骤所创建的产出物名称。

    下载路径

    tgz格式的制品压缩包下载到你的主机上的目录。

    说明

    如:填写/home/admin/app/,制品的路径为/home/admin/app/download。

    部署脚本

    用于进行单机部署的脚本。

    发布批次

    选择批次数量来表示发布分批的数量。

    分批方式

    可选择手动确认或自动确认。例如,如果您需在完成第一批发布时先观察发布结果再决定后续操作,则可选择手动确认。

    Group@1x (1)

步骤三:运行流水线

  1. 保存并运行流水线,部署完毕后,可以查看日志和发布单详情。Group@1x (2)

    说明

    如果分批方式选择的手动确认,在部署完第一批之后流水线任务将会暂停,根据您需求可以继续发布。

结果验证

云效显示部署成功后,登录ESS伸缩组实例查看。

  • 部署的包是否有下载到指定位置。

  • 部署指令是否正确执行。

  • 每次在 Flow 上进行ESS ECS的部署会伴随伸缩组内生命周期挂钩的创建或修改,目的是使后续新扩容的实例能同步伸缩组内最新一次的发布。查看伸缩组内的生命周期挂钩是否正确创建或修改,判断标识中的包地址、部署目录、部署指令与最新一次部署是否相同。

后续扩容

  • 目标伸缩组后续扩容出来的新实例,会触发上文部署流程中所设置的生命周期挂钩进行初始化部署。

  • 登录新实例查看:

    • 部署的包是否有下载到指定位置。

    • 部署指令是否正确执行。