阅读更多

0顶
0踩

企业架构

原创新闻 再论微服务架构之七宗罪

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

原文链接:7 Deadly Sins of a Microservices Architecture
作者:Martin W Brennan,ViewPop联合创始人
译者:刘帝伟 审核:赵屹华
责编:周建丁(zhoujd@csdn.net)

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单点登录吧因为后面的内容全部和代码有关,大家会觉得枯燥。所以今天我们先来点”番外篇“,讲讲什么是架构师,什么是架构这个永恒的话题吧。此...

  • 架构师素养及从小菜进阶架构师(2)

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

  • 【RPC框架之Zeroc ICE 介绍】

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

  • Python 全栈系列98 - 提供商业接口服务的架构考虑

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

  • InfoQ在新兴技术企业大会上对Lightbend企业架构师Kiki Carter的访谈

    Kiki Carter,Lightbend企业架构师,在2017新兴技术企业大会(Emerging Technologies for the Enterprise,ETE)上发表了题为“Somm”Lagom: Building Systems That Age Like Wine的演讲。\\“Somm”取自2012年的...

  • 国内有哪些顶级技术团队的博客值得推荐?

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

  • “编程不规范,同事两行泪!”

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

  • 2016企业开发趋势:Lightbend关于JVM开发者的调查

    SOA与微服务之争的真正答案应该是它们分别适合于不同的解决方案,但因为产生的应用程序数量要远远多于企业架构的数量,因此微服务框架就显得比ESB更适合于你的项目。 \u0026#xD; \u0026#xD;\u0026#xD; Payara 和 C2...

  • 程序员如何让自己的技术能力突飞猛进?

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

  • Web API 开发接口

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

  • 智能家居_物联网_环境监控_多功能应用系统_1741777957.zip

    人脸识别项目实战

  • PLC热反应炉仿真程序和报告 ,PLC; 热反应炉; 仿真程序; 报告,PLC热反应炉仿真程序报告

    PLC热反应炉仿真程序和报告 ,PLC; 热反应炉; 仿真程序; 报告,PLC热反应炉仿真程序报告

  • C++函数全解析:从基础入门到高级特性的编程指南

    内容概要:本文详细介绍了 C++ 函数的基础概念及其实战技巧。内容涵盖了函数的基本结构(定义、声明、调用)、多种参数传递方式(值传递、引用传递、指针传递),各类函数类型(无参无返、有参无返、无参有返、有参有返),以及高级特性(函数重载、函数模板、递归函数)。此外,通过实际案例展示了函数的应用,如统计数组元素频次和实现冒泡排序算法。最后,总结了C++函数的重要性及未来的拓展方向。 适合人群:有一定编程基础的程序员,特别是想要深入了解C++编程特性的开发人员。 使用场景及目标:① 学习C++中函数的定义与调用,掌握参数传递方式;② 掌握不同类型的C++函数及其应用场景;③ 深入理解函数重载、函数模板和递归函数的高级特性;④ 提升实际编程能力,通过实例强化所学知识。 其他说明:文章以循序渐进的方式讲解C++函数的相关知识点,并提供了实际编码练习帮助理解。阅读过程中应当边思考边实践,动手实验有助于更好地吸收知识点。

  • `计算机视觉_Python_PyQt5_Opencv_综合图像处理与识别跟踪系统`.zip

    人脸识别项目实战

  • Ultra Ethernet Consortium规范介绍与高性能AI网络优化

    内容概要:本文主要介绍了Ultra Ethernet Consortium(UEC)提出的下一代超高性能计算(HPC)和人工智能(AI)网络解决方案及其关键技术创新。文中指出,现代AI应用如大型语言模型(GPT系列)以及HPC对集群性能提出了更高需求。为了满足这一挑战,未来基于超乙太网络的新规格将采用包喷射传输、灵活数据报排序和改进型流量控制等机制来提高尾部延迟性能和整个通信系统的稳定度。同时UEC也在研究支持高效远程直接内存访问的新一代协议,确保能更好地利用现成以太网硬件设施的同时还增强了安全性。 适合人群:网络架构师、数据中心管理员、高性能运算从业人员及相关科研人员。 使用场景及目标:①为构建高效能的深度学习模型训练平台提供理论指导和技术路线;②帮助企业选择最合适的网络技术和优化现有IT基础设施;③推动整个行业内关于大规模分布式系统网络层面上的设计创新。 阅读建议:本文档重点在于展示UEC如何解决目前RDMA/RoCE所面临的问题并提出了一套全新的设计理念用于未来AI和HPC环境下的通信效率提升。在阅读时需要注意理解作者对于当前网络瓶颈分析背后的原因以及新设计方案所能带来的具体好处

  • (参考GUI)MATLAB道路桥梁裂缝检测.zip

    (参考GUI)MATLAB道路桥梁裂缝检测.zip

  • pygeos-0.14.0-cp311-cp311-win-amd64.whl

    pygeos-0.14.0-cp311-cp311-win_amd64.whl

  • 微信小程序_人脸识别_克隆安装_社交娱乐用途_1741777709.zip

    人脸识别项目实战

Global site tag (gtag.js) - Google Analytics