50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

  • 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:391806
用户头像

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

关注

评论

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

浅析「扣减库存」的方案设计

悟空聊架构

分布式 秒杀 电商 6月日更 库存

你有没有 996 ?你要不要 955 ?

escray

学习 极客时间 朱赟的技术管理课 6月日更

无损放大美好回忆  让容颜无惧时光!

淋雨

PhotoZoom 无损放大 图片无损放大

这个暑假,狂暴输出炫酷的游戏视频,就靠Camtasia 2021啦!

淋雨

Camtasia 录屏 专业录屏

python——格式化输入输出与截取字符串

在即

6月日更

权限与认证:JWT实践

程序员架构进阶

源码分析 JWT 认证授权 28天写作 6月日更

【Flutter 专题】112 图解自定义 ACEPieWidget 饼状图 (一)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 6月日更

区块链技术为版权保护与运营提供科技支撑

CECBC

“微博评论”高性能高可用计算架构

白发青年

架构实战营

k8s部署手册

Damon

k8s 6月日更

职场人弯道超车的秘籍,利用Camtasia可以轻松实现!

淋雨

Camtasia 专业录屏

模块五- 课后作业

Presley

架构实战营 #架构实战营

一致性Hash算法与虚拟节点

Kareza

6月日更

Chia奇亚挖矿系统开发技术方案丨Chia奇亚挖矿源码模式

系统开发咨询1357O98O718

XCH奇亚系统开发流程丨XCH奇亚源码案例开发

系统开发咨询1357O98O718

区块链作为“信任的机器”,将改变社会价值的传递方式

CECBC

数字中国的视觉进阶:ISP的来处与归途

脑极体

机器通用运行框架抽象

型火🔥

架构 微服务 抽象 中间件 机器

贪心算法之 活动安排(Java代码实现)

若尘

算法 贪心算法 6月日更

Chia奇亚(XCH)系统开发案例解析丨Chia奇亚(XCH)现成源码

系统开发咨询1357O98O718

没想到你是这样的EasyRecovery

淋雨

数据恢复 EasyRecovery 文件恢复

奇亚Chia算力挖矿系统开发(案例源码)

系统开发咨询1357O98O718

区块链—重构新商业体系和全新商业生态环境

CECBC

Kubernetes手记(1)- Kubernetes概述

雪雷

k8s 6月日更

【译】JavaScript 代码整洁之道-注释篇

KooFE

JavaScript 大前端 代码注释 6月日更 整洁代码

react源码解析6.legacy和concurrent模式入口函数

全栈潇晨

react源码

Java并发编程——AQS源码解析

Antway

6月日更

MySQL基础之二:SQL语句介绍与使用

打工人!

MySQL sql查询 6月日更

网络攻防学习笔记 Day35

穿过生命散发芬芳

网络攻防 6月日更

【Vue2.x 源码学习】第四篇 - 对象的深层劫持

Brave

源码 vue2 6月日更

架构实战营模块5作业

Vic

架构实战营

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