
# 概述
#### 背景
完成代码开发后，每次上线前需先在Jenkins上打包成镜像或软件包，再将镜像手动上传到swr或者将软件包手动上传到obs，然后去CAE升级组件。该流程较为繁琐，频繁发版测试导致开发和运维效率低，体验差，提供如下最佳实践提高开发效率。下面以Java项目的构建、部署为例提供了完整的代码提交\>\>Jenkins构建\>\>软件包上传/镜像上传\>\>CAE部署的指导，如涉及其他语言如Golang等只需对应安装编译构建环境即可。
#### 适用场景
此功能适用于您的代码已在Gitlab上管理，通过Jenkins构建打包，使用CAE进行应用托管， 并且已经部署了组件之后，需要进行组件升级的场景。
第一次部署请参考[创建组件](https://support.huaweicloud.com/usermanual-cae/cae_03_0005.html)。
#### 解决方案
提供上传jar包和镜像并升级CAE组件的方案，输出一个shell脚本在Jenkins构建打包完成之后调用脚本自动部署到CAE环境中，实现代码合入后自动构建打包部署。
#### 流程优化对比
当前上线流程图如下：
![](https://support.huaweicloud.com/bestpractice-cae/zh-cn_image_0000001391372472.png "点击放大")
使用该方案后的流程图如下：
![](https://support.huaweicloud.com/bestpractice-cae/zh-cn_image_0000001441373885.png)
