You need to enable JavaScript to run this app.
导航
通过流水线实现 Java 源码打包归档和托管应用 ECS 部署(v2)
最近更新时间:2024.11.27 17:15:51首次发布时间:2024.11.27 17:15:51

持续交付搭配火山引擎 云服务器制品仓库,可完成云上持续交付一站式体验。本文为您介绍如何通过一站式流水线对 Java 源码进行编译构建,归档构建产物 JAR 包,并完成 Java 托管应用的自动化 ECS 部署。

场景介绍

通过持续交付的一站式流水线,可完成 Java 托管应用的 CICD 工作。本文以 Spring Boot Hello World 代码为例,使用 Maven 进行编译构建,将制品推送至制品仓库归档,并下载产物至 ECS 实例,完成 Java 托管应用的自动化 ECS 部署。

  • Java 应用托管:持续交付提供 Java 应用的全生命周期托管功能,支持将 Java 应用托管至火山引擎云服务器 ECS。

  • 上传制品:持续交付与火山引擎的制品仓库无缝集成,支持将编译构建的产物上传至制品仓库进行归档。

  • 应用部署:持续交付的流水线与应用交付模块相互联动,支持通过流水线完成 Java 托管应用的自动化部署。

前提条件

  • 制品仓库

    • 已开通火山引擎制品仓库。

    说明

    制品仓库当前处于公测状态,如需体验,请优先联系您的售前经理或解决方案经理。

    • 已创建制品仓库实例。具体操作可参见 创建基础版实例

    • 已创建 Generic 制品格式仓库,且仓库的发布策略要求为非只读策略。 具体操作可参见 创建 Generic 仓库

  • 持续交付

    • 已开通火山引擎持续交付。

    • 已创建工作区,详细操作请参见 创建工作区

    • 已创建代码源,详细操作请参见 创建代码源。本文接入 Spring Boot Hello World 示例代码源。

    • 已准备好待部署的 Java 托管应用(ECS)。具体操作可参见 创建并部署托管应用(ECS)。

    • 已准备好作为流量入口的公网负载均衡实例,要求负载均衡实例与待部署的 ECS 实例处于相同的 VPC。具体操作可参见 创建负载均衡实例

    • 首次使用制品上传,需完成跨服务授权。具体操作可参见 跨服务授权

操作步骤

步骤一:创建流水线

  1. 登录 持续交付控制台

  2. 在左侧导航栏选择 工作区,在工作区页面单击目标工作区名称,进入当前工作区。

  3. 单击 创建流水线,弹出 选择流水线模板 对话框。

  4. 选择 Java - 编译构建 & 制品上传 - 应用部署,单击 确定,进入当前流水线的流程编排页面。

步骤二:流程编排

  1. 配置代码源。

    1. 在代码源&触发器区域,单击 添加 > 代码源

    2. 在弹出的配置输入源页面,选择您的代码仓库类型、代码仓库和默认分支。配置完成后,单击 确定

  2. 配置 Java 编译构建&制品上传任务

    1. 单击 Java 编译构建 卡片,弹出编辑任务面板。

    2. 配置代码源下载策略。本实践对 Java 源码进行编译构建,故选择 下载代码

    3. 在面板中配置 Java 编译构建步骤。

      配置项说明
      步骤名称默认为 Java编译构建。本示例保持默认。

      版本

      根据实际选择 Java 版本。

      需要与待部署托管应用的 Java 版本保持一致。

      编译命令根据实际业务,编写编译命令。
      失败时跳过开启后当前步骤运行失败直接跳过。本示例不开启。
    4. 在面板中配置 制品上传 步骤。

      配置项说明
      步骤名称默认为制品上传。本示例保持默认。
      地域选择制品仓库所在的地域。
      实例选择制品仓库的实例名称。
      仓库地址选择要上传的目标仓库。仅支持选择非只读策略的 Generic 制品格式仓库。
      制品文件路径填写制品上传后,存储在制品仓库中的目标路径。本示例为/,表示存储至根目录。
      制品名称自定义制品仓库中归档的文件名称,,默认为Artifact-$(PIPELINE_ID)-$(CP_STEP_NAME)-$(DATETIME).gzip。本示例保持默认。
      是否上传单文件本示例不开启。平台会将多个文件打包为 tgz 包,再上传到制品仓库。
      打包路径填写 Java 编译构建产物所在的路径。本示例为./target/
      失败时跳过开启后当前步骤运行失败直接跳过。本示例不开启。
    5. 高级设置保持默认。

    6. 单击 确定,完成当前任务配置。

  3. 配置应用部署任务。

    1. 单击 应用部署 卡片,弹出编辑任务面板。

    2. 在面板中配置应用部署任务。

      配置项说明
      任务名称默认为应用部署。本示例保持默认。
      上游任务显示本任务的上游任务名称,本场景为 Java 编译构建。
      应用类型选择 托管应用
      应用选择具体要部署的 ECS 托管应用。
      环境对于 Java 托管应用,一个应用仅有一个环境。将根据选择的应用自动显示部署环境。
      应用技术栈将根据选择的应用自动显示技术栈,本场景显示为 Java
      版本号设置本次部署的版本号,默认使用时间戳。本示例保持默认。
      制品选择当前应用要部署的制品。本场景选择上游编译构建&制品上传任务的产物。
      部署方案选择 原生部署
      超时时间设置自动超时时间。任务运行时长超过该时间,则判断部署失败,系统自动触发回滚操作,回滚到升级前版本。本示例保持默认。
      任务输出显示当前任务的产物。本任务没有产物。
      高级设置是否开启 Webhook 通知。本示例不开启。
    3. 单击 确定,完成当前任务配置。

  4. 可选配置流水线的基本信息、缓存目录、通知提醒。本示例保持默认。

  5. 单击 保存,保存流水线当前配置。

步骤三:运行流水线

  1. 在流水线列表页,选择刚才创建的目标流水线,单击操作列的运行图标。

  2. 在弹出的运行流水线对话框中,确认使用的代码源分支信息,可选填写运行说明。

  3. 单击 确定,流水线开始运行,系统跳转至当前流水线的详情页面。

结果验证

流程验证

在当前流水线的运行详情页面,查看各任务的运行结果。

  1. 选择 Java 编译构建任务,单击制品详情,可跳转至制品仓库控制台,查看上传归档的制品详情。

  2. 选择应用部署任务,单击 查看部署详情 按钮,跳转至对应 Java 托管应用的变更记录详情页面,查看部署结果。

  3. 切换至 实例列表 页签,单击 日志,可查看应用的部署日志。

业务验证

  1. 在托管应用的 应用编排 页签,在 访问方式设置 区域,添加负载均衡(公网),作为应用的流量入口。

    注意

    请为 ECS 实例所在的安全组放通应用所监听的主机端口的流量,否则应用无法实现公网访问。

  2. 使用具有公网访问权限的机器,在浏览器地址栏中输入<负载均衡 IP>:<端口号>/hello,可成功访问到 Spring Boot 应用。