2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

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

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

关注

评论

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

为什么身份控制是确保API接口访问安全的关键?

幂简集成

安全 API 身份控制

2024-06-05:用go语言,给定三个正整数 n、x 和 y, 描述一个城市中由 n 个房屋和 n 条街道连接的情况。 城市中存在一条额外的街道连接房屋 x 和房屋 y。 需要计算对于每个街道数(

福大大架构师每日一题

福大大架构师每日一题

「C++」深度分析C++中i++与++i的区别 _

不在线第一只蜗牛

c++ 编程 开发语言

计算机英文教材太难啃?Higress 和通义千问帮你!

阿里巴巴云原生

阿里云 云原生 Higress

被黑客入侵的 DMM 比特币为比特币购买获得 3.2 亿美元

web3区块链创业团队DappNetWork

SD-WAN实现企业出海网络加速

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SD-WAN服务商 SDWAN

SMC-R 透明加速 TCP 技术,在 Redis 场景下的应用实践 | 干货推荐

OpenAnolis小助手

操作系统 龙蜥社区 SMC-R 浪潮信息 TCP 技术

低代码用得好,开发真的很顺手

伤感汤姆布利柏

SpaceX 星舰周四晚八点再试飞;Backseat AI 发布《英雄联盟》实时辅导工具丨 RTE 开发者日报 Vol.219

声网

软件测试学习笔记丨Vue常用指令-条件渲染(v-if)

测试人

软件测试

运营海外社媒平台的最佳工具:云手机

Ogcloud

云手机 海外云手机 云手机海外版 国外云手机 海外云手机推荐

iLogtail 2.0 重大升级,端上支持 SPL

阿里巴巴云原生

阿里云 云原生 日志服务 sls

龙蜥社区 5 月度运营大事件回顾

OpenAnolis小助手

开源 操作系统 龙蜥社区 月报

6 大亮点!全新 Anolis OS 23.1 GA 版正式发布,满足多样化平台支持

OpenAnolis小助手

操作系统 国产操作系统 龙蜥操作系统 Anolis OS Anolis OS 23.1

报名倒计时 2 天!龙蜥社区系统安全 Meetup 演讲亮点一览

OpenAnolis小助手

操作系统 系统安全 浪潮信息 龙蜥meetup

如何把域名解析到自己的网站?怎么设置域名解析?

国科云

Mint Blockchain 成立 Mint Eco Fund 发展基金,并启动 Season1 开发者活动 NFT Summer!

NFT Research

NFT Layer 2

一台桌面工作站的智慧之光,照见宁畅“全局智算”版图

脑极体

AI

天谋科技与腾讯云完成兼容性互认证

Apache IoTDB

Netty FastThreadLocal实践

FunTester

低代码开发赋能教育数字化及典型场景

不在线第一只蜗牛

低代码 教育新创

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