引言
WeCube是一套開源的,一站式IT架構管理和運維管理工具,主要用于簡化分布式架構IT管理,并可以通過插件進行功能擴展,
起源
微眾銀行在分布式架構實踐的程序中,發現將銀行核心系統構建于分布式架構之上,會遇到一些與傳統單體應用不同的痛點(例如,服務器增多,部署難度大;呼叫鏈長,全鏈路跟蹤困難; 系統復雜,問題定位時間長等),在逐步解決這些痛點的程序中,總結了一套IT管理的方法論和最佳實踐,并研發了與之配套的IT管理工具體系,WeCube就是將該套方法論和最佳實踐,從微眾內部眾多IT管理工具體系中提煉出來,整合成一套開箱即用的IT管理解決方案,
設計理念

WeCube的設計理念與IT系統生命周期管理基本一致,可以通過“六個維度和一個核心”來闡述,
一個核心:通過注冊新插件持續擴展WeCube的功能,通過如下5個能力實作插件注冊及協作,插件注冊詳見“插件注冊”,
- 選單布局:WeCube提供前端UI基座和前端開發規范,使各個插件的前端互動能夠無縫集成到WeCube,進而形成一個統一平臺,
- 權限模型:WeCube的權限模型提供“用戶-角色-選單”三級權限模型,并提供統一認證方案,資料權限及API權限,由插件自身控制,
- 流程編排:WeCube內置一套標準的BPMN流程引擎,可以通過客戶自定義編排驅動插件協同作業,減少人工干預,編排設計詳見“編排設計”,
- 資料模型:插件需要將自身需要提供給其他插件使用的資料模型注冊到WeCube的統一資料模型,然后通過標準的CRUD介面提供資料訪問服務,
- 系統引數:WeCube的全域引數、插件需要客戶修改、插件需要暴露給其他插件使用的引數,需要注冊到WeCube的系統引數內,
六個維度:通過定義六個維度的選單,并將插件功能有組織性的插入這六個維度選單中,形成對IT系統全生命周期的有效管理,
- 任務:匯聚多種型別任務,形成一體化的作業平臺,作業內容清晰可見,輕重緩急一目了然,
- 設計:定義模型和規范,形成標準化設計語言,通過規范化設計及圖形化展示,清晰、準確地描繪出對分布式架構的期望,
- 執行:通過各類自動化、標準化任務的執行,將分布式架構的期望設計變成現實存在,消除人員能力參差不齊導致的實作差異,
- 監測:定義全方位的監測項指標,通過持續收集監測資料,精確反映現狀,并發現現實與期望的差異項,
- 智慧:應用機器學習等技術,賦予智慧能力,通過數學建模,制定應對監測發現的差異項的處理策略,
- 調整:通過執行處理策略來不斷進行動態調整,最終保持現實與期望的對等,進而使系統穩定運行,
技術實作
WeCube分為核心功能模塊和插件模塊,
核心功能模塊使用Java/MySQL/VUE開發,主要負責作業流程,可視化和核心資料存盤,
插件模塊用于功能擴展,分為資源管理、資料整合、功能增強三類插件,對于插件,WeCube定義了一套介面規范,插件開發者可以在遵循規范的前提下,自行選擇開發語言,目前已有的插件使用的開發語言包括GO語言和Java,
系統架構
WeCube 2.0版本

組件間詳細關聯圖:

主要功能簡介
WeCube的功能選單設計與設計理念保持一致,分別是任務、設計、執行、監測、智慧、調整、協同、系統,
系統
- 系統引數:管理WeCube Platform運行所需的系統引數,
- 資源管理:管理WeCube提供的資源如容器母機及資源上運行的實體,
- 權限管理:管理WeCube Platform的用戶,角色和選單,可以對權限進行選單級別的管控,
協同
- 插件注冊:選擇插件包上傳,插件包需宣告本插件的依賴、所需選單、資料模型、系統引數、權限設定及運行資源,注冊后通過容器運行,支持多實體,可以查看插件運行的日志,選擇插件服務,通過插件運行的引數關聯CMDB資料模型的屬性值,形成注冊,
- 任務編排:比如設計一個VPC創建的編排,包括創建VPC、創建子網、創建VM,流程的每個執行節點需要關聯插件,
設計(WeCMDB插件提供)
- 規劃設計:用于設計機房結構,
- 資源規劃:用于實體化一個機房,特別是兩地三中心結構,
- 應用架構設計:用于設計一個應用的邏輯架構,
- 應用部署設計:用于實際部署一個應用,支持灰度發布,
- CI資料管理/查詢:通過模型圖形進入單個資料管理以及查詢,
- CI綜合查詢管理/資料綜合查詢:用于配制多CI屬性報表,比如一個應用使用到了哪些主機,
- 列舉資料管理/查詢:通過對公共列舉和私有列舉進行管理以及查詢,
執行
- 編排任務執行:在選擇編排后可對選擇目標物件執行編排,支持灰度操作,比如重啟某個資源集的5臺主機,
- 物料管理(Artifacts插件提供):管理應用程式的包,可以定義各種檔案,可以配置環境差異導致的變數替換規則,不需要人工處理,
- 批量執行:通過配置綜合查詢并選擇目標,在通過特定插件來執行任務,比如某個應用的所有主機,執行一個用戶權限變更,
任務(Service-Management插件提供)
- 模板管理:服務目錄管理, 服務請求模板管理;
- 服務管理:服務請求管理,任務管理;
監測(Open-Monitor插件提供)
- Agent管理: 注冊、啟動、停止;
- 資料管理: 提供資料采集配置, 資料查詢等功能;
- 告警管理: 提供閾值配置、日志監控、告警觸發等功能;
- 視圖管理: 提供圖形配置和自定義視圖功能;
核心流程時序說明:
插件注冊時序圖:

編排任務執行:

- 采用容器化部署,
- 使用Java和VUE進行開發,資料存盤于MySQL,并依賴Tomcat Web容器運行,
-
專案原始碼獲取方式:點擊這里查看獲取方式
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/317745.html
標籤:其他
