微服務+:服務契約治理

1、爲何要治理服務契約?

在平常工做中發現契約致使的溝通問題不少。另外因爲契約定義不嚴謹,致使線上Bug的出現也時有發生。好比忽略字段長度,致使數據落庫失敗。由點到面梳理問題以下表:數組

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

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

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

2、怎麼治理服務契約呢?

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

 

 

3、治理什麼?

一個健壯契約的元數據:設計

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

4、支撐該設計的原則

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

架構思惟修煉blog

相關文章
相關標籤/搜索