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