BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

API版本管理成本

| 作者 Mark Little 关注 13 他的粉丝 ,译者 马德奎 关注 0 他的粉丝 发布于 2013年12月5日. 估计阅读时间: 2 分钟 | 都知道硅谷人工智能做的好,你知道 硅谷的运维技术 也值得参考吗?QCon上海带你探索其中的奥义

对于基于SOA的系统而言,契约版本管理和API/服务版本管理一直是一个必须考虑的因素。不管是因为它对可组合性的影响,还是因为客户端服务治理,它都仍然是一门艺术而非一门科学。团队分享版本管理经验的例子有许多(例如,围绕REST的版本管理就非常热门)。不过,Jean-Jacques Dubray最近写了一篇文章,试图将一定的科学客观性注入到这一问题域:

最近,有人要求我为API(或者Web服务)版本管理成本建立一种估算方法。我想分享这一估算,因为我觉得许多人还不清楚API/服务版本管理对成本的影响。

据JJ说,他们在工作过程中发现,创建API的成本取决于随后使用的版本管理方法:

[开发人员需要]了解的一个关键点是,即使服务消费者的成本在他看来很小,它也不只是单纯的成本问题,它是风险,它扰乱项目计划,并使预算不可用……由于变更常常不能为现有消费者带来直接的商业价值,所以他们不希望API有任何变更。

文章接下来将API版本管理方法分成三个不同的类别(读者可以查看全文来了解针对每一个类别的更深入讨论,包括JJ如何定义成本测量方法):

  • “结(The Knot)”:“所有API消费者都连接到API的同一个版本,当API变化时,所有消费者都需要跟着变,实际上,这产生了一个横跨整个消费者集合/生态系统的巨大连锁反应。”

  • 点对点:“服务的每个版本都留在生产环境中运行,当需要某个版本时,消费者需要自己进行迁移。运维成本会随着生产环境中版本数量的增加而增加。”

  • 兼容性版本管理:“所有客户端都与API/服务的同一兼容性版本进行对话。”

  • 有了这些定义和使用JJ所描述的公式计算出的相关成本,就可绘制相对成本图,如下所示(y轴是成本,x轴是版本数量):

正如JJ所言:

[……]当API发生变化时,单一版本会迫使每个消费者都进行升级,对于生态系统而言,这是一种成本最高的方法。第二种方法需要维护版本的多样性,这样会好一些,但如果开发人员试图保持每个版本的升级或者交替运行旧版本,那么成本还是相当高。兼容性版本管理策略似乎最高效。

那么,其他人有什么想法?这一API版本管理成本计算方法在JJ和其团队研发该方法的环境之外是否适用?结合读者的个人经验,相对成本的解释是否合理?还有其它JJ和其团队没有涉及到的类别吗?

查看英文原文:The Costs of Versioning an API

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

估算方法呢? by Wong Peter

纵轴和横轴即成本和版本数量的比是怎么出来的呢?

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT