文档

Java应用构建并部署SAE

更新时间:

一、背景

如果你

1.使用 Java 进行开发

2.使用 Jar/War的制品形式进行交付

3.制品最终会运行在 SAE 应用上

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

二、用户诉求

一般来说,用户使用主机部署场景如下:

1.对源代码进行一定的质量检测,比如单元测试,代码扫描

2.将源代码构建成为可交付的制品,比如 Jar/War

3.对制品进行测试环境验证

4.使用完成验证的制品进行线上部署

上述活动需要有不同角色的参与:开发、测试、运维。如何保证不同参与者可以使用统一的交付流程来进行协作,是云效 Flow 交付流水线要解决的主要问题。

三、云效解决方案

结合云效持续交付流水线和主机部署的能力,为应用持续交付提供了很好的基础保障,如图:

SAE3.1

开发者提交代码变更到代码库,云效在监听着代码库的变动,一旦代码发生变化,将自动触发云效持续部署流水线一次构建任务的运行,包括代码检查、构建、测试部署、测试验证和生产部署等过程。其中,在构建完之后,生成制品包并自动上传至 OSS 仓库,在部署阶段(测试环境的部署和生产环境的部署)时,再从制品仓库中取得最新的版本,部署到阿里云 SAE 应用。

四、云效操作实践

接下来以一个 Java Spring Boot 的代码库为例,讲解如何进行构建并部署到阿里云 SAE 应用。

1、创建流水线

  • 进入云效,点击页面左上角的dock,选择流水线进入Flow

说明

立即体验:云效流水线Flow

SAE421

  • 点击右上角【新建流水线】,进入流水线创建向导页面。

SAE412

  • 选择相应模板,并点击创建。

SAE414

2、配置代码库

创建流水线之后会自动弹出添加代码源的窗口,这里选择 Flow 提供的示例代码源,并进行添加

SAE425

3、配置构建上传任务

修改一下”Java 构建上传“的任务,将上传文件修改为你的构建产物,本例为“target/application.jar”。

SAE431

4、配置部署任务

点击“SAE 应用发布”任务,进入配置。点击”新建服务授权”,进行 SAE 服务授权,完成授权后可选择您已有的 SAE 应用;选择你要部署的制品;同时你可以选择你的部署策略,若你的 SAE 应用有多个实例,可以选择分批发布,每次分批发布之间需要手动确认。

SAE441SAE443

5、添加人工卡点

为了保证经过审批的制品才能进入部署环境,需要添加一个人工卡点,这里假设这个环境是测试环境,需要有测试管理员来审批才能进入。

首选需要在企业中创建一个角色”测试管理员“,并将企业用户”张三”的角色设置为该角色。

SAE451SAE452SAE454以上演示了如何添加一个进入测试环境的卡点,添加生产环境的卡点也是类似的,这里不再赘述,可以类似的进行配置。

SAE451SAE462SAE459

然后回到流水线继续进行配置,在 SAE 部署前面添加一个任务,搜索”人工卡点“,并按照角色进行配置:

6、运行流水线

配置完毕,点击”保存并运行”触发流水线:

扫描、单测及构建上传的任务自动完成,并停在了卡点上。普通人员无权限通过,切换到张三的账号之后,可以通过或者拒绝。

SAE661

点击”验证通过“,流水线会进入 SAE 部署的任务。由于配置了分两批,手动确认,所以在部署完第一批实例之后,会暂停,点击“更多”查看可进行的操作:

SAE663

你可以选择

1.终止本次变更

2.继续第二批实例的发布

3.跳转到 SAE 控制台查看更多信息

点击继续”恢复变更”之后,可以看到 Flow 继续完成了本次部署

SAE664

7、通知

为了更好的进行协作,Flow 提供了通知能力在流水线不同的生命周期节点上进行通知。一般来讲开发团队会关心部署的成功和失败,那么可以将该事件推送到团队的钉钉群中,配置方式如下,点击”添加插件”,选择钉钉机器人通知,填入 webhook 地址,运行时机选择”失败“,”成功”

SAE771再次运行之后,就会收到相应的通知:

SAE778

8、在 Codeup 代码库中查看结果

若配置的代码库是云效 Codeup 代码库,还可以在 Codeup 代码库中直观看到流水线结果。

SAE881

除查看执行结果外,Codeup 还可以设置 Flow 流水线检测作为合并前的检测卡点。

SAE883

五、结语

通过以上的操作流程,就可以建立起来一个协同多角色的流水线。接下来你可能想再了解其中的一些细节:

  1. 定制化代码扫描规则定制化扫描及单元测试通过规则

  • 本页导读 (0)
文档反馈