写点什么

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

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

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

关注

评论

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

最佳实践:通义灵码生成单元测试,让单测更简单

阿里巴巴云原生

阿里云 云原生 通义灵码

实用的项目进度管理工具有哪些?推荐的9款

爱吃小舅的鱼

项目进度管理工具

2024年hr人事软件:如何选择适合的工具

爱吃小舅的鱼

HR 人力资源管理 人力资源管理系统

DApp开发中的NFT质押模式:创新与应用

区块链软件开发推广运营

dapp开发 链游开发 NFT开发 公链开发 钱包开发

梯度下降,原来如此?

蛋先生DX

神经网络 机器学习 深度学习 梯度下降

走出软件作坊,数睿数据打造智能软件工厂,提高软件生产力

财见

IBM最新调研:主机如何成为企业级AI的"最佳搭档"?

财见

华为视频鸿蒙原生版三大体验全面升级,重新定义影院级体验

最新动态

最佳实践:通义灵码生成单元测试,让单测更简单

阿里云云效

阿里云 云原生 通义灵码

1.8K Star,简洁易用 Web 端创意画板

GitHub指北

仓储管理系统(源码+文档+部署+讲解)

深圳亥时科技

ERP管理系统(源码+文档+部署+讲解)

深圳亥时科技

宁德时代发布骁遥超级增混电池,“假增混”淘汰倒计时

科技大数据

医疗行业CRM系统有哪些?主流10款工具深度对比

爱吃小舅的鱼

CRM 客户关系管理 CRM系统

如何选择项目进度管理工具?10款网站推荐

爱吃小舅的鱼

项目进度管理

项目管理系统(源码+文档+部署+讲解)

深圳亥时科技

精准卡位增混市场大电量需求 宁德时代以骁遥电池破解行业发展痛点

科技大数据

Golang Agent 可观测性的全面升级与新特性介绍

阿里巴巴云原生

golang 阿里云 云原生

阿里云开源 AI 应用开发框架:Spring AI Alibaba

阿里巴巴云原生

阿里云 云原生

合合信息智能文档处理百宝箱:强力驱动,加速文档类应用研发进程

追风少年

深度学习 文档图像智能处理 文档解析

TON链代币发行游戏开发

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 公链开发 钱包开发

如何将公众号文章导出 Word

Ceelog

微信公众号

2024-10-26:最长公共后缀查询。用go语言,给定两个字符串数组 wordsContainer 和 wordsQuery,要对每个 wordsQuery[i] 找到一个与其有最长公共后缀的字符串

福大大架构师每日一题

福大大架构师每日一题

通义灵码上线一周年:超 600 万下载量,国内用户规模第一,新功能有奖测评

阿里巴巴云原生

阿里云 云原生 通义灵码

通义灵码上线一周年:超 600 万下载量,国内用户规模第一,新功能有奖测评

阿里云云效

阿里云 云原生 通义灵码

《使用Gin框架构建分布式应用》阅读笔记:p208-p211

codists

Go golang gin 编程人 codists

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