微服務(wù)治理的思考

在分布式系統(tǒng), 特別是采用微服務(wù)架構(gòu)中存在諸多服務(wù), 它們之間存在著復(fù)雜的調(diào)用和依賴關(guān)系, 我們需要一個(gè)框架對(duì)如下方面來(lái)進(jìn)行統(tǒng)一管理

  1. 服務(wù)注冊(cè)
    服務(wù)提供方將服務(wù)注冊(cè)到集中的服務(wù)注冊(cè)中心

  2. 服務(wù)發(fā)現(xiàn)
    管理和更新服務(wù)的狀態(tài)和信息, 以供服務(wù)消費(fèi)方檢索并使用這些服務(wù)

  3. 服務(wù)診斷
    記錄每個(gè)服務(wù)的調(diào)用日志,并自動(dòng)生成調(diào)用鏈, 基于調(diào)用鏈進(jìn)行自動(dòng)的故障分析支持

  4. 服務(wù)升降級(jí)和擴(kuò)展
    在服務(wù)負(fù)載上升自動(dòng)擴(kuò)容, 在負(fù)載過(guò)高自動(dòng)降級(jí)

  5. 服務(wù)安全管理
    對(duì)服務(wù)請(qǐng)求的認(rèn)證, 授權(quán)檢查和安全審查, 以及帳號(hào)的管理

  6. 服務(wù)監(jiān)控
    對(duì)服務(wù)在系統(tǒng)層面,應(yīng)用層面和業(yè)務(wù)層面進(jìn)行全面的監(jiān)控和度量, 并根據(jù)度量數(shù)據(jù)進(jìn)行自動(dòng)的參數(shù)調(diào)整, 觸發(fā)擴(kuò)容, 熔斷及報(bào)警

早在2006年時(shí), IBM對(duì)于服務(wù)治理要點(diǎn)就進(jìn)行了總結(jié):

  • 服務(wù)定義(服務(wù)的范圍、接口和邊界)
  • 服務(wù)部署生命周期(各個(gè)生命周期階段)
  • 服務(wù)版本治理(包括兼容性)
  • 服務(wù)遷移(啟用和退役)
  • 服務(wù)注冊(cè)中心(依賴關(guān)系)
  • 服務(wù)消息模型(規(guī)范數(shù)據(jù)模型)
  • 服務(wù)監(jiān)視(進(jìn)行問(wèn)題確定)
  • 服務(wù)所有權(quán)(企業(yè)組織)
  • 服務(wù)測(cè)試(重復(fù)測(cè)試)
  • 服務(wù)安全(包括可接受的保護(hù)范圍)

以當(dāng)前流行的服務(wù)治理框架 Spring Cloud 為例, 它就包含如下機(jī)制來(lái)支持對(duì)服務(wù)的治理

  • 分布式和版本控制的配置管理
  • 服務(wù)注冊(cè)和發(fā)現(xiàn)
  • 服務(wù)路由
  • 服務(wù)間調(diào)用
  • 負(fù)載均衡
  • 熔斷機(jī)制
  • 全局鎖
  • 領(lǐng)導(dǎo)者選舉和集群狀態(tài)管理
  • 分布式消息

我比較關(guān)注的重點(diǎn)是度量 metrics , 在服務(wù)治理中, 基于度量的設(shè)計(jì)和實(shí)現(xiàn)是重中之重

  1. 服務(wù)注冊(cè)和發(fā)現(xiàn)

服務(wù)活著還是死去,健康狀態(tài)如何

  1. 微服務(wù)接口管理

既要靈活,又要穩(wěn)定的,要從用量,性能,錯(cuò)誤三方面進(jìn)行度量監(jiān)控

  1. 微服務(wù)之間的調(diào)用和依賴關(guān)系管理

對(duì)服務(wù)與其依賴服務(wù)繪制出調(diào)用和依賴關(guān)系圖,做好分流,限流和斷流

  1. 微服務(wù)的部署和配置管理
    微服務(wù)的生死和更改全在一念之間,這個(gè)一念就是度量數(shù)據(jù)所引發(fā)的反應(yīng)

  2. 微服務(wù)的智能診斷,度量, 審計(jì)和分析
    日志,調(diào)用鏈,健康檢查,安全掃描,度量?jī)x表盤和告警系統(tǒng)是為微服務(wù)的保駕護(hù)航的"天眼系統(tǒng)"

讓我們看看這些看微服務(wù)架構(gòu)的演化

1) 原始的負(fù)載均衡器加微服務(wù)方案

v1

2) 增加了 API 網(wǎng)關(guān)和服務(wù)注冊(cè),服務(wù)發(fā)現(xiàn)機(jī)制


v2

3)增加了對(duì) metrics 和 log 的收集,分析,監(jiān)控,并獨(dú)立出 Auth Service 和 Config Service

v3

隨著 sitemesh , k8s 技術(shù)的成熟,基于公有云和企業(yè)內(nèi)部的私有云,還有 v4, v5, ....

架構(gòu)的演化總是隨著客戶需求的改變,技術(shù)的發(fā)展不斷的迭代著,“任重而道遠(yuǎn),吾將上下而求索”.

擴(kuò)展閱讀

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容