为了账号安全,请及时绑定邮箱和手机立即绑定

微服务+:服务契约治理

标签:
设计 架构

https://img1.sycdn.imooc.com//5b21c35800015b9711420640.jpg

一、为什么要治理服务契约?

在日常工作中发现契约导致的沟通问题很多。另外由于契约定义不严谨,导致线上Bug的出现也时有发生。比如忽略字段长度,导致数据落库失败。由点到面梳理问题如下表:

问题开发阶段测试阶段运行阶段后期迭代
契约不严谨1.增加了开发人员的理解成本
2.增加了契约相关方的沟通成本
3.这种情况下,再缺少沟通的话,各相关方按照自己的理解开发导致后期联调成本增加。
1.增加了测试人员的理解成本
2.增加了测试与开发的沟通成本
服务不健壮1.增加了产品的理解成本
2.增加了产品与开发的沟通成本
服务契约与文档契约不一致1.增加了联调成本
2.导致联调时某一方的返工
1.增加测试与开发的沟通成本
2.导致测试用例的返工
服务不健壮1.增加了产品的理解成本
2.增加了产品与开发的沟通成本
契约改动通知不到位1.增加了联调成本
2.导致联调时某一方的返工
1.增加测试与开发的沟通成本
2.导致测试用例的返工
线上故障
契约信任1.契约验证开发成本
2.契约验证维护成本
契约相关的测试成本

另外,还存在职责问题,例如:

服务提供者的问题,被客户端发现。而客户端对这种非自身问题关注是不够的,导致问题不被重视。

二、怎么治理服务契约呢?

服务契约的治理是一个工程性问题,本着规范流程,固化最佳实践的目的,设计如下: image

三、治理什么?

一个健壮契约的元数据:

  • 协议

  • 结构

    • 类、数组

      • 文本、数字、布尔、时间

      • 约束

    • 基元类型

      • 复杂类型

四、支撑该设计的原则

  1. 契约先行

  2. 问题尽早发现

  3. 谁的问题谁发现

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消