写点什么

微服务经济学: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:001153
用户头像

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

关注

评论

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

DxO Nik Collection 6 (PS、LR滤镜插件套装) v6.10.0中文版

iMac小白

合合信息Embedding模型获得MTEB中文榜单第一

陈橘又青

合合信息

Xmind Pro专业版思维导图绘制软件

iMac小白

浪潮信息联合龙蜥社区推出 InManageBoot:让开局交付变得如此简单!

OpenAnolis小助手

运维 操作系统 龙蜥社区 InManageBoot

全球首发!龙蜥社区助力 Intel SPR 加速器上云

OpenAnolis小助手

云原生 操作系统 envoy 龙蜥社区 Intel SPR

AnyMP4 Data Recovery for Mac:高效数据恢复新

iMac小白

软件测试如何选择最佳的自动化测试定位策略?

测试人

软件测试

基础设施SIG月度动态:社区官网上线《龙蜥理事说》专题页,内核门禁提速

OpenAnolis小助手

开源 操作系统 龙蜥社区 龙蜥社区SIG

大模型微调提升AI应用性能

百度开发者中心

人工智能 大模型

4 月 30 日启动报名!2024 开源之夏&龙蜥社区赛题等你来挑战

OpenAnolis小助手

开源 操作系统 龙蜥社区 开源之夏

安全厂商长擎软件加入龙蜥社区,共建领先的 OS 基础设施

OpenAnolis小助手

操作系统 国产操作系统 龙蜥社区生态伙伴

Anolis OS 23.1 BETA 预览版:龙芯同源异构完成,支持更多芯片厂家

OpenAnolis小助手

开源 操作系统 龙蜥社区 龙蜥操作系统 Anolis OS

Syncovery for Mac:高效文件同步与备份工具

iMac小白

Syncovery下载 Syncovery破解版 Syncovery mac

重回铁王座!时隔5年,Quill 2.0 终于发布啦!

OpenTiny社区

前端 富文本

MAC系统进程管理工具 :MenuBar Stats for mac

iMac小白

程序会自己抛出错误,干嘛还要写try catch?

高端章鱼哥

好消息!职场<火焰杯>测试开发大赛开始报名啦!

测试人

软件测试 自动化测试 测试开发

MES系统功能有什么?对企业有什么价值?

万界星空科技

工业互联网 制造业 生产管理系统 mes 万界星空科技

荣获优秀共建方!开放原子开源大赛&龙蜥机密赛题决赛圆满结束

OpenAnolis小助手

操作系统 龙蜥社区 机密计算

《龙蜥理事说》第二期对话统信软件 AI 让操作系统更智能

OpenAnolis小助手

AI 操作系统 国产操作系统 龙蜥社区

华为云FunctionGraph构建高可用系统的实践

华为云开发者联盟

华为云 华为云FunctionGraph 华为云开发者联盟 华为云Serverless 企业号2024年4月PK榜

Cornerstone for Mac(最好用的SVN管理工具)v4.2永久激活版

iMac小白

microsoft remote desktop mac版10.9.6 远程桌面连接工具

iMac小白

Go-Zero微服务快速入门和最佳实践(一)

王中阳Go

Go golang 分布式 微服务 go-zero

助力用户快速学习、使用大模型,天翼云即将上线Llama 3大模型学习机

编程猫

Aiseesoft Data Recovery for Mac:数据恢复软件

iMac小白

IPQ9574 router CUP + QCN9274 RF module - ensure the security of Wi-Fi connection

wifi6-yiyi

5G wifi router

时之鑫门窗|为什么选购门窗时推荐用十大品牌门窗

科技热闻

张朝阳对话华为Fellow陈海波:万物智联时代,鸿蒙如何实现“换道超车”?

最新动态

Tower for Mac v10.5(399)注册激活版

iMac小白

Tower下载 Tower mac版 Tower破解

灵魂画手有救了!字节开放模型 Hyper-SD,最快 1 步生成 SOTA 级图片(有demo 来试试

字节跳动开源

人工智能 视觉智能 开放应用模型 扩散模型

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