Jenkins 自动化部署流水线优化经验
- 1.1 跳过测试类
- 1.2 使用较为稳定的jenkins 企业长期支持版本
- 1.3 限制Jenkins 使用内存大小
这篇博文主要总结下在生产环境使用Jenkins 实现自动化构建部署的优化经验。
我们知道在传统的单体架构中,一个服务器可能只部署一两个企业应用,对于内存的管理不需要刻意优化,但是到了微服务时代,一台服务器上可能会同时部署多个微服务,每个微服务又可能分为dev,test,uat,prod 环境,这时候如果配置不当,服务器内存会时不时报内存不足。
1.1 跳过测试类
在Jenkinsfile 文件中配置maven的构建打包的时候最好配置跳过测试类。
示例如下:
sh 'mvn clean package -Dmaven.test.skip=true'
注意事项:
如果不跳过测试类的话,当部署的微服务很多的时候,jenkins 部署过程中会吃掉大量内存。
1.2 使用较为稳定的jenkins 企业长期支持版本
下载的时候建议使用较为稳定的jenkins 企业长期支持版本
其中企业长期支持版本中,Jenkins 2.2631 版本是有坑的版本,有时候保存的值没法保存成功。
目前公司用的Jenkins 2.263.4 版本还是比较稳定的,UI等感觉优化清爽了很多。
1.3 限制Jenkins 使用内存大小
Jenkins 如果不限制使用内存大小可能会造成已经部署好的一些微服务被Linux 内核因为内存不足导致错杀掉。
配置示例如下:
配置值示例如下:
JAVA_OPTS
-server -Xms2048m -Xmx2048m -XX:PermSize=1024m -XX:MaxPermSize=1024m
这里根据自己的服务器剩余内存来做限制。
由于Jenkins直接部署jar 容易存在资源消耗过大影响其他应用问题,所以如今很多公司都采用Jenkins容器化部署镜像方式,可以通过配置严格限制每个镜像使用的内存,CPU等资源。