微服務架構下的自動化部署,使用Jenkins來實現!

SpringBoot實戰電商項目mall(25k+star)地址: https://github.com/macrozheng/mall

摘要

在微服務架構中,隨着服務愈來愈多,服務的打包部署就會成爲一個至關麻煩的事情。好比說個人mall-swarm項目目前就有8個服務須要部署,有沒有什麼辦法讓咱們部署一次以後,只要點擊執行就能夠自動部署呢?固然有!下面咱們使用Jenkins來完成一個微服務架構中的自動化部署工做。git

Jenkins的基本使用

關於Jenkins的基本使用能夠參考:使用Jenkins一鍵打包部署SpringBoot應用,就是這麼6!github

執行腳本準備

首先咱們先把須要遠程執行的腳本準備好。
  • 腳本文件都存放在了mall-swarm項目的/document/sh目錄下:

  • 上傳腳本前在IDEA中修改全部腳本文件的換行符格式爲LF,不然腳本會沒法執行;

  • 將全部腳本文件上傳到指定目錄,這裏咱們上傳到/mydata/sh目錄下;

  • 將全部腳本文件都修改成可執行文件:
chmod +x ./mall-*

Jenkins中建立任務

接下來咱們將經過在Jenkins中建立任務來實現自動化部署。因爲咱們的 mall-swarm是個多模塊的項目,部署上面和曾經的單模塊項目仍是有所區別的。

mall-admin

因爲各個模塊的執行任務的建立都大同小異,下面將詳細講解mall-admin模塊任務的建立,其餘模塊將簡略講解。
  • 首先咱們選擇構建一個自由風格的軟件項目,而後輸入任務名稱爲mall-admin,配置其Git倉庫地址,這裏我直接使用了Gitee上面的地址:

  • 以後咱們建立一個構建,構建mall-swarm項目中的依賴模塊,不然當構建可運行的服務模塊時會由於沒法找到這些模塊而構建失敗;
# 只install mall-common,mall-mbg,mall-security三個模塊
clean install -pl mall-common,mall-mbg,mall-security -am
  • 依賴項目構建示意圖:

  • 再建立一個構建,單獨構建並打包mall-admin模塊:

  • 添加一個構建來經過SSH去執行遠程任務,用於執行mall-admin的運行腳本:

  • 點擊保存,完成mall-admin的執行任務建立。

mall-registry

mall-registry和其餘模塊與mall-admin建立任務方式基本一致,只需修改構建模塊時的 pom.xml文件位置和 執行腳本位置便可。
  • 咱們能夠直接從mall-admin模塊的任務複製一個過來建立:

  • 修改第二個構建中的pom.xml文件位置,改成:${WORKSPACE}/mall-registry/pom.xml

  • 修改第三個構建中的SSH執行腳本文件位置,改成:/mydata/sh/mall-registry.sh

  • 點擊保存,完成mall-registry的執行任務建立。

其餘模塊

其餘模塊的執行任務建立,參考mall-admin和mall-registry的建立便可。bash

任務建立完成

模塊啓動順序問題

關於各個模塊的啓動順序問題, mall-registry模塊必須第一個啓動, mall-config模塊必須第二個啓動,其餘模塊沒有啓動順序限制。

推薦啓動順序:架構

  • mall-registry
  • mall-config
  • mall-monitor
  • mall-gateway
  • mall-admin
  • mall-portal
  • mall-search
  • mall-demo

總結

咱們經過在Jenkins中建立任務,完成了微服務架構中服務的打包部署工做,這樣當咱們每次修改完代碼後,只需點擊啓動任務,就能夠實現一鍵打包部署,省去了頻繁打包部署的麻煩。微服務

項目地址

https://github.com/macrozheng/mall-swarmpost

公衆號

mall項目全套學習教程連載中,關注公衆號第一時間獲取。學習

公衆號圖片

相關文章
相關標籤/搜索