写点什么

微服务经济学:Phil Calçado 在 CraftConf 大会上强调要避免微单体陷阱

  • 2017-05-21
  • 本文字数:1583 字

    阅读完需:约 5 分钟

在匈牙利布达佩斯举行的 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 ”一文的内容,他基于自己的经验建议添加额外的四项前提:

  1. 快速调配(Fowler)
  2. 基本的监控(Fowler)
  3. 快速部署(Fowler)
  4. 易于调配的存储
  5. 访问边界,例如,一个暴露给客户端的新服务需要访问“边界”功能,如会话数据,还有可能要求处理横切面问题,如审计和速率限定
  6. 认证和授权
  7. 标准化的远程过程调用(RPC),例如,使用微服务底层框架,如 Twitter 的 Finagle 或 Netflix 的 Karyon (现在已经不建议使用),或者使用服务网格框架,如 Linkerd Envoy

Calçado 说单体从域经济上获益,而微服务则从伸缩经济上获益。例如,一旦配置好单体应用的部署流程,增加新的特性一般不会造成额外的成本。而对于微服务来说,创建新的服务一般意味着需要新的部署脚本或管道。这个就涉及到之前讨论的降低"交易成本"的话题,降低微服务迁移成本最有效的方式是减少增加单个服务的成本。

在演讲结束时,Calçado 提醒大家,没有必要在前期就知道所有降低交易成本的方式。业务的主要目标是为客户、用户和利益相关者带来价值,从 Calçado 的经验来看,开发团队在向微服务的迁移过程中要保持交付业务价值,一般需要遵循以下五个步骤:

  1. 试验——开发人员要经历架构问题,并尝试在单体之外构建服务。
  2. 检查清单和标准——标准化和文档化的手动构建服务流程。
  3. 拷贝和黏贴——通过拷贝代码来开始新服务的开发。
  4. 类库和工具——将上一步提到的代码拷贝封装成一系列类库和工具。
  5. 平台——微服务生态系统的支持平台,包括所有的要素。

Phil Calçado 的演讲幻灯片“微服务经济学”可以在 SlideShare 上找到,可以在 CraftConf 2017 的 Ustream 频道观看相关视频。

查看英文原文: The Economics of Microservices: Phil Calçado Recommends Avoiding ‘Microliths’ at CraftConf

2017-05-21 19:001654
用户头像

发布了 322 篇内容, 共 160.0 次阅读, 收获喜欢 148 次。

关注

评论

发布
暂无评论
发现更多内容

低代码与AI的医药行业适配性实践:从技术融合到数智化转型的深度解析

量贩潮汐·WholesaleTide

低代码

不是做大模型,而是落在执行闭环,酷开智能体思路浮出水面

业界

YashanDB数据库安全机制详解及企业应用建议

数据库砖家

数据库‘’

YashanDB数据库的常见问题与解决办法

数据库砖家

数据库‘’

YashanDB数据库数据迁移的步骤与注意事项

数据库砖家

一体系数据平台的进化:基于阿里云 EMR Serverless Spark的持续演进

阿里云大数据AI技术

云计算 Serverless 数据分析 数据处理 数据库 大数据

BOE(京东方)“照亮成长路”公益项目新十年启幕 科技无界照亮美好未来

爱极客侠

YashanDB数据库的维护成本与效益分析

数据库砖家

数据库‘’

扎根业务,这个618商业智能体先跑起来

脑极体

AI

TortoiseSVN使用-权限配置

刘大猫

人工智能 svn 权限控制 tortoiseSVN 权限配置

YashanDB面向云计算平台的数据库优化方案

数据库砖家

数据库‘’

YashanDB数据库多版本控制功能介绍与应用

数据库砖家

数据库‘’

征程 6E/M|如何解决量化部署时 mul 与 bool 类型数据交互的问题

地平线开发者

自动驾驶; 算法工具链 地平线征程6

YashanDB如何支持企业的数据分析与决策支持?

数据库砖家

数据库‘’

YashanDB数据库实现高可用负载均衡配置说明

数据库砖家

数据库‘’

ETL中图表统计分析模版组件使用

谷云科技RestCloud

数据处理 ETL 数据集成 图表统计

京东高薪“抢人”,刘强东杀向携程腹地

趣解商业

京东 携程 酒旅

英特尔推进技术创新,以规模更大的封装满足AI应用需求

E科讯

iOS 26 新增实时翻译:基于端侧并向第三方开放接口;Neuralink 和 Grok 使渐冻症患者重新「发声」丨日报

RTE开发者社区

2025年Java面试行情变了?技术不达标,如何快速逆袭拿高薪?

程序员高级码农

Java Java 面试 Java 面试题

51Talk发布2025年Q1财报:第一季度营业收入同比增长93.1%

财见

YashanDB数据库的最佳实践及实施方案总结

数据库砖家

数据库‘’

YashanDB数据库事务管理详解,保证数据一致性

数据库砖家

数据库‘’

鸿蒙 NEXT 应用签名机制有何变化?如何生成并配置签名证书?

巴库一郎

鸿蒙 开发工具 HarmonyOS HarmonyOS NEXT 实践分享

AI时代的“数据之困”,什么是AI-Ready Data

MatrixOrigin

数据库 HTAP AI Agents

难哭了的高考数学题,4家国产大模型表现如何?

极客天地

YashanDB数据库多语言支持及国际化方案介绍

数据库砖家

数据库‘’

YashanDB数据库功能与应用场景全面介绍

数据库砖家

数据库‘’

YashanDB数据库实时备份技术及恢复操作指南

数据库砖家

数据库‘’

西南会议 | 2025 Altair 区域技术交流会即将在成都盛大举行!

Altair RapidMiner

人工智能 AI HPC 数字孪生 CAE

YashanDB数据库实时监控系统设计与实现

数据库砖家

数据库‘’

微服务经济学:Phil Calçado在CraftConf大会上强调要避免微单体陷阱_架构_Daniel Bryant_InfoQ精选文章