SaaS化開源項目之HouseKeeper云上部署實踐
摘要:華為云DTSE技術專家從源碼構建、應用部署到系統調測,詳細解讀云原生SaaS應用構建的全過程。
本文分享自華為云社區《HouseKeeper云上部署實踐》,作者:華為云DTSE。
HouseKeeper是華為云開發者團隊基于SaaS項目技術支持實踐,采用微服務架構(SpringCloud),結合華為云服務能力開發的SaaS化開源項目,旨在為企業級開發者提供云原生SaaS應用構建的技術參考,包括微服務架構、多租隔離設計、多租戶路由、數據存儲多租設計等。
一、源碼構建
1.代碼托管
將gitee上的個人fork倉同步到華為云CodeArts平臺上
啟用軟件開發流水線CodeArts
如下所示,選擇北京4啟用CodeArts,其基礎版本免費試用,最大支持人數5人;編譯構建并發數5,600分鐘/月;代碼托管10G存儲空間,單個倉庫容量上限2G。
創建項目
如下所示,選擇scrum創建項目,自定義項目名稱,如HouseKeeper。Scrum是增量迭代式的軟件開發方法,通過迭代計劃會議、每日站會、迭代回顧、驗收會議等來簡單高效管理開發項目。
導入外部倉庫
如下所示,進行外部倉庫配置。
如下所示,復制gitee上源碼倉庫地址。
將源碼倉庫地址復制到codearts外部倉庫配置項中,并填寫gitee源碼倉訪問信息后進入下一步。
注意選擇同步全部分支,確認后創建倉庫。
2、基于IDE online 修改預置參數
使用IDE online一鍵創建工程
如下所示,在新建的代碼倉頁面,點擊右上角IDE online自動進入IDE,系統會基于當前倉庫自動創建加載好相關工程。

切換分支為cloud1.0.0
如下所示,點擊IDE online工程里左下角,在工程上方彈出的分支列表中選擇cloud1.0.0分支。
修改源代碼中helm鏡像路徑
如下所示,將源碼中helm charts文件中的鏡像路徑修改為對應倉庫,未避免名稱沖突,此處將鏡像修改為house-keeper-0504
修改源碼中gitee訪問信息
如下所示,修改helm/value.yaml文件中 giteePassword、giteeUser字段,其中字段數值采用Base64進行混淆
global: ... giteePassword: xxx giteeUser: xxx
提交修改文件
如下所示,將修改的文件提交到codeArts倉庫。

或者通過命令行終端git命令方式提交修改。
cd helm-charts git add values.yaml git commit -m "修改gitee訪問信息" git remote -v git push origin cloud-1.0.0
如下所示,在codearts代碼倉可以查看對應的修改記錄
3、創建鏡像倉庫
如下所示,按照helm-charts中修改的鏡像路徑,在北京4區域創建對應的組織。
4、創建并啟動構建任務
如下所示,新建構建任務。
自定義任務名稱,但為了方便維護,建議任務名稱同helm-charts中保持一致。
選擇maven容器模板。
設置任務參數,添加version字段,并設置為運行時設置。
如下所示,構建步驟中僅修改鏡像推送配置,其它信息保持模板默認配置即可,其中組織名即上述環節中設置的,鏡像名稱同helm-charts中對應,工作路徑即源碼倉中對應模塊的子路徑,完成配置后點擊右上角【新建并執行】構建任務。
5、通過自定義模板構建其它組件
如下所示,將上述saas-housekeeper-config-server的構建任務保存為自定義模板,名字自定義為House-Keeper。
如下所示,使用自定義模板創建其它構建任務,其中,構建frontend前臺任務時無需maven打包,工作路徑設置為代碼根路徑即可。

如下所示,相關模塊均已構建成功。
二、應用部署
1、Helm工具打包
Helm工具安裝
helm工具安裝參考鏈接,下載對應的windows版本即可。
如下所示,設置好系統環境變量好,可以在git bash里查看工具版本。
下載源碼到本地
如下所示,首次使用codearts時需要點擊右上角個人用戶圖標,進入設置頁面,進行ssh/https相關配置。


如下所示,本次使用https方式下載源碼,命令如下
git clone https://username:password@codehub.devcloud.cn-north-4.huaweicloud.com/HouseKeeper00003/saas-housekeeper.git
helm打包安裝包
如下所示,使用helm工具打包,命令
helm.exe package ./helm-charts helm.exe lint housekeeper-1.0.0.tgz
2、創建CCE集群及工作節點
如下所示,按需購買CCE集群,其中出于demo成本考慮,CCE集群不啟用高可用模式。
CCE集群創建需要時間,可在集群頁面查看執行過程。
待CCE集群創建完成后,創建節點池,同樣成本考慮,節點數量及規格不用太大,本次演示數量設置2,磁盤類型高IO。
按需購買2個EIP資源。
在ECS主機頁面綁定EIP。
綁定EIP后如在CCE集群節點看不到對應的EIP時,選擇手動同步云服務器。
3、導入模板并安裝部署

如下所示,對應工作負載均已創建成功并正常運行。
4、創建ELB
為前段服務創建ELB訪問
三、系統調測
1、配置內部域名解析
由于公網域名解析需要進行備案等,演示場景配置內部4級域名解析,具體相關要求請參考gitee對應項目的Readme。
2、創建測試PC
按需在對應VPC內創建windows鏡像的測試PC
3、修改測試PC的hosts文件
如下所示,可以通過ping測試內部域名正常。
4、通過測試PC訪問租戶注冊頁面
源碼對IE瀏覽器支持不太友好,建議使用谷歌瀏覽器進行測試,如下所示,訪問租戶注冊頁面,其中域名即上述配置的內網域名解析記錄對應的。
http://housekeeper.saas.cloud.com/tenant/#register
其它操作可參考HouseKeeper開源項目繼續進行。
浙公網安備 33010602011771號