使用云效2020部署Java应用至ECS集群

本文以云效的示例代码源为例,介绍如何使用云效以JAR或WAR包的方式部署应用至EDAS的ECS集群。

前提条件

部署流程

云效部署流程

  1. 如果您的应用已经部署在EDAS上,则无需创建新的应用。如果您是第一次部署应用到EDAS,则需要在EDAS控制台创建应用,以便云效将业务代码推送到该应用中。

  2. 在EDAS创建应用完成后,在云效上创建企业并进入流水线FLOW。

  3. 根据EDAS应用类型配置应用集成发布的流水线信息。

  4. 流水线配置完成后,运行流水线完成EDAS应用部署。

步骤一:在EDAS控制台创建应用

如果您未使用过EDAS创建应用,则需要预先在EDAS上创建应用,本文以在ECS集群中创建一个使用JAR包部署的Spring Cloud应用为例。相关操作,请参见在ECS集群中创建并部署应用

重要

在EDAS控制台创建应用时使用的部署方式(JAR或WAR),必须与在云效的流水线设置保持一致。例如:在EDAS上使用JAR方式部署应用,那么在云效设置流水线时,构建环节必须是构建和上传JAR包相关的设置。

步骤二:在云效创建企业

如果您是第一次使用云效Flow,则需要在云效上创建您的企业。

  1. 登录云效Flow

  2. 设置企业名称研发组织规模,单击立即创建

    image

步骤三:在云效创建流水线

  1. 登录云效Flow

  2. 在左侧导航栏,单击我的流水线,然后单击右上角的新建流水线

  3. 选择流水线模板对话框,选择其他 · 空模板,单击创建

    创建空模板

    创建完成后,会跳转到添加流水线源的页面。

步骤四:配置流水线

  1. 在创建的流水线的阶段1区域单击空任务,在编辑面板,配置任务名称构建集群下载流水线源并添加任务步骤。

    云效部署阶段1

    添加任务说明如下:

    1. 任务步骤区域下,单击添加步骤,在下拉列表中选择构建 > Java构建,并配置该步骤参数。云效JAVA构建

      参数

      描述

      步骤名称

      输入您自定义的步骤名称。

      JDK版本

      在下拉列表中选择需要的Java版本。

      Maven版本

      在下拉列表中选择需要的Maven版本。

      构建命令

      自定义的构建命令。

    2. 单击添加步骤,在下拉列表中选择上传 > 构建物上传(EDAS/SAE使用),并配置该步骤参数。构建物上传(EDAS/SAE使用)

      参数

      描述

      步骤名称

      输入您自定义的步骤名称,不修改则显示为默认名称。

      制品名称

      自定义产出物名称,例如default,用于区分多次构建产生的不同产出物,定义后在部署任务中使用。

      上传文件

      设置项目文件所在的路径。

  2. 新阶段区域单击新的任务,在选择任务组面板的左侧导航栏单击部署,然后选择EDAS ECS 应用发布

    EDAS ECS应用部署

  3. 编辑面板,配置任务信息。

    部署ECS应用

    配置的任务信息说明如下表所示。

    参数名

    说明

    任务名称

    自定义的任务名称。

    构建集群

    可为任务选择不同的构建集群

    下载流水线源

    可为任务选择是否下载流水线源。开启下载流水线源后,您配置流水线源的源文件将会被下载至对应的工作目录下。

    选择服务连接

    选择任务连接的服务。如果没有服务连接,单击添加服务连接,根据界面提示,添加您需要的连接。选择任务的服务授权,使云效能在EDAS上部署应用。

    说明

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

    地域

    请参见步骤一:在EDAS控制台创建应用,选择该步骤所创建应用所在的地域。

    命名空间

    选择所创建应用所在的命名空间。

    应用

    请参见步骤一:在EDAS控制台创建应用,选择该步骤所创建的应用。

    软件包

    选择步骤四:配置流水线步骤1中构建物上传(EDAS/SAE使用)步骤所创建的产出物名称。

    发布批次

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

    分批等待时间

    相邻发布批次之间的等待时间。

    分批方式

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

    (可选)任务插件

    您可以根据需要配置任务插件来发送流水线通知。

    • 钉钉机器人通知插件

      • webhook地址:配置钉钉机器人的webhook地址,钉钉机器人的创建步骤请参见钉钉机器人配置

      • 运行时机:您可以选择任务插件发送通知的时机。

    • 邮件通知

      • 邮件地址:配置需要发送通知的邮件地址。

      • 运行时机:您可以选择任务插件发送通知的时机。

    • Webhook通知插件

      • webhook地址:配置需要发送通知的webhook地址,地址必须公网可访问。

      • 运行时机:您可以选择任务插件发送通知的时机。

    • 企业微信机器人通知插件

    • 飞书机器人通知插件

  4. 配置完成后在页面右上角单击仅保存保存并运行

步骤五:在云效部署应用至EDAS

  1. 配置完流水线后,在流水线页面右上角单击保存并运行,然后在运行配置对话框中选择代码分支后单击运行

    本操作示例中创建的应用拥有2个实例,并在流水线中配置了分批发布和手动确认。故在构建任务运行成功后,在新阶段的发布任务中您可执行以下操作:执行流水线

    • 单击发布单详情:可跳转到EDAS控制台查看变更详情。

    • 单击继续发布:可继续下一批的发布。

    • 选择更多 > 终止变更:可终止本次流水线的运行。

    • 选择更多 > 日志:可查看流水线的运行日志。

    • 选择更多 > 取消:可取消本次任务运行。

  2. 单击继续发布,等待流水线执行完毕。

    运行完成

结果验证

云效显示部署成功后,登录EDAS控制台查看应用的变更记录,查看是否有与云效相关的部署应用的变更记录,如果有并显示执行成功则代表部署成功。

常见问题

  • 如何使用云效以镜像方式部署应用至EDAS?

    您可使用云效以镜像方式部署应用至EDAS的K8s集群,详情请参见使用云效2020部署Java应用至ECS集群

  • 除Java应用外,其他编程语言能否通过云效部署至EDAS?可以使用哪些部署方式部署?

    除Java外的其他编程语言可以使用镜像部署方式,通过云效部署至EDAS。使用镜像部署时,请确保您应用代码中有包含应用的Dockerfile文件,操作部署请参见使用云效2020部署Java应用至ECS集群

EDAS容器服务K8s和Serverless K8s交流群

如果您在EDAS中使用容器服务K8s集群和Serverless K8s集群过程中有任何疑问或建议,请使用钉钉搜索钉钉群号23197114加入钉钉群进行反馈。