1、微服務架構體系的深度治理天弘基金(余額寶)目錄 服務治理發展簡史單體應用企業級SOA互聯網服務化微服務 微服務度量 微服務線上體系治理 微服務線下體系治理治理問題梳理改進優化復雜度服務治理發展簡史單體應用沒有服務的概念,所以談不上“服務治理”,復雜度來自于自身內部組件,由于組件化的管理需要,衍生出“組件治理”的需求。服務治理發展簡史企業級SOA 主要解決已有系統的整合(互聯互通)問題 技術實現及流程繁瑣復雜、治理成本高 覆蓋面廣、涵蓋企業IT各方面,和IT治理重疊度高 傳統IT大廠(IBM、Oracle)把持標準 手工治理比重大、自動化程度不足SOA服務治理服務治理發展簡史互聯網服務化 伴隨業
2、務拆分應運而生 主要解決業務的快速響應及系統復雜性擴散問題 實現形式五花八門,有標桿、但沒有統一標準 聚焦線上服務的生命周期治理 強調自動化CacheDBNFS/DFSLoad Balancerwebsitewebsitewebsiteserverserverserverserver服務治理發展簡史微服務 大平臺、微服務 和容器技術緊密結合 量變導致質變,不僅僅是服務化架構的延伸組織架構、管理策略、研發模式、測試、運維等領域都要做出相應的調整,以為微服務架構的落地創造合適的“土壤”。線上線下一體、全生命周期的立體化治理 強調自動化、智能化“任何組織在設計一套任何組織在設計一套系統時系統時,所交
3、付的設計方案在結所交付的設計方案在結構上都與該組織的溝通結構保持一致構上都與該組織的溝通結構保持一致?!笨低煞罩卫戆l展簡史微服務治理整體架構:三位一體線下線上度量管控管理目錄 服務治理發展簡史 微服務度量全生命周期度量指標獲取度量及分析體系 微服務線上體系治理 微服務線下體系治理如果你不能度量它,你就無法改進它 彼得.德魯克微服務度量全生命周期度量指標獲取產品 UserStory 需求開發 人員 團隊 任務 產出物測試 測試用例 Bug/缺陷運維 調用量 調用延時 系統異常 業務異常 運維事件持續集成敏捷DevOps持續交付協同管理過程過程事件線下需求管理系統項目管理系統測試用例管理系統
4、缺陷管理系統CI/CD流水線運維流程管理平臺軟件版本倉庫源碼倉庫 線上服務注冊中心主機日志應用/服務日志APM監控 是不是少了點什么?微服務度量用代碼來“理解”代碼業務需求產品設計架構設計軟件研發是一項協作性的智力行為,所有的思考、意圖、策略最終都體現在了代碼上。因此,一個系統的代碼就是一本“書”,讀懂它,我們就能知道系統的“前世今生”。問題是,我們如何“讀懂”這本“書”?入口關系繼承實現代碼關系鏈路關系一切源于源代碼微服務度量微服務治理度量及分析體系目錄 服務治理發展簡史 微服務度量 微服務線上體系治理服務限流集群容錯服務降級、熔斷故障定界定位容量規劃資源治理線上生命周期管理 微服務線下體系
5、治理微服務線上體系治理服務限流接口調用路由尋址協議編碼遠程通信服務調用實例定位協議解碼遠程通信序列化流控模式1流控模式2流控模式3限流算法選擇策略:漏桶算法 令牌桶算法限流難點:標準化 體系化限流原則:限流前置單機限流集群限流微服務線上體系治理集群容錯微服務線上體系治理服務降級、熔斷關閉打開半開失敗達到開關閾值失敗低于開關閾值熔斷器時間窗結束失敗成功成功創建Command熔斷器開啟?線程池拒絕?執行執行失???執行超時?執行FallbackFallback成功?獲取結果是,返回fallback否,拋出異常否是是是是否否Metrics否,返回結果 標準化 體系化 預案化微服務線上體系治理故障定界定
6、位故障點異常排序大盤異常明細大盤異常明細列表請求調用鏈性能大盤訪問散點圖1:異常排查2:異常排查3:性能排查微服務線上體系治理容量規劃 容量預估 基于“依賴”關系逐層推進的性能壓測 性能壓測數據的準備及區隔微服務線上體系治理資源治理 從服務的視角看資源 基于應用視角的數據庫(DB)性能及容量優化(慢查詢、高頻調用、)基于應用視角的緩存(Cache)性能優化(讀寫比例、命中率)基于應用視角的消息隊列(MQ)性能優化(生產、消費、堆積)基于應用視角的其它資源性能(或容量)優化(XX指標、YY指標、)A服務B服務C服務D服務DBCache調用次數:1000總耗時:109600ms成功:998 失?。?/p>
7、2調用次數:998耗時:44000ms成功:998 調用次數:998耗時:32000ms成功:998MQ調用次數:2103總耗時:11000ms動作:send成功:2103調用次數:998總耗時:10ms動作:update,insert,select成功:998 失?。?調用次數:4421總耗時:5432ms動作:send,put成功:4421資源調用情況微服務線上體系治理線上生命周期管理“云化”助力微服務架構落地 服務上線、下線 服務擴容、縮容 彈性計算資源是基礎 資源編排 資源調度目錄 服務治理發展簡史 微服務度量 微服務線上體系治理 微服務線下體系治理架構治理開發治理測試治理構建調測能力
8、協同管理治理微服務線下體系治理架構治理 DAG的閉環檢測 最長調用深度檢測 核心服務檢測 冗余服務檢測微服務線下體系治理架構治理“迪米特法則”遵循度檢測 通過動、靜調用鏈路的結合清除冗余設計 多余的業務邏輯鏈路 異常處理鏈路 舊版本兼容無觸發邏輯微服務線下體系治理開發治理 代碼質量 跨方法級別的代碼質量檢測 注釋密度及完備性檢測 個人開發質量 個人線上質量度量:異常服務開發人員 個人代碼質量度量 團隊開發質量 團隊線上質量度量 團隊代碼質量度量微服務線下體系治理測試治理 測試覆蓋度 需求覆蓋度 代碼覆蓋度 頁面覆蓋度 測試用例維護成本度量 新增用例判定 新增用例內容占比 存量用例變更度計算微服
9、務線下體系治理調測能力構建 微服務架構下“最大”的研發痛點 基于微服務框架的Filter機制構建Mock能力 在線抓取Mock數據 綜合調測能力最佳實踐微服務線下體系治理協同管理治理兩周一迭代火車發布模式,實行班車制,準點發車;統一發布日期,減輕部門溝通成本及開發壓力;我們趕不上班車又等不了下趟,那就自己發車,按需發布;需求評審的時候,必須提供UI物料要預留debug和需求變更的buffer微服務線下體系治理協同管理治理 數據驅動的精益看板 過程指標度量 持續交付效率優化總結微服務體系架構深度治理服務治理發展簡史 單體應用 企業級SOA 互聯網服務化 微服務微服務度量 全生命周期度量指標獲取 度量及分析體系微服務線上體系治理 服務限流 容錯、降級、熔斷 故障定界定位 容量規劃 資源治理 線上生命周期管理微服務線下體系治理 架構治理 開發治理 測試治理 構建調測能力 協同管理治理