微服務+:服務契約治理


一、為什么要治理服務契約?

在日常工作中發現契約導致的溝通問題很多。另外由於契約定義不嚴謹,導致線上Bug的出現也時有發生。比如忽略字段長度,導致數據落庫失敗。由點到面梳理問題如下表:

問題 開發階段 測試階段 運行階段 后期迭代
契約不嚴謹 1.增加了開發人員的理解成本
2.增加了契約相關方的溝通成本
3.這種情況下,再缺少溝通的話,各相關方按照自己的理解開發導致后期聯調成本增加。
1.增加了測試人員的理解成本
2.增加了測試與開發的溝通成本
服務不健壯 1.增加了產品的理解成本
2.增加了產品與開發的溝通成本
服務契約與文檔契約不一致 1.增加了聯調成本
2.導致聯調時某一方的返工
1.增加測試與開發的溝通成本
2.導致測試用例的返工
服務不健壯 1.增加了產品的理解成本
2.增加了產品與開發的溝通成本
契約改動通知不到位 1.增加了聯調成本
2.導致聯調時某一方的返工
1.增加測試與開發的溝通成本
2.導致測試用例的返工
線上故障  
契約信任 1.契約驗證開發成本
2.契約驗證維護成本
契約相關的測試成本    

另外,還存在職責問題,例如:

服務提供者的問題,被客戶端發現。而客戶端對這種非自身問題關注是不夠的,導致問題不被重視。

二、怎么治理服務契約呢?

服務契約的治理是一個工程性問題,本着規范流程,固化最佳實踐的目的,設計如下:

 

 

三、治理什么?

一個健壯契約的元數據:

  • 協議
  • 結構
    • 基元類型
      • 文本、數字、布爾、時間
      • 約束
    • 復雜類型
      • 類、數組

四、支撐該設計的原則

  1. 契約先行
  2. 問題盡早發現
  3. 誰的問題誰發現

架構思維修煉


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM