AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

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

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

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

关注

评论

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

2022-09-20:以下go语言代码输出什么?A:8 8;B:8 16;C:16 16;D:16 8。 package main import ( “unsafe“ “fmt“ )

福大大架构师每日一题

golang 福大大 选择题

《简单记个笔记》之表单标签加CSS选择器

吉师职业混子

9月月更

史上最详细vue的入门基础

楠羽

Vue 笔记 9月月更

Python教程之Python简介

芯动大师

编程语言 9月月更 Python简介

[极致用户体验] 多页面应用里,「网页内返回」按钮,何时用 history.back 何时用 replaceState?

HullQin

CSS JavaScript html 前端 9月月更

ESP32-C3入门教程 基础篇(四、I2C总线 — 与SHT21温湿度传感器通讯)

矜辰所致

I2C I2C协议 ESP32-C3 9月月更

Web3.0杂谈-#001(47/100)

hackstoic

Web3.0

【云原生 | 从零开始学Kubernetes】一、kubernetes到底是个啥

泡泡

云计算 云原生 k8s 9月月更

在windows电脑上配置kubectl远程操作kubernetes

程序员欣宸

Kubernetes 9月月更

Qt|ListWidget控件总结

中国好公民st

List qt 9月月更

Chrome操作指南——入门篇(六)console.injector

Augus

Chrome开发者工具 9月月更

【数据结构】五分钟带你了解及自定义有向图

迷彩

数据结构 算法 无向图 9月月更 有向图

通过爬虫爬取一些图片

吉师职业混子

9月月更

2022-09-19:给定字符串 S and T,找出 S 中最短的(连续)子串 W ,使得 T 是 W 的 子序列 。 如果 S 中没有窗口可以包含 T 中的所有字符,返回空字符串 ““。 如果有不

福大大架构师每日一题

算法 rust 福大大

Python 教程之变量

芯动大师

变量 9月月更 Python语法

开发者有话说|时间过得真快,我也是一个“奔三”的人了

武师叔

个人成长

《简单记个笔记》之部分CSS选择器介绍

吉师职业混子

9月月更

Python语法之数据类型

芯动大师

Python 数据类型 9月月更

PLG SaaS 产品 Figma 商业模式拆解

程序员泥瓦匠

SaaS

挑战30天学完Python:Day3夯实基础-布尔值和运算符

MegaQi

9月月更 挑战30天学完Python

4 分钟优化 Fetch 函数写法~

掘金安东尼

前端 9月月更

开发者有话说|情分 or 本分

卷卷龙

个人成长 职场 PUA

Chrome操作指南——入门篇(五)Snippets

Augus

Chrome开发者工具 9月月更

面对全新的编程语言,这些思路可以帮助你察觉漏洞

网络安全学海

黑客 网络安全 信息安全 渗透测试 漏洞利用

面试突击85:为什么事务@Transactional会失效?

王磊

Java 面试

监控系统的阶段建设

穿过生命散发芬芳

监控系统 9月月更

概述构建应用智能运维系统的核心能力

阿泽🧸

智能运维 9月月更

C++学习---cstdio的源码学习分析04-创建临时文件函数tmpfile

桑榆

c++ 源码阅读 9月月更

【字符串函数内功修炼】strlen + strstr + strtok + strerror(三)

Albert Edison

C语言 9月月更 strlen strstr strtok

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