现在的持续集成,因为docker技术的成熟,有了长足的进步。
记得我在以前的公司的时候,测试环境还有生产环境的发布都需要组长来发布。有时候,他忙的话,发布就会延后,特别是测试环节,直接影响效率。后来在我的要求下,他把测试环境服务器连接的信息发我。测试环境我可以发布了。但是有时候我也忙,测试也要等我。所以我就想简化发布的流程,可以提高效率。
后来我想用jekins来进行CI(持续集成)。但是由于种种原因,并没有执行。所以我希望在现在的公司可以采用。并且加入docker容器技术来进一步提高效率。
现在的公司,虽然我把发布告诉了组员,但是发现还是挺麻烦的,每次都要打那该死的命令。感觉挺无聊的,也不高效,有时候还是会有搞错的情况,所以需要搭建持续集成的环境。由于web层被我拆分了,这就加大了部署的难度。如果用传统的方式,我需要搭建很多个tomcat,即使我搭建好了,后面的维护和发布也不是特别好的事情。我需要把jekins搭建起来,使部署是一件方便的事情。
首先我需要在自己的电脑的虚拟机上把jekins搭建起来。自己测试通过了,然后再在公司上采用起来。只有把这些机械而单调的事情自动化了,才可以把精力放在更加重要的事情上。
可以用maven插件来帮助这个过程。比如maven-tomcat-plug 。最近了解到一个如同黑科技般存在的东西,那就是capsule,可以让普通的war包变成runable的war包。就是在打包的时候把jetty加入到其中。感觉很厉害的样子。也可以用jettyrunner的方式来部署war包,这样就不需要一一搭建tomcat了。
java -jar jettyrunner normal.war --port 8090 --path /test
其实比较好的解决方案是web层,采用spring boot的方式来整合,但是遇到了@autowried为null的情况,暂时不好解决。
因为部署的时候要对用户无察觉,所以用了nginx反向代理的负载均衡的方法,所以对于nginx的配置文件重加载也是一件需要解决的事情。想写成一个脚本,让这些事情可以更加自动化。
再探索如何更好的部署这件事情上,发现jetty也是一个不错的存在,以前知道这个东西,也用过这个插件,(在clone别人的项目的时候,发现了这个插件,但是并没有太多的重视)。
关于jetty的更多了解可以查看官网,jetty的maven插件使用,在idea使用jetty,jetty maven热部署配置该如何配置
关于maven插件,可以查看这篇文章。Tomcat热部署:Maven项目一键部署到Tomcat服务器 - 支持多环境