写点什么

微服务与单片应用之间的较量

  • 2014-08-22
  • 本文字数:800 字

    阅读完需:约 3 分钟

采用微服务是分解单片应用(monolithic application)的一种方式。这样做可以获得更高的解耦程度、关注点分离,以及快速部署等优势。但是,这并不是唯一也不是最好的方式。 Todd Hoff 对这两种架构方式进行了描述与比较

Todd 提到了今年早些时候在 twitter 上发生的一场辩论,这场辩论的参与者包括了 Adrian Cockcroft Sam Newman John Allspaw ( Etsy ),他们对微服务和单片应用之间的优缺点进行了比较。该辩论首先由 Adrian 发起,他声称在听了 QCon 伦敦 Etsy 的演讲之后,让他更清晰地认识到为什么单片应用是一个死胡同,而微服务应该可以取而代之从而能获得持续的可伸缩的部署。John 则指出,虽然微服务带来了更多的选择,但同时引入了更多的约束。而少量较容易理解的工具和模式反倒能带来优势。

Todd 将 Etsy 描述为一家成功的公司,因为该公司拥有着大约 150 个工程师,并且每天会部署超过 60 次的单个单片应用。在他的印象中,虽然很多人将单片应用视为反模式,但是 Etsy 通过采用例如持续集成、自动化部署、良好的监控等手段构建了这个大型的网站,并且做得很好,而且他们基本上都是从主分支进行部署的。

一个用于针对所谓的单片应用问题的解决方案是将它分解成一系列微服务,从而达到松耦合和独立部署这样的目标。但是 Todd 提出了质疑,微服务是达到上述目标的唯一或者最好的方式吗?他指出 Etsy 一天发布多次小型变更的方式也是可选方式的一个现成的例子。

Todd 强调 Etsy 目前一直在单片应用的方式下工作地很好,从而表示了对单片方式的支持。因为即使是在一个单片应用中,复杂度也可以被封装到每个服务之中。他将服务与代码库进行了比较,并表示只要是足够稳定的接口,也可以像拥有自己生命周期的独立产品一样对待。一旦接口发生变化,不管是使用代码库还是服务,新的版本就会创建。Todd 相信,只要基于合适的软件工程,单片的程序也可以工作地很好。

查看英文原文: Microservices vs Monolithic Applications

2014-08-22 00:391670
用户头像

发布了 52 篇内容, 共 23.9 次阅读, 收获喜欢 5 次。

关注

评论

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

太简单了,一文彻底搞懂Jenkins的用法!

Jackpop

8年程序员年初被迫毕业,前后面试30家公司,如今终于拿到Offer!

程序员小毕

程序员 面试 程序人生 后端 架构师

思路一转,春暖花开!动动手指,这段程序性能又双叒提升2s~15s

靠谱的程序员

MySQL MyBatisPlus Mybatis-Plus

守护安全|AIRIOT城市天然气综合管理解决方案

AIRIOT

物联网 天然气

ElasticSearch 低成本高可用最佳实践

冰心的小屋

elasticsearch 高可用性

建筑中如何使用3D可视化?

3DCAT实时渲染

云计算 3D可视化 智慧建筑 BIM

Python初学者必备!适合新手阅读的Github开源代码。。。

Jackpop

这才是Git的正确学习方式!

Jackpop

一文了解 Go 接口

陈明勇

Go golang 接口

架构实战-模块1作业

mm

架构实战营 10期

实时渲染正在改变可视化游戏

3DCAT实时渲染

云计算 云服务器 云算力 渲染引擎 渲染

EasyRecovery2023个人免费版电脑数据恢复软件

茶色酒

EasyRecovery easyrecovery2023

刨析一下C++构造析构函数能不能声明为虚函数的背后机理?

eng八戒

继承 纯虚函数 C++

AngularJS进阶(十五)Cookie ‘data‘ possibly not set or overflowed because it was too large

No Silver Bullet

Cookie AngularJS 12月月更

Linux Network RSS RPS 疑惑

Geek_f24c45

container network veth RPS

Linux 定时器介绍

eng八戒

c 定时器 Linux Kenel C++

AngularJS进阶(十四)AngularJS路由问题分析

No Silver Bullet

路由 AngularJS 12月月更

2022-12-02:有a块草莓蛋糕,有b块芝士蛋糕,两人轮流拿蛋糕, 每次不管是谁只能选择在草莓蛋糕和芝士蛋糕中拿一种, 拿的数量在1~m之间随意, 谁先拿完最后的蛋糕谁赢。 返回先手赢还是后手赢。

福大大架构师每日一题

算法 rust 福大大

【愚公系列】2022年12月 微信小程序-Component组件

愚公搬代码

12月月更

如何选择正确的哈希算法?

Jackpop

easyrecovery2023手机版数据恢复软件下载

茶色酒

EasyRecovery EasyRecovery15 easyrecovery2023

C语言怎么给函数添加形参的默认值

eng八戒

c 函数 参数默认值

cmake 入门笔记

eng八戒

c makefile 工程管理 cmake C++

看完这篇,还不懂JAVA内存模型(JMM)算我输

JAVA旭阳

Java 并发

Python初学者必备!适合新手阅读的Github开源代码。。。

Jackpop

33K Star!这才是程序员需要的神器。。。

Jackpop

日期格式化 YYYY-MM-DD 出现时间偏移量

HoneyMoose

3月寒窗!啃透美团保姆级分布式进阶技术手册,4月终入美团定L8

程序知音

Java 分布式 java架构 后端技术

AngularJS进阶(十六)脏值检查及语音识别集成

No Silver Bullet

语音识别 AngularJS 12月月更 脏值检查

排查Linux恶意进程

灵霄

信号量的无序竞争和有序竞争

eng八戒

c Linux Kenel 信号量 C++

微服务与单片应用之间的较量_SOA_Jan Stenberg_InfoQ精选文章