微服務架構下,如何高效運維?

一. 微服務架構面臨的挑戰

1 微服務核心價值:3S

2 微服務架構帶來的運維挑戰

1)單服務流量激增時擴容
2)調用鏈條變長,調用關係更加複雜
3)微服務拆分致使故障點增多
html

 

1)單服務變動性能影響如何評估?
2)性能瓶頸在各微服務間漂移,如何作好性能測試?
3)應對突發流量需求,擴容可否解決問題,如何擴容?
4)服務實例數量衆多,如何收集信息,快速定位性能問題?前端

二. 華爲雲微服務性能保障解決方案設計

華爲雲微服務性能保障解決方案介紹
redis

1 什麼是ServiceMesh

  • 一種基礎設施層,服務間通訊經過Service mesh轉發
  • 一種TCP/IP之上的網絡模型
  • 一個輕量的網絡代理,與業務部署在一塊兒
  • 可靠的傳輸複雜網絡拓撲中的服務請求,將服務變爲現代的雲原生服務

2 華爲ServiceMesh總體架構

3 管理面服務治理能力


可人工介入,未運行時的mesher和侵入式框架提供配置下發sql

  • 註冊中心
  • 下發配置
  • 監控服務
  • 調用引擎

4 數據面支持侵入式與非侵入式Mesher


即侵入式框架與非侵入式mesher數據庫

  • 註冊發現
  • 執行路由策略
  • 負載均衡
  • 透明TLS傳輸
  • 生成監控數據

5 微服務架構的關鍵性能瓶頸點

1)Mesher的性能損耗(1ms)
2)單服務的接口性能
3)全鏈路調用性能
4)服務伸縮能力
後端

 

6 關於性能咱們須要作哪些

  • 開展分層驗證,掌握服務的能力基線
    1)單服務接口測試
    驗證單服務的各個接口能力基線以及組合接口的能力基線
    2)全鏈路測試
    驗證全鏈路場景以及多鏈路組合場景的性能,優化鏈路中性能不足的服務
    3)伸縮能力驗證
    驗證單服務的水平擴容能力,驗證既定模型下的多鏈路組合場景的資源模型
    緩存

  • 性能測試服務化,提高驗證體驗

    關鍵設計1:模塊化管理,事務靈活組合與複用
    抽象性能測試所需的元素並模塊化,實現靈活複用和配置修改性能優化

 

          關鍵設計2:可擴展的高性能執行集羣
服務器

 

三. 性能測試實施策略

1 關鍵度量指標

1)制定測試目標,要求測試指標結果達到用戶預期目標。
2)指標數據通常包括併發用戶數、Response Time、TPS、經過率等。
3)系統的吞吐量要和響應時間關聯(SLA),如至少90%以上的請求在正常合理響應時間內。
網絡

2 全鏈路調優測試策略

性能是一個逐步提高的過程,測試過程當中須要找到擴容的模型,從不足50的TPS提高至萬級。

3 測試報告分析解讀

如何從測試工具側快速分析被測對象可能存在的問題

  • 存在部分響應超時:
    a) 服務器繁忙,如某個服務節點CPU利用率高
    b) 網絡IO超過VM/EIP帶寬
    c) 等待後端微服務、數據庫的超時時間設置過長
  • 運行一段時間後所有響應超時或者檢查點校驗不經過:
    a) 大壓力致使系統中某個微服務奔潰
    b) 後端數據庫無響應
  • TPS未隨着併發數增加而上升:
    a) 系統性能到達瓶頸,持續併發加壓過程當中響應時延增長(可觀察響應區間統計)
    b) 可經過進一步加壓是否會出現非正常響應驗證
  • TP90響應時延較短,TP99時延高:
    a) 系統性能接近瓶頸
    b) 可經過進一步加壓是否會出現非正常響應驗證

4 一些常見的性能優化手段

1)擴容,鏈路中的某一應用可能出現cpu使用率較高或者鏈接池資源不夠用(rpc、jdbc、redis鏈接池等)但自己對於拿到鏈接的請求處理又很快,這一類須要橫向擴展資源。

2)應用邏輯優化,好比存在慢sql、 邏輯的不合理如調用db或者redis次數過多、沒有作讀寫分離形成寫庫壓力過大。

3)超時時間的合理設置,對於應用之間的rpc調用或者應用與其餘基礎組件之間的調用,均須要設置合理的超時時間,不然過長的等待將形成整個鏈路的故障。

4)緩存的應用,請求儘量從前端返回,而不是每個都要讓後端應用處理後再返回,減輕後端應用及數據庫壓力,提升系統吞吐能力。

5)限流,對於超出承載能力的QPS或併發,能夠進行攔截並直接返回提示頁面。
降級,對於非核心鏈路上的應用,容許故障關閉而不影響核心鏈路

6)擴容和優化也是有限度的,在評估容量內,保障核心交易鏈路正常是重中之重,對於非核心功能模塊考慮降級場景

5 面對複雜網絡架構如何作性能測試

一個典型的互聯網平臺:突發事件高流量突發,如瞬間由百級用戶增加到萬級
性能測試工具:雲性能測試服務

對於網絡架構複雜的應用,能夠拆分壓力的入口點,進行分段驗證,屏蔽對應網元帶來的性能影響,如分別從最外端的CDN入口(1)、中間的ELB(2)、業務層(3)分別作測試,驗證複雜網絡架構狀況下,各網元的瓶頸和影響

6 應用內部的性能瓶頸如何提高定位效率?

  • 資源、應用、業務一站式監控與分析

立體運維全圖

  • 應用拓撲與異常展現、故障下鑽

1)應用發現與依賴關係:非侵入採集應用KPI數據,並經過服務間接口自動生成依賴關係,展示應用拓撲。
2)應用KPI匯聚:微服務實例匯聚到應用(數字表示XX個實例),KPI數據自動匯聚到應用。
3)調用鏈跟蹤:下鑽獲取應用調用鏈,定位到具體出錯方法

相關文章
相關標籤/搜索