微服务+:服务契约治理

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

相关文章
相关标签/搜索