再论微服务架构之七宗罪 -买球官网平台

0顶
0踩

再论微服务架构之七宗罪

2016-05-31 14:08 by 副主编 mengyidan1988 评论(0) 有6070人浏览
引用

原文链接:
作者:martin w brennan,viewpop联合创始人
译者:刘帝伟 审核:赵屹华
责编:周建丁([email protected]

2014年年底,塔里克·阿贝卓布(tareqabedrabbo,opencredo首席技术官)发表了一篇题为“微服务之七宗罪”的文章,他在此文确定了微服务架构七种常见的反发展模式。2016年一月,来自voxxed的danial bryant发表了该文章的最终版,结合原文以及自己的经验对此文做了进一步的更新。

两人讨论的第一个问题都是构建错误的东西。就像abedrabbo文章说的那样,可能是由于在定义项目范围和目标时含糊不清所造成的,或者像bryant说的,试图利用最新的技术,而不是使用最适合特定目标的技术。这两种情况都会导致额外的、不必要的复杂性,因为它们都未集中于项目的最终目标。

不实施契约优先(contract-first)设计方法是项目误入歧途的另一种途径。一个好的服务契约允许开发者专注于微服务是在做什么,而不是专注于它是如何实现的,确定总体目标才是重中之重。

技术实现的细节仍需要解决,abedrabbo和bryant两者的文章都提出了通过把单体架构概念运用到微服务架构上面,用以创建分布式单体架构(distributed monolith)。单体架构和微服务架构的交叉也暴露了一个共享域模型问题。

由于应用程序现在通常由多个微服务组成,因此一个应用程序不再是一个刚性边界的单一实体,就好比传统的单体架构案例。开发者可以采用领域驱动设计(domain-driven design,ddd)方法提供一个核心业务概念的演化模型来解决这一问题,这样会更为合适。

这两篇文章同时也表达了对选择错误、太多选择、以及交换信息通信协议的关注。服务功能应该影响协议,而好的方法则是采用标准化的态度,同时使用面向外部服务的同步协议,以及面向内部服务的异步协议。

abedrabbo强调引进实践证明的devops的重要性,正如微服务许可的那样,从一开始就发挥连续传送管道的优势。它从早期开始就支持验收、回归和性能测试自动化,bryant延续这一主题是为了确保系统在快速移动并经常波动的微服务世界中支持测试。

devops这一概念贯彻于bryant的文章之中,鼓励操作者或系统管理员之间的相互理解。他建议,员工必须接受培训,以应对现实生活中的灾难恢复,这样问题和成功可以通过整个团队进行共享。

人类因素(human factor)是原文的最后一点。微服务可以简化开发并且促进协作精神,但习惯于传统的、大规模的、充满筒仓和政治组织的开发者,对于如何在运行时表现图片服务不可能有更深、更广泛的理解。企业则可以通过投资开发商和鼓励广大组织合作以建立更好的、可持续的、能够利用微服务能力的系统,从而解决这一问题。
0
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 架构师技术图谱包括:分布式、前端、大数据、存储、微服务、推荐系统、框架、消息队列、编程语言、设计模式、重构、集群等内容。 体验小程序版「架构师技术图谱」,扫描下方微信小程序码即可。 欢迎订阅《码农周刊...

  • 来点轻松的话题。我们调剂一下后再继续讲cas sso单点登录吧因为后面的内容全部和代码有关,大家会觉得枯燥。所以今天我们先来点”番外篇“,讲讲什么是架构师,什么是架构这个永恒的话题吧。此...

  • 支付宝架构师:讲述从工程师到架构师的成长之路- http://blog.csdn.net/gupaoxueyuan/article/details/79089101支付宝架构师:从工程师到架构师的成长之路- http://blog.csdn.net/ak47java/article/details/78701226...

  • 二、微服务架构的优点 先天分布式 无状态(尽量) 积木式发展   三、 单体应用 通俗地讲,“单体应用(monolith application)”就是将应用程序的所有功能都打包成一个独立的单元,即主要业务逻辑都...

  • 接口服务是一种产品,产品要考虑人性(的弱点),也就是“七宗罪” 七宗罪(拉丁语:septem peccata mortalia;英语:seven deadly sins),天主教称七罪宗,或称七大罪或七原罪,属于天主教教义中对人类恶行的...

  • kiki carter,lightbend企业架构师,在2017新兴技术企业大会(emerging technologies for the enterprise,ete)上发表了题为“somm”lagom: building systems that age like wine的演讲。\u0026#xd;\n\u0026#xd;\n...

  • 优质文章推荐: 后端开发实践——开发者的第 0 个迭代 后端开发实践系列——领域驱动设计(ddd)编码实践 写了十年技术博客,我收获了什么 重构的七宗罪 小米信息部技术团队 小米信息部技术团队是小米旗下的一个技术...

  • 虎牙直播在微服务改造方面的实践和总结 有赞搜索系统的架构演进 为什么分库分表后不建议跨分片查询 别看不起分区表:我要为你点个赞 spring cloud greenwich 正式发布 在前后端分离的路上承受了多少痛? 你真的会...

  • 在这里,笔者想借用一个关于机器学习的戏谑之辞:“机器学习就是美化了的统计学(machine learning is glorified statistics)。”类似的,零信任就是美化了的最小权限(zero trust is glorified least privilege)...

  • soa与微服务之争的真正答案应该是它们分别适合于不同的买球软件推荐的解决方案,但因为产生的应用程序数量要远远多于企业架构的数量,因此微服务框架就显得比esb更适合于你的项目。 \u0026#xd; \u0026#xd;\u0026#xd; payara 和 c2...

  • spring 代码…,当你进入到大师的作品中时,你可能就是下个踩在巨人肩膀上的人,大量的面试题及答案还有资深架构师录制的视频录像:有spring,mybatis,netty源码分析,高并发、高性能、分布式、微服务架构的原理,...

  • 微服务架构也有不足。 需要对其进行运维,微服务之间需要协作,它们可能会按照与大型单体应用不同的节奏进行演化。在这样一个分布式系统中,维护所有服务之间的一致性并不简单。 众多微服务之间的通信可能会因为 ...

global site tag (gtag.js) - google analytics