微服务架构之外的选择——基于服务架构

来自ThoughtWorks的主管Neal Ford在最近的一次演讲中表达了他对企业软件系统架构转型的看法,他认为从单体架构转向基于服务的架构要比转向微服务架构来得容易。Ford在UberConf 2016大会上做了一次关于基于服务架构的演讲,基于服务架构是介于面向服务架构和微服务架构之间的一个中间地带。这里可以下载演讲幻灯片(PDF格式)。

微服务架构有很多优点,不过Ford建议应该把这些优点应用在新开发的项目上。对于已经采用了单体架构的组织来说,转向微服务架构有很多问题需要解决:分离代码,分离单体数据库,采用DevOps方法,监控网络,管理分布式事务等。但是转向基于服务架构就不需要做这么多改变,只需要把系统代码分割成若干个以领域为中心的块。基于服务架构可以由几十个可部署的服务组成,并非像微服务支持者们所主张的成百上千个。这些服务可以有独立的数据库,也可以分享单个数据库。Ford认为这是最为关键的不同点,因为他深知在转向微服务架构过程中,拆分数据库是最为复杂的部分。而微服务架构的优点只有在一定条件下才能得以体现,比如每个微服务对它们的数据具有独占所有权,或者有属于自己的数据库存储。

Ford指出,微服务架构也会带来一些复杂性,比如调用关系链以及网络调用隐含的性能问题。单个微服务不管从业务领域方面还是从性能方面来说都很简单,易于理解。但如果是一群微服务,就不是这么回事了。基于服务架构按照领域把更大的代码块组合在一起,减少了网络调用,这样会带来更好的性能。原来可能需要若干个相关微服务的调用变成了单个服务的方法调用。

这种处在中间地带的架构方式是一种折衷的解决方案。微服务架构通过采用DevOps方法,把代码拆分成更小的可部署单元,在交付速度和伸缩性方面得到优化。基于服务架构比单体架构或面向服务架构具有更快的交付速度,它使用微服务架构和面向领域开发拥护者们所推崇的以领域为中心的方式对代码进行拆分。面向服务架构主张根据层而不是领域来对整体架构进行拆分,导致一个简单的业务变更会影响到多个层,需要更多的测试才能发布出去。以领域为中心的架构把测试范围减少到单个要发布的组件上,相比单体架构或面向服务架构交付得更快。要发布的组件越小,测试范围就越小,这就是微服务优化的目标。基于服务架构在提升软件交付速度方面也卓有成效。

最后,Ford在多个方面对几种不同的架构进行了对比。他建议在高度集成的环境里使用面向服务架构,在新开发的项目上使用微服务架构,而基于服务架构主要用于对单体架构系统进行迁移。他认为单体架构不是最终状态。另一个资深的企业架构师Mark Richards,在UberConf上也带来了关于基于服务架构的演讲,他的演讲PPT可以从这里下载(PDF格式)。他们和O'Reilly合作制作了一个深入探讨这个主题的视频。

本文转自d1net(转载)

时间: 2024-09-17 06:09:28

微服务架构之外的选择——基于服务架构的相关文章

重磅!中移动牵头提出基于服务的架构 成为5G网络统一基础架构

在近期杭州结束的国际移动通信标准组织3GPP专业会议上,3GPP正式确认5G核心网采用中国移动牵头并联合26家公司提出的SBA架构(Service-based architecture基于服务的网络架构)作为统一基础架构,意味着5G网络真正走向开放化.服务化.软件化方向,有利于实现5G与垂直行业融合发展.5G网络采用SBA新型架构还是传统网络"点到点"的架构,是近半年来标准化讨论的热点.3GPP将SBA确定为5G网络唯一基础架构,是5G系统架构标准化立项以来的重要进展.基于服务的网络架

SOA之基于服务总线的设计

在上文中,主要介绍了SOA的概念,什么叫做"服务","服务"应该具备哪些特性.本篇中,我将介绍SOA的一种很常见的设计实践--基于服务总线的设计. 基于服务总线的设计 基于总线的设计,借鉴了计算机内部硬件组成的设计思想(通过总线传输数据).在分布式系统中,不同子系统之间需要实现相互通信和远程调用,比较直接的方式就是"点对点"的通信方式,但是这样会暴露出一些很明显的问题:系统之间紧密耦合.配置和引用混乱.服务调用关系错综复杂.难以统一管理.异构系统

阿里沈询:阿里技术架构演变,及基于EDAS的敏捷服务开发与架构实践

8月30-31日20:00-21:30,一场别开生面的技术大会-- "蚂蚁金服&阿里云在线金融技术峰会"将在线举办.本次将聚焦数据库.应用架构.移动开发.机器学习等热门领域,帮助金融业技术开发者深入解析互联网应用的前沿应用与技术实践. 蚂蚁金服&阿里云在线金融技术峰会专题:https://yq.aliyun.com/activity/109 峰会统一报名链接:http://yq.aliyun.com/webinar/join/38 来自阿里巴巴的资深专家王晶昱(花名:沈

微服务架构中模块划分和服务识别

最近在进行微服务架构的交流和讨论中,除了谈到微服务技术架构外,客户往往更加挂你微服务模块的划分粒度,已经具体的微服务API接口的识别和定义问题,因此这篇文章将重点谈下微服务架构实践过程中的微服务模块划分和服务识别. 首先我们还是再总结在在跨系统间的接口集成中服务的识别和定义方法,可以总结为: 1. 基于流程架构和业务架构,从跨系统交互流程出发,分析业务交互接口点,识别关键的业务服务能力. 2. 基于数据架构和主数据建模分析,识别关键的数据服务能力. 3. 基于技术架构和共性平台层技术组件的分析和

云快线基于开放架构的本土化云服务探索

相信绝大多数了解中国云计算产业发展态势的朋友都不会对云快线这个名字感到陌生.这家成立于2009年10月.隶属于世纪互联集团的公司是国内目前唯一一家专注从事公有云计算基础设施运营的专业厂商,其现有业务范围主要包括云主机.云托管.云备份.云存储.云立方.CDN加速等商业应用服务,已成功地为包括网络游戏.应用软件开发.物流平台应用.行业网站应用等各类客户互联网应用提供了可靠的云计算基础设施(IaaS)服务. 作为国内云服务行业的领跑者,经过初期的高速发展,云快线也总结出了一些经验:"我们过去想模仿亚马

从小站到大站的技术架构优化之路-网站架构与前端服务性能优化

一.课程目的 2015年,5月的某天,正在上班,突然看线公司群里开始发出携程网访问500的信息,于是乎,大家小扯的一下,大家并没有想到后来发生的事情的事情会如此震惊,开始官方的微博确认问题为,正遭受攻击,但后来内部的技术人员泄漏出"数据库被物理删除!" 这个对于技术的人员来说,可以说是非常惊讶的消息,大家开始了各种疑问,怎么确定是数据库引起,作为一个大公司怎么会有这种问题产生,数据库作为底层核心,为什么恢复机制是那么薄弱. 陆续消息中,最后传出,由于运维人员的类似于自动化系统操作不当,

微软和IBM的云服务变革:区块链即服务

区块链每天都在想方设法形成新的行业和企业应用,不用多久这项技术将无处不在.未来,包括初创企业.学术机构.开源机构.联盟和金融机构等都会参与到这项技术当中.而目前,IBM和微软等科技巨头似乎最快捕捉到了这一趋势. IBM和区块链正构建一个新的领域--区块链即服务市场(BaaS,Blockchain-as-a-Service).据外媒报道,两家公司最近大量区块链投资都面向企业服务的项目,这些企业服务项目利用云服务基础设施减少企业区块链开发的大量后端工作.今年2月,IBM发布了IBM区块链服务(IBM

基于服务的企业集成模式轻松入门,第1部分:基本概念的演变

引言 使一个企业中的所有应用程序以集成方式运行以便提供统一而一致的数据和功能是一项非常艰难的任务.这涉及到各种应用程序,如自主构建的应用程序(C++.Java 或 Java 2 Platform, Enterprise Edition [J2EE]).打包的应用程序(如 SAP CRM 应用程序)以及遗留应用程序(大型机 IBM CICS 或 IBM Information Management System [IMS]).而且,这些应用程序可能分布在不同的地理位置,并可能运行于各种平台上.这可

选择云服务不可轻视的三大细节

  基于云的端点安全服务与企业内部安全服务相比远不够成熟,如何在经验和案例均不足的现阶段成功完成自己的云端安全服务?这是个困扰着很多CSO的问题. 所谓知己知彼百战不殆,除了对自身的需求做一番仔细的考量外,另一方面就是搞清供应商的产品和服务了,双管齐下才能确保攻下云端安全服务这个碉堡. 在云端安全三大注意事项:部署.警报与报告一文中,我们已经做了初步阐释,而本文将进一步揭秘供应商端点安全服务中的各种缺失,为企业完善云端点安全提供"知彼"的途径,以便企业用户在选择云服务时少走弯路.还是以