BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 Jan Stenberg 关注 33 他的粉丝 ,译者 赵震一 关注 0 他的粉丝 发布于 2014年8月23日. 估计阅读时间: 2 分钟 | 都知道硅谷人工智能做的好,你知道 硅谷的运维技术 也值得参考吗?QCon上海带你探索其中的奥义

采用微服务是分解单片应用(monolithic application)的一种方式。这样做可以获得更高的解耦程度、关注点分离,以及快速部署等优势。但是,这并不是唯一也不是最好的方式。Todd Hoff对这两种架构方式进行了描述与比较

Todd提到了今年早些时候在twitter上发生的一场辩论,这场辩论的参与者包括了Adrian CockcroftSam NewmanJohn Allspaw (Etsy),他们对微服务和单片应用之间的优缺点进行了比较。该辩论首先由Adrian发起,他声称在听了QCon伦敦Etsy的演讲之后,让他更清晰地认识到为什么单片应用是一个死胡同,而微服务应该可以取而代之从而能获得持续的可伸缩的部署。John则指出,虽然微服务带来了更多的选择,但同时引入了更多的约束。而少量较容易理解的工具和模式反倒能带来优势。

Todd将Etsy描述为一家成功的公司,因为该公司拥有着大约150个工程师,并且每天会部署超过60次的单个单片应用。在他的印象中,虽然很多人将单片应用视为反模式,但是Etsy通过采用例如持续集成、自动化部署、良好的监控等手段构建了这个大型的网站,并且做得很好,而且他们基本上都是从主分支进行部署的。

一个用于针对所谓的单片应用问题的解决方案是将它分解成一系列微服务,从而达到松耦合和独立部署这样的目标。但是Todd提出了质疑,微服务是达到上述目标的唯一或者最好的方式吗?他指出Etsy一天发布多次小型变更的方式也是可选方式的一个现成的例子。

Todd强调Etsy目前一直在单片应用的方式下工作地很好,从而表示了对单片方式的支持。因为即使是在一个单片应用中,复杂度也可以被封装到每个服务之中。他将服务与代码库进行了比较,并表示只要是足够稳定的接口,也可以像拥有自己生命周期的独立产品一样对待。一旦接口发生变化,不管是使用代码库还是服务,新的版本就会创建。Todd相信,只要基于合适的软件工程,单片的程序也可以工作地很好。

查看英文原文:Microservices vs Monolithic Applications

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

又在争吵了 by Wong Peter

只要基于合适的软件工程,monolithic application也可以工作地很好

单片机? by Kraft Bai

单片。。。 当单片机呢。 跟微内核, 宏内核 之争很像。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

2 讨论

深度内容

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT