如今的持續集成,由於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服務器 - 支持多環境