内容简介:微服务经济学:Phil Calçado在CraftConf大会上强调要避免微单体陷阱
在匈牙利布达佩斯举行的 CraftConf 2017大会上, Phil Calçado 呈现了“ 微服务经济学 ”的演讲。演讲的要点包括:在对单体应用进行改造时,“ 反康威定律 ”可以作为一个有用的应用架构指导工具,不过这有可能导致出现“微单体”(迷你单体),除非创建新服务的“交易成本”低于在已有单体或服务里添加新服务的成本;单体从“域经济”中获益(比如,增加新功能不需要实现新的部署流程),而微服务则从“伸缩经济”中获益,不过为了支持伸缩,需要额外的自动化成本(有时候需要在前期投入)。
来自DigitalOcean的产品工程总监Calçado将康威定律作为演讲开场白,讲述了他的团队在改造单体架构方面的经历。由Thoughtworks(以及 James Lewis )所提倡的“反康威定律”可以用于重组组织的结构,从而相应地改变软件应用的架构,一般会朝着更小的服务发展,比如“ 微服务 ”。不过,微服务的成功实施需要前期的投入,用于支持部署和解决众多的横切面(cross-cutting)问题。在后期,这些小型的服务可能变得难以维护,所以要小心谨慎。
Calçado借鉴了企业管理领域的一些思考模式,他引用了R.H. Coase所著“ 企业的性质 ”一书的内容,将单体应用比作“企业”,将微服务比作“自由代理机构”:
当企业内部的整体交易成本低于外部自由代理市场的成本,企业才能得以生存。
……直到内部的交易成本与通过外部开放市场进行交换的成本等同,或者与重新组织一个企业的成本等同。
当一个组织开始向微服务架构迁移时,往单体里添加功能的“交易成本”要低于构建整个服务(包括所有相关的交付机制)的成本。反康威定律会让往单体添加功能的交易成本高过构建新服务的成本,不过Calçado建议最好还是想办法降低构建新服务的成本,让它们低于往单体或已有的服务里添加新功能的成本。
持续不断地往一个已有的微服务里添加功能会导致出现“微单体”,它们实际上就是小型的单体。
让“错误”的事情变复杂,这在一开始是没有问题的,不过如果能够将“正确”的事情简单化,它会将你带向卓越。
Calçado在演讲的下一个小节剖析了微服务的交易成本,并引用了Martin Fowler的“ Microservices Prerequisites ”一文的内容,他基于自己的经验建议添加额外的四项前提:
- 快速调配(Fowler)
- 基本的监控(Fowler)
- 快速部署(Fowler)
- 易于调配的存储
- 访问边界,例如,一个暴露给客户端的新服务需要访问“边界”功能,如会话数据,还有可能要求处理横切面问题,如审计和速率限定
- 认证和授权
- 标准化的远程过程调用(RPC),例如,使用微服务底层框架,如Twitter的 Finagle 或Netflix的 Karyon (现在已经不建议使用),或者使用服务网格框架,如 Linkerd 或 Envoy
Calçado说单体从 域经济 上获益,而微服务则从 伸缩经济 上获益。例如,一旦配置好单体应用的部署流程,增加新的特性一般不会造成额外的成本。而对于微服务来说,创建新的服务一般意味着需要新的部署脚本或管道。这个就涉及到之前讨论的降低"交易成本"的话题,降低微服务迁移成本最有效的方式是减少增加单个服务的成本。
在演讲结束时,Calçado提醒大家,没有必要在前期就知道所有降低交易成本的方式。业务的主要目标是为客户、用户和利益相关者带来价值,从Calçado的经验来看,开发团队在向微服务的迁移过程中要保持交付业务价值,一般需要遵循以下五个步骤:
- 试验——开发人员要经历架构问题,并尝试在单体之外构建服务。
- 检查清单和标准——标准化和文档化的手动构建服务流程。
- 拷贝和黏贴——通过拷贝代码来开始新服务的开发。
- 类库和工具——将上一步提到的代码拷贝封装成一系列类库和工具。
- 平台——微服务生态系统的支持平台,包括所有的要素。
Phil Calçado的演讲幻灯片“微服务经济学”可以在 SlideShare 上找到,可以在CraftConf 2017的 Ustream频道 观看相关视频。
查看英文原文: The Economics of Microservices: Phil Calçado Recommends Avoiding ‘Microliths’ at CraftConf
以上所述就是小编给大家介绍的《微服务经济学:Phil Calçado在CraftConf大会上强调要避免微单体陷阱》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 吴桐:区块链共识机制的经济学分析
- 以比特币为例,解析区块链的经济学原理
- 好书推荐:金融学与经济学中的数值方法——基于MATLAB编程(原书第2版)
- 好书推荐:金融学与经济学中的数值方法——基于MATLAB编程(原书第2版)
- 诺贝尔经济学奖得主是一位 Python 用户
- 美国三院院士、机器学习泰斗 Michael Jordan:以人类为中心的人工智能原理:计算、统计学和经济学
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。