Java 构建部署到 ACK 或自建 K8s 集群

1. 场景介绍

如果你的应用研发场景:

  • 使用 Java 语言进行开发

  • 需要将源代码构建成容器镜像形式进行交付

  • 镜像最终会运行在阿里云 ACK 或者其他 K8s 集群上

那么本文档可以帮助您实现应用研发流程的协同自动化。

2. 整体方案

image

通常应用研发场景:

  • 需要对源代码进行一定的质量检测,比如单元测试、代码扫描

  • 需要将源代码构建成容器镜像

  • 使用镜像部署到测试环境,进行测试验证;然后依次部署到预发环境进行预发验证。

  • 生产发布前提交审核流程,审核通过后使用验证完成的镜像进行生产发布。

上述活动需要有不同角色的参与:开发、测试、运维,涉及测试、预发、生产等多套环境的部署管理,如何保证不同参与者可以使用统一的交付流程来进行协作,有序按环境逐步推进需求发布上线,是云效 AppStack 应用交付解决的主要问题。

3. 操作实践

3.1 创建应用

进入AppStack首页-应用,点击「新建应用」,选择「spring-boot应用体验模板」。你也可以自定义企业模板,定义企业专属应用架构和研发流程。

image

3.2 按需修改应用代码、流水线、部署YAML等相关配置

  • 按需修改应用关联的代码仓库。

image

  • 按需修改应用部署 YAML 文件。体验模板预置一个 Deployment 和 Service。

image

  • 按需修改应用各阶段流水线配置,如修改镜像推送地址为你自己的镜像仓库地址,以及相应的用户名密码。

image

image

3.3 为环境关联部署资源

体验模板预置开发、测试、预发、生产四套环境,可按需使用。如使用测试环境,则为测试环境关联部署所需的 K8s 集群。若还未导入 Kubernetes 集群,可参考 Kubernetes 集群托管 导入 ACK 集群、或其他云平台或自建 K8s 集群。

image

image

3.4 编写代码提交后,触发流水线构建部署

image

3.5 查看部署单,等待部署成功即完成一次应用部署

image

3.6 依次部署到预发、生产环境,完成发布上线

image