JAVA持續集成

 

目錄

 

1. 持續集成總體介紹 

2. harbor介紹

3. rancher介紹

4. 部署流程

5. 具體功能實現 


1. 持續集成總體介紹 

 

      持續集成的作用是快速有序部署、記錄每次發版的相關信息,讓產品的迭代穩定有序。版本號一般有四位1.0.0.0,第一位是主版本號,第二位是子版本號,第三位是修正版本號,前三位是公開對外的版本號,最後一位是內部發版的流水號,最終內部測驗成功對外發布時去除最後一位。

       涉及的組件包括git+maven+jenkins+Nexus+docker+rancher+harbor,其中rancher、harbor是部署docker鏡像的非必須,nexus是jar包的私服。普通小項目使用git+maven+jenkins就足夠了。採用nexus、harbor做私有倉庫的目的是存儲每次發版的啓動包,方便版本回滾,多環境部署等。git、maven、jenkins、nexus這四個組件默認開發是很熟悉的,自動部署是必須要用到的基礎組件不做特殊介紹。下面主要介紹介紹下rancher、harbor.

2. harbor介紹

        harbor是docker最好用的私有鏡像倉庫,提供了對鏡像的分類管理、倉庫間的快速複製拉取能有效的解決遠程倉庫間的鏡像同步問題。docker鏡像倉庫爲Registry,但原生的Registry的UI簡單,harbor與nexus3.*都對其做了封裝,相比harbor的封裝來說nexus3.*更貼切的形容應該是集成了Registry,所以方便程度、可視化效果層面遠不如harbor專業。今天就主要對harbor做個使用層面的介紹。

harbor下載地址:https://github.com/docker/compose/releases

harbor安裝參考:https://blog.csdn.net/qq_39314099/article/details/105707689

        harbor2.*的安裝很簡單,解壓啓動大功告成。從效果圖上我們可以清晰的看出harbor界面管理的強大,對鏡像做了合理的分類展現,也對倉庫間的鏡像複製推送提供了界面化支持。我們可以很方便的把我們公有的、私有的鏡像按項目分開,也可以給各個項目設置登錄權限,方便對項目做權限管理。

3. rancher介紹

       有了倉庫就該對docker做部署了,對docker的部署,最輕量的工具是rancher.rancher的安裝很簡單,docker pull rancher/rancher . 直接運行鏡像就行,不多做介紹了。

        rancher由大類到小類分別是環境、應用、服務。環境是部署環境比如開發環境、測試環境、正式環境,不同環境間的主機是互相隔離的,保障了不同環境的獨立性。每個環境下可以細分 一些應用,比如我們簡單分爲開發代碼、數據庫組件、其他組件如zookeeper、filebeat、nacos等,應用就是對服務的分類,相當於小組的概念。服務就是對單一容器的管理,概念差不多雷同鏡像,啓動服務就會操作對應的docker容器。另外基於環境我們可以添加N多臺主機,主機的添加可比較簡單,選擇基礎架構下的主機菜單就能爲rancher的對應環境添加主機,主機上會清晰的展現出正在運行的docker容器,並且直接在上面操作容器。因此rancher很適合中小公司用來管理docker,它直觀、功能齊全、性能穩定。

4. 部署流程

         rancher聯通harbor倉庫,jenkins添加rancher插件,java調用jenkins接口完美的實現了界面控制發版的邏輯。從大方向來說基礎的持續集成包括以下幾大流程:

         1) 生成啓動包  生成的過程是開發提交git --> jenkins打包啓動 --> 測試人員測試 -->定版/回滾 -->存入倉庫

         2) 附加需要的其他文件與啓動包一起構成升級啓動的準備條件如sql、配置文件更改內容等

         3) 基於生成的啓動包,啓動對應環境,完成代碼迭代升級,具體流程如下。

5. 具體功能實現 

基礎模塊包括     模塊管理  --錄入全部模塊     數據源管理     jenkins管理     產品管理 主功能點包括     研發提交  --開發提交代碼,提交內容包括代碼、sql     提交查詢  --開發人員可以查看並作廢自己的提交     測試發版  --根據開發提交內容,在測試環境編譯並啓動           解釋:主要過程就是jenkins的編譯、部署、上傳私服     正式發版  --將本次測試發佈的最高版本更名爲正式版存入私服           解釋:主要過程就是jenkins更改jar包名換成正式版按本的名字其推送到私服     部署      --根據正式發版產生的啓動項代賠該環境需要的部署文件選擇對應jenkins啓動路徑,進行環境部署或更新          解釋:主要過程就是jenkins從私服拉取對應啓動包進行啓動部署     回滾      --發版失敗後根據部署應用退回到上一版,因爲私服裏存儲了各個版本的啓動包回退的過程就是找前一個版本的包     結果查詢  --查詢部署是否成功,失敗提供失敗日誌     版本查詢  --查詢歷次發版內容 從各個功能看,雖然細節較多,難度並不大