本文分享自華為雲社群《HouseKeeper雲上部署實踐-雲社群-華為雲》,作者:華為雲DTSE。
HouseKeeper(https://gitee.com/HuaweiCloudDeveloper/saas-housekeeper)是華為雲開發者團隊基于SaaS項目技術支援實踐,采用微服務架構(SpringCloud),結合華為雲服務能力開發的SaaS化開源項目,旨在為企業級開發者提供雲原生SaaS應用建構的技術參考,包括微服務架構、多租隔離設計、多租戶路由、資料存儲多租設計等。
源碼建構
代碼托管
将gitee上的個人fork倉同步到華為雲CodeArts(「連結」)平台上
啟用軟體開發流水線CodeArts
如下所示,選擇北京4啟用codeArts,其基礎版本免費試用,最大支援人數5人;編譯建構并發數5,600分鐘/月;代碼托管10G存儲空間,單個倉庫容量上限2G。
建立項目
如下所示,選擇scrum建立項目,自定義項目名稱,如HouseKeeper。Scrum是增量疊代式的軟體開發方法,通過疊代計劃會議、每日站會、疊代回顧、驗收會議等來簡單高效管理開發項目。
導入外部倉庫
如下所示,進行外部倉庫配置。
如下所示,複制gitee上源碼倉庫位址。
将源碼倉庫位址複制到codearts外部倉庫配置項中,并填寫gitee源碼倉通路資訊後進入下一步。
注意選擇同步全部分支,确認後建立倉庫。
基于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代碼倉可以檢視對應的修改記錄
建立鏡像倉庫
如下所示,按照helm-charts中修改的鏡像路徑,在北京4區域建立對應的組織。
建立并啟動建構任務
如下所示,建立建構任務。
自定義任務名稱,但為了友善維護,建議任務名稱同helm-charts中保持一緻。
選擇maven容器模闆。
設定任務參數,添加version字段,并設定為運作時設定。
如下所示,建構步驟中僅修改鏡像推送配置,其它資訊保持模闆預設配置即可,其中組織名即上述環節中設定的,鏡像名稱同helm-charts中對應,工作路徑即源碼倉中對應子產品的子路徑,完成配置後點選右上角【建立并執行】建構任務。
通過自定義模闆建構其它元件
如下所示,将上述saas-housekeeper-config-server的建構任務儲存為自定義模闆,名字自定義為House-Keeper。
如下所示,使用自定義模闆建立其它建構任務,其中,建構frontend前台任務時無需maven打包,工作路徑設定為代碼根路徑即可。
如下所示,相關子產品均已建構成功。
應用部署
Helm工具打包
Helm工具安裝
helm工具安裝參考連結,下載下傳對應的windows版本即可。
如下所示,設定好系統環境變量好,可以在git bash裡檢視工具版本。
下載下傳源碼到本地
如下所示,首次使用codearts時需要點選右上角個人使用者圖示,進入設定頁面,進行ssh/https相關配置。
如下所示,本次使用https方式下載下傳源碼,指令如下
git clone https://username:[email protected]/HouseKeeper00003/saas-housekeeper.git
helm打包安裝包
如下所示,使用helm工具打包,指令
helm.exe package ./helm-charts
helm.exe lint housekeeper-1.0.0.tgz
建立CCE叢集及工作節點
如下所示,按需購買CCE叢集,其中出于demo成本考慮,CCE叢集不啟用高可用模式。
CCE叢集建立需要時間,可在叢集頁面檢視執行過程。
待CCE叢集建立完成後,建立節點池,同樣成本考慮,節點數量及規格不用太大,本次示範數量設定2,磁盤類型高IO。
按需購買2個EIP資源。
在ECS主機頁面綁定EIP。
綁定EIP後如在CCE叢集節點看不到對應的EIP時,選擇手動同步雲伺服器。
導入模闆并安裝部署
如下所示,對應工作負載均已建立成功并正常運作。
建立ELB
為前段服務建立ELB通路
3 系統調測
配置内部域名解析
由于公網域名解析需要進行備案等,示範場景配置内部4級域名解析,具體相關要求請參考gitee對應項目的Readme。
建立測試PC
按需在對應VPC内建立windows鏡像的測試PC
修改測試PC的hosts檔案
如下所示,可以通過ping測試内部域名正常。
通過測試PC通路租戶注冊頁面
源碼對IE浏覽器支援不太友好,建議使用谷歌浏覽器進行測試,如下所示,通路租戶注冊頁面,其中域名即上述配置的内網域名解析記錄對應的。
http://housekeeper.saas.cloud.com/tenant/#register
其它操作可參考HouseKeeper(https://gitee.com/HuaweiCloudDeveloper/saas-housekeeper)開源項目繼續進行。
關注#華為雲開發者聯盟# 點選下方,第一時間了解華為雲新鮮技術~
華為雲部落格_大資料部落格_AI部落格_雲計算部落格_開發者中心-華為雲