写点什么

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

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

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

关注

评论

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

拆分电商系统为微服务

大眼喵

「架构实战营」

最好用的 8 款 React Datepicker 时间日期选择器测评推荐

蒋川

react.js 组件 组件库 低代码平台 Javascript框架

运动健康深入人心,MOVE PROTOCOL引领品质生活

BlockChain先知

绿色环保作为经济长线主题,MOVE PROTOCOL运动APP来助力

股市老人

M_6: 拆分电商系统为微服务

Jadedev

架构训练营

位运算小妙招-求二进制序列中0的个数

芒果酱

数据结构 算法 5月月更

单片机开发入门知识介绍

DS小龙哥

5月月更

【ELT.ZIP】OpenHarmony啃论文俱乐部——人工智能短字符串压缩

ELT.ZIP

人工智能 鸿蒙 数据压缩 ELT.ZIP

拆分电商系统为微服务

踩着太阳看日出

架构训练营

在线火星文转换器工具

入门小站

工具

Java Core「2」synchronized 关键字

Samson

学习笔记 5月月更 Java core

【ELT.ZIP】OpenHarmony啃论文俱乐部——多层存储分级数据压缩

ELT.ZIP

鸿蒙 数据压缩 ELT.ZIP HCompress

【ELT.ZIP】OpenHarmony啃论文俱乐部——电子设备软件更新压缩

ELT.ZIP

鸿蒙 rsync 数据压缩 ELT.ZIP

AI简报-逆光也清晰-色彩增强算法CURL

AIWeker

人工智能 深度学习 5月月更 AI简报

今天要学习的技术点,Python 筛选数字,模块导入,特殊变量__all__ 实战博客

梦想橡皮擦

5月月更

模块六:拆分电商系统为微服务

jiaoxn

「架构实战营」

拆分电商系统为微服务

dan629xy

拆分电商系统为微服务

流火

九、云原生链路追踪

穿过生命散发芬芳

链路追踪 5月月更

为了兼容IE,配置Babel+Webpack

空城机

webpack 5月月更

架构实战营模块 6 作业

热猫

OKALEIDO解决NFT流动性不足难题,更有创新平台通证分配方案

股市老人

架构实战营 - 模块六 - 作业

michael

架构实战营 #架构实战营 架构师实战营 「架构实战营」

在线HTML转XML工具

入门小站

工具

计算机网络——物理层

工程师日月

计算机网络 5月月更

架构模块六

小马

「架构实战营」

flask框架的学习笔记【二】

恒山其若陋兮

5月月更

HashMap 源码分析-基础结构

zarmnosaj

5月月更

模块六作业: 拆分电商系统为微服务

凯博无线

Go 依赖注入 Wire 详解 - 用户指南

baiyutang

Go 微服务 依赖注入 5月月更

代码之外:谈谈算法该怎么准备,不准备可以吗

宇宙之一粟

算法面试 代码之外 5月月更

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