天天看點

SaaS化開源項目之HouseKeeper雲上部署實踐

本文分享自華為雲社群《HouseKeeper雲上部署實踐-雲社群-華為雲》,作者:華為雲DTSE。

HouseKeeper(https://gitee.com/HuaweiCloudDeveloper/saas-housekeeper)是華為雲開發者團隊基于SaaS項目技術支援實踐,采用微服務架構(SpringCloud),結合華為雲服務能力開發的SaaS化開源項目,旨在為企業級開發者提供雲原生SaaS應用建構的技術參考,包括微服務架構、多租隔離設計、多租戶路由、資料存儲多租設計等。

源碼建構

代碼托管

将gitee上的個人fork倉同步到華為雲CodeArts(「連結」)平台上

啟用軟體開發流水線CodeArts

如下所示,選擇北京4啟用codeArts,其基礎版本免費試用,最大支援人數5人;編譯建構并發數5,600分鐘/月;代碼托管10G存儲空間,單個倉庫容量上限2G。

SaaS化開源項目之HouseKeeper雲上部署實踐

建立項目

如下所示,選擇scrum建立項目,自定義項目名稱,如HouseKeeper。Scrum是增量疊代式的軟體開發方法,通過疊代計劃會議、每日站會、疊代回顧、驗收會議等來簡單高效管理開發項目。

SaaS化開源項目之HouseKeeper雲上部署實踐

導入外部倉庫

如下所示,進行外部倉庫配置。

SaaS化開源項目之HouseKeeper雲上部署實踐

如下所示,複制gitee上源碼倉庫位址。

SaaS化開源項目之HouseKeeper雲上部署實踐

将源碼倉庫位址複制到codearts外部倉庫配置項中,并填寫gitee源碼倉通路資訊後進入下一步。

SaaS化開源項目之HouseKeeper雲上部署實踐

注意選擇同步全部分支,确認後建立倉庫。

SaaS化開源項目之HouseKeeper雲上部署實踐

基于IDE online 修改預置參數

使用IDE online一鍵建立工程

如下所示,在建立的代碼倉頁面,點選右上角IDE online自動進入IDE,系統會基于目前倉庫自動建立加載好相關工程。

SaaS化開源項目之HouseKeeper雲上部署實踐
SaaS化開源項目之HouseKeeper雲上部署實踐

切換分支為cloud1.0.0

如下所示,點選IDE online工程裡左下角,在工程上方彈出的分支清單中選擇cloud1.0.0分支。

SaaS化開源項目之HouseKeeper雲上部署實踐

修改源代碼中helm鏡像路徑

如下所示,将源碼中helm charts檔案中的鏡像路徑修改為對應倉庫,未避免名稱沖突,此處将鏡像修改為house-keeper-0504

SaaS化開源項目之HouseKeeper雲上部署實踐

修改源碼中gitee通路資訊

如下所示,修改helm/value.yaml檔案中 giteePassword、giteeUser字段,其中字段數值采用Base64進行混淆

global:
...
  giteePassword: xxx
  giteeUser: xxx
           

送出修改檔案

如下所示,将修改的檔案送出到codeArts倉庫。

SaaS化開源項目之HouseKeeper雲上部署實踐
SaaS化開源項目之HouseKeeper雲上部署實踐

或者通過指令行終端git指令方式送出修改。

cd helm-charts
git add values.yaml
git commit -m "修改gitee通路資訊"
git remote -v
git push origin cloud-1.0.0
           

如下所示,在codearts代碼倉可以檢視對應的修改記錄

SaaS化開源項目之HouseKeeper雲上部署實踐

建立鏡像倉庫

如下所示,按照helm-charts中修改的鏡像路徑,在北京4區域建立對應的組織。

SaaS化開源項目之HouseKeeper雲上部署實踐

建立并啟動建構任務

如下所示,建立建構任務。

SaaS化開源項目之HouseKeeper雲上部署實踐

自定義任務名稱,但為了友善維護,建議任務名稱同helm-charts中保持一緻。

SaaS化開源項目之HouseKeeper雲上部署實踐

選擇maven容器模闆。

SaaS化開源項目之HouseKeeper雲上部署實踐

設定任務參數,添加version字段,并設定為運作時設定。

SaaS化開源項目之HouseKeeper雲上部署實踐

如下所示,建構步驟中僅修改鏡像推送配置,其它資訊保持模闆預設配置即可,其中組織名即上述環節中設定的,鏡像名稱同helm-charts中對應,工作路徑即源碼倉中對應子產品的子路徑,完成配置後點選右上角【建立并執行】建構任務。

SaaS化開源項目之HouseKeeper雲上部署實踐

通過自定義模闆建構其它元件

如下所示,将上述saas-housekeeper-config-server的建構任務儲存為自定義模闆,名字自定義為House-Keeper。

SaaS化開源項目之HouseKeeper雲上部署實踐

如下所示,使用自定義模闆建立其它建構任務,其中,建構frontend前台任務時無需maven打包,工作路徑設定為代碼根路徑即可。

SaaS化開源項目之HouseKeeper雲上部署實踐
SaaS化開源項目之HouseKeeper雲上部署實踐

如下所示,相關子產品均已建構成功。

SaaS化開源項目之HouseKeeper雲上部署實踐

應用部署

Helm工具打包

Helm工具安裝

helm工具安裝參考連結,下載下傳對應的windows版本即可。

如下所示,設定好系統環境變量好,可以在git bash裡檢視工具版本。

SaaS化開源項目之HouseKeeper雲上部署實踐

下載下傳源碼到本地

如下所示,首次使用codearts時需要點選右上角個人使用者圖示,進入設定頁面,進行ssh/https相關配置。

SaaS化開源項目之HouseKeeper雲上部署實踐

如下所示,本次使用https方式下載下傳源碼,指令如下

git clone https://username:[email protected]/HouseKeeper00003/saas-housekeeper.git
           
SaaS化開源項目之HouseKeeper雲上部署實踐

helm打包安裝包

如下所示,使用helm工具打包,指令

helm.exe package ./helm-charts
helm.exe lint housekeeper-1.0.0.tgz
           
SaaS化開源項目之HouseKeeper雲上部署實踐

建立CCE叢集及工作節點

如下所示,按需購買CCE叢集,其中出于demo成本考慮,CCE叢集不啟用高可用模式。

SaaS化開源項目之HouseKeeper雲上部署實踐

CCE叢集建立需要時間,可在叢集頁面檢視執行過程。

SaaS化開源項目之HouseKeeper雲上部署實踐

待CCE叢集建立完成後,建立節點池,同樣成本考慮,節點數量及規格不用太大,本次示範數量設定2,磁盤類型高IO。

SaaS化開源項目之HouseKeeper雲上部署實踐

按需購買2個EIP資源。

SaaS化開源項目之HouseKeeper雲上部署實踐

在ECS主機頁面綁定EIP。

SaaS化開源項目之HouseKeeper雲上部署實踐

綁定EIP後如在CCE叢集節點看不到對應的EIP時,選擇手動同步雲伺服器。

SaaS化開源項目之HouseKeeper雲上部署實踐

導入模闆并安裝部署

SaaS化開源項目之HouseKeeper雲上部署實踐
SaaS化開源項目之HouseKeeper雲上部署實踐

如下所示,對應工作負載均已建立成功并正常運作。

SaaS化開源項目之HouseKeeper雲上部署實踐

建立ELB

為前段服務建立ELB通路

SaaS化開源項目之HouseKeeper雲上部署實踐

3 系統調測

配置内部域名解析

由于公網域名解析需要進行備案等,示範場景配置内部4級域名解析,具體相關要求請參考gitee對應項目的Readme。

SaaS化開源項目之HouseKeeper雲上部署實踐

建立測試PC

按需在對應VPC内建立windows鏡像的測試PC

SaaS化開源項目之HouseKeeper雲上部署實踐

修改測試PC的hosts檔案

SaaS化開源項目之HouseKeeper雲上部署實踐

如下所示,可以通過ping測試内部域名正常。

SaaS化開源項目之HouseKeeper雲上部署實踐

通過測試PC通路租戶注冊頁面

源碼對IE浏覽器支援不太友好,建議使用谷歌浏覽器進行測試,如下所示,通路租戶注冊頁面,其中域名即上述配置的内網域名解析記錄對應的。

http://housekeeper.saas.cloud.com/tenant/#register
           
SaaS化開源項目之HouseKeeper雲上部署實踐

其它操作可參考HouseKeeper(https://gitee.com/HuaweiCloudDeveloper/saas-housekeeper)開源項目繼續進行。

關注#華為雲開發者聯盟# 點選下方,第一時間了解華為雲新鮮技術~

華為雲部落格_大資料部落格_AI部落格_雲計算部落格_開發者中心-華為雲

繼續閱讀