BT

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

Stefan Tilkov:跳过单体应用,从微服务开始

| 作者 Jan Stenberg 关注 29 他的粉丝 ,译者 谢丽 关注 9 他的粉丝 发布于 2015年6月13日. 估计阅读时间: 2 分钟 | GMTC大前端的下一站,PWA、Web框架、Node等最新最热的大前端话题邀你一起共同探讨。

在过去的几个月中,许多人都宣称微服务架构应该总是从单体应用开始,其中包括Martin FowlerSam Newman,但Stefan Tilkov认为,那经常是错误的,构建一个模块边界清楚、结构良好的单体应用然后再迁移到微服务在大多数情况下都非常困难,几乎不可能。

Tilkov是innoQ的联合创始人兼首席顾问。虽然他赞同只有在理由充分的情况下才选择分布式系统的观点,但在他看来,最重要的原因是它可以推动大型系统的单个部分快速、独立的交付。他认为,微服务的主要优点是在系统的不同部分之间创建了清晰严格的边界,使连接不同部分增加耦合度的风险最小化。他指出,如果遵循严格的规则,那么在单体应用中也可以做到这点,但是根据他的经验,这种情况很少出现。

在Tilkov看来,单体应用的基本思想是系统不同部分之间互连。从技术的角度来看,系统的所有部分使用同样的平台、抽象概念和库,并以同一个过程中的所有东西为基础进行通信。从业务的角度来看,所有的领域对象在系统的任何部分都可以使用,不同部分使用同样的持久化模型,事务总是可以覆盖所有变化。在他看来,所有这些事实都增加了耦合度,他再次强调,分解现有的单体应用极其困难。

Tilkov认为,当系统足够大时,我们从开始就应该考虑构建单个的子系统,并尽可能地提高它们的自治程度,而不是总是从单体设计开始。

作为由微服务组成的系统的一个例子,Tilkov提到了Otto.de。这是德国的一家电子商务网站。在去年的QCon伦敦大会上,他就此作过演讲

早些时候,Tilkov比较了不同类型系统的特点,并新创了一个术语“自包含系统(Self-Contained System,缩写SCS)”来描述明显比微服务更大的自治服务,但只是针对一个特定的领域。

查看英文原文:Stefan Tilkov: Skip the Monolith, Start with Microservices

评价本文

专业度
风格

您好,朋友!

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

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的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通知我

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

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

讨论

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


找回密码....

Follow

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

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

Like

内容自由定制

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

Notifications

获取更新

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

BT