写点什么

微服务架构宜缓行

  • 2015-06-15
  • 本文字数:989 字

    阅读完需:约 3 分钟

前不久,ThoughtWorks 首席科学家 Martin Fowler 发表了一篇博文,探讨 MonolithFirst 策略。他写道:

除非你的系统太复杂,作为单体应用会很难管理,否则不要考虑微服务。绝大多数软件系统都应该构建为单体应用。要注重在单体应用中实现良好的模块化,但不要试图将其拆分成单独的服务。

Tyler Treat 是来自 Workiva 的一名软件开发人员,同时也是咨询公司 Clarion Media 的创建者。近日,他发表了一篇博文《非面向服务的架构》(DOA)。文中,他对Fowler 的观点表示了赞同,同时他指出,团队迫不及待地采用微服务架构,一个原因是像Fowler 所说的那样,他们不了解微服务的固有开销,另外一个原因是他们只看到了像Netflix 公司这样的成功案例,却没有意识到那些公司并不是从微服务开始的,也就是说,是“微服务妒羡(microservice envy)”导致团队作出了那样的选择。

微服务确实有许多优点:“反脆弱性(anti-fragility)”、容错、独立部署与扩展、架构抽象、技术隔离。但并不是说采用了微服务就自然地具备了这些特性。比如,要具备反脆弱性,需要充分考虑分布式系统的不确定性,清楚异步、网络划分、节点故障、平衡可用性与数据一致性等问题。同样地,要具备可维护性和可扩展性,首先要有恰当的基础设施和组织结构。理论上讲,微服务可以提高开发速度,但在创建组织依赖时,“微服务佣金(MicroservicePremium)”可能会降低开发速度。所以,采用微服务架构需要具备一些先决条件,包括恰当的持续发布管道、能胜任的DevOps 和Ops 团队、审慎的服务边界等等。此外,周密的测试和集成模式也很重要。

而提到“单体(monolith)”,人们就会想到不可扩展、不可维护、缺乏弹性。但实际上,只要规模合理,单体系统也可以具有模块化、可维护、容错等特性。

因此,Treat 认为,自下而上的方法是一种更好的微服务实施策略。像Fowler 所说的那样,从单体或一个粗粒度服务的小集合开始,在有了足够的服务维护和部署经验后,再逐步分离出更细粒度的服务。

总之,微服务需要很高的组织和系统成熟度。否则,匆忙采用只能创建出一个“非面向服务的架构(disservice-oriented architecture)”。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-06-15 21:302970
用户头像

发布了 1008 篇内容, 共 444.8 次阅读, 收获喜欢 346 次。

关注

评论

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

2022年混过的那些SAP项目

SAP虾客

wms 2022年 SAP-QM

“灵、简、畅、安”,就选华为云桌面

科技之光

软件测试丨一文搞定 Postman 接口自动化测试

测试人

软件测试 Postman 自动化测试 接口测试 测试开发

华为云桌面,助力企业智慧办公

科技之光

架构实战营 3-6 消息队列架构详设随堂练习

西山薄凉

「架构实战营」

【JavaWeb】Java Web三大组件之Filter过滤器

No8g攻城狮

javaWeb #web

华为云连接CC——多场景构建数据网,助力企业享受高质量办公体验

IT科技苏辞

Maya的7个实用操作技巧

Finovy Cloud

云渲染 Maya,渲染

华为云弹性负载均衡ELB,如何保障服务器不瘫痪?

科技说

主数据的3大特征、4个超越和3个二八原则

用友BIP

《数字经济全景白皮书》中国产业数字化趋势报告2023

易观分析

产业数字化 报告

【前端】JS(javascript)中this的几种用法实例详解

No8g攻城狮

JavaScript js

刨根问底系列之grpc-java入门

零点999

国内首家!博睿数据获信通院AIOps能力成熟度模型优秀评级

博睿数据

智能运维 博睿数据 Swift AI K可观测性 荣誉奖项

华为云桌面为建筑行业BIM落地实施提供有力支撑

科技之光

怎么搭建自己的小型渲染农场?个人渲染农场配置

Renderbus瑞云渲染农场

渲染农场 搭建渲染农场

华为云弹性负载均衡服务,如何助企业应付流量压力

科技说

HTTP响应首部字段

穿过生命散发芬芳

HTTP 12月月更

NFTScan 2022 年度总结

NFT Research

NFT 数据基础设施

有奖评测 | Serverless 应用引擎 SAE 征集令开启

阿里巴巴云原生

阿里云 Serverless 云原生

使用NineData实现企业级数据库备份, 数据备份告别“拆盲盒” ?

NineData

sql 数据恢复 多云架构 数据管理工具 数据备份

基于声网 Flat 实现“成语解谜”的 Web 小游戏

RTE开发者社区

JavaScript 开源 Web 互动白板

华为云全球加速GA,为现代企业跨国办公保驾护航

清欢科技

Fastjson的反序列化漏洞复现

网络安全学海

黑客 网络安全 信息安全 渗透测试 漏洞挖掘

华为全球加速GA带给你稳定的网络体验!

清欢科技

从非洲到全球,看华为云连接CC如何助力出海企业更好发展

IT科技苏辞

时序数据库 TDengine 签约华锐技术,助力行情数据处理分析

TDengine

数据库 tdengine 时序数据库

微服务洞察,让微服务更透明

阿里巴巴云原生

阿里云 微服务 云原生

未来智安入围《2022年度中国数字安全能力图谱》威胁检测与响应领域能力者

未来智安XDR SEC

大势所趋_ 华为云企业交换机ESW助力智慧医院转型

科技说

微服务架构宜缓行_SOA_谢丽_InfoQ精选文章