写点什么

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

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

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

关注

评论

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

“读万卷书,行万里路”,让你收获一个不平凡的人生

小天同学

读书 成长 旅行 5月日更

Golang List, Ring and Map

escray

学习 极客时间 Go 语言 5月日更

android端音频采集与播放

floer rivor

android 音视频

Flutter开发:Failed to retrieve the Dart SDK…的解决方法

三掌柜

5月日更

kafka基本概念

杨四正

大数据 kafka 架构设计 消息队列 消息队列架构

让人工智能成为保险行业科技基因的一部分!

百度大脑

人工智能 保险

浪潮云向前进一步,又向后让一步

云计算

成功产品三要素

lenka

5月日更

千万级学生管理系统的<考试试卷>存储方案

唐江

架构实战营

🚄【Redis 干货领域】从底层彻底吃透 AOF 重写 (源码篇)

洛神灬殇

redis aof Redis 协议 Redis 核心技术与实战 5月日更

霸榜GitHub的阿里内部Spring Boot实战文档到底有多强?

Java 架构 面试 微服务

智能视频云3.0全景图来了!深度融合视频应用共创行业新生态

百度大脑

云智一体 智能视频 云智技术

《冰河的渗透实战笔记》电子书,442页,37万字,正式发布!!

冰河

网络安全 信息安全 渗透测试 网络攻防 互联网技术

❄️【程序员必看系列】开源项目有盈利模式指南

洛神灬殇

开源 程序员 盈利模式 5月日更

Rust从0到1-错误处理-panic!

rust 错误处理 Error 不可恢复错误

HTTP/3 初体验

运维研习社

nginx 运维 HTTP3.0 5月日更

Unix/Linux 编程:网络编程之 线程池

赖猫

Linux Linux服务器开发 Linux网络编程

分布式事务与分布式系统

邱学喆

分布式事务 raft CAP PAXOS 副本一致性

集成学习案例一 (幸福感预测)

容光

数据处理

如何成为云原生技术高阶玩家?华为云最近做了这件事

华为云开发者联盟

容器 DevOps 微服务 云原生 华为云

私有云解决方案

anyRTC开发者

音视频 WebRTC RTC sdk

进程内缓存助你提高并发能力!

万俊峰Kevin

缓存 微服务 本地缓存 Go 语言

冈萨雷斯《数字图像处理》学习总结及感悟:第一章 绪论 百闻不如一见

老猿Python

图形图像处理 数字图像处理 冈萨雷斯

NumPy之:ndarray多维数组操作

程序那些事

Python Numpy 程序那些事

论Http、Socket、WebSocket、WebService(SOAP)之间的区别

Damon

5月日更

人人都在谈的图数据库到底是个啥?

华为云开发者联盟

大数据 数据结构 数据 图数据库 华为云图引擎图数据库GES

丰田汽车选用Mobileye和采埃孚的安全技术

E科讯

JavaScript 类型化数组

空城机

JavaScript 大前端 5月日更 类型化数组

Dubbo 负载均衡

青年IT男

dubbo

docker(centos系统)安装vim工具

liuzhen007

Docker 5月日更

【LeetCode】找出第 K 大的异或坐标值Java题解

Albert

算法 LeetCode 5月日更

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