主要功能

交付中心提供的流水线任务包括如下类型的子任务,并提供了统一的质量门禁配置功能。

质量门禁

质量门禁是为了控制流水线任务的质量,作用于代码检查、自动化接口测试、编译构建子任务。子任务在执行时错误数量需在合理范围内,否则不允许通过。门禁的通过条件包括单元测试的通过率,代码检查的缺陷数量、漏洞数量、坏味道数量、代码重复率,以及接口测试的通过率。

代码检查

代码检查集成了SonarQube代码质量管理工具,延用了其对代码质量的判断规则。

自动化接口测试

集成Postman插件(一款功能强大的网页调试和发送网页HTTP请求的Chrome插件),通过对HTTP请求的创建和发送,完成对软件API接口请求、响应性能的测试。

编译构建

将代码编译构建为软件包(Jar包、War包、Helm包、容器镜像)。支持的构建步骤包括代码检出、构建、镜像构建、镜像上传、制作Helm包、软件包上传、运行Pipeline脚本、运行shell脚本、运行Windows批处理脚本。

自定义类型

自定义类型任务与编译构建任务相似,支持的步骤相同。区别在于自定义类型任务不是以编译构建为目的,还可以使用其中某些步骤来支持流水线任务的顺利运行。例如,在流水线任务中插入执行脚本等。

集成测试

在单元测试的基础上,将所有模块按照设计要求组装成为子系统或系统,进行集成测试。

人工审批

发起人工审批流程,审批通过后方可运行下一任务。

软件包流转

编译构建生成的软件包(Jar包、War包、Helm包、容器镜像),可以将其保存到其他PaaS平台。

部署到开发/测试/生产环境

流水线仅支持升级操作。第一次的部署操作需要您首先通过“编译构建”将代码构建为软件包,上传至软件仓库,再将软件包部署到应用组中。第一次部署完成后的升级操作均可以通过流水线执行,将再次编辑构建生成的新版本软件包部署到开发环境、测试环境、生产环境,完成环境中软件包的升级,包括滚动升级和灰度升级两种方式。

滚动升级

通过新的服务实例逐个更新来实现零停机的部署升级。即先升级并启动一台新版本,再停止其老版本,使得在整个滚动过程期间,保证始终有可用的副本在运行,从而平滑地发布新版本。优点是节约资源,不需要同时运行两倍的实例个数。缺点是回滚过程困难。

灰度升级

和滚动升级一样,灰度升级也会启动一个并存的新版应用。不同的是灰度升级支持新旧版服务间流量权重的自定义配置,新旧版本可同时对外提供服务,待新版验证完毕即可完成升级或取消升级,可以保证整体系统的稳定和平滑过渡。

运行流水线

选择运行本系统PaaS平台的流水线任务,也可以选择运行其他PaaS平台的流水线任务。