解析微服务架构(二):融入微服务的企业集成架构

上一篇文章介绍了微服务架构的起源、定义、通用特性、常见概念误区、微服务架构与SOA架构比较、微服务架构收益以及企业引入微服务架构的策略。

本文将介绍融入微服务的企业集成架构的演进,并描述交互式系统的微服务模式及相关技术决策,然后给出了一个具体的微服务架构业务应用的例子。

交互型系统(System of Engagement)与记录型系统(System of Record)

随着移动互联网的快速发展,企业除了需要提供传统核心IT系统能力之外,还需提供客户与合作伙伴友好型的以交互为重点的创新及交互式系统。这两类系统的特性与禀赋完全不同,因此企业IT的支撑迈入了双速IT时代。

企业微服务架构的引入主要集中在以下两类系统:

  • 记录型系统:是指传统的应用系统,对应用所关注领域的信息进行增删改查作为应用的核心能力。如CRM、ERP、OA等系统。记录型系统使用的往往是一些传统的经典IT技术构建,往往更难改变,其集成难度也较高。
  • 交互型系统:是指以与用户交互为主要目的而开发的应用系统。如各种移动应用、微信、微博等等。交互型系统更多地会采用现代的各种新技术语言及运行时部署,具体高度的敏捷性,通过简单的现代化连接即可实现集成。

融入微服务的企业集成架构

不同的企业背景应该采用不同的微服务架构引入策略:

  • 对大型的成熟企业而言,由于本身已有大量在建的企业IT系统,因此决定了微服务架构仅是其多种应用架构风格之一,大型企业在服务总线与能力开放网关的集成架构下,可以首先从交互型系统入手引入基于微服务架构的应用,逐步积累面向微服务的开发运维经验。另外,对于部分新建的记录型系统,也可以考虑采用微服务架构进行构建,并通过服务总线等SOA集成技术实现与企业遗留系统的信息交互。
  • 对于初创企业而言,由于其没有任何历史包袱,因此可以考虑将企业范围的整体架构以(微)服务架构为基础进行搭建。
  • 大型成熟企业在企业集成架构及不同应用(整体式应用与微服务应用)架构风格中使用的技术及中间件也各有不同。例如:在整体式应用中往往更强调应用的交易完整性、安全性、数据的一致性等高标准特性,而微服务应用则更强调系统功能的快速上线。因此,这导致了这两类系统所偏好的技术及中间件产品会有差异。下图是在一个企业集成架构中,不同应用及集成所对应的IBM软件产品的示例:
  1. 整体式应用使用WAS ND集群化企业级应用服务器和DB2数据库。
  2. 微服务应用使用轻量级的WAS Liberty、Node.js,以及NoSQL数据库。
  3. 甚至可以考虑将其部署至公有云PaaS平台(如IBM Bluemix)上以充分利用PaaS平台上众多的服务能力。
  4. 集成组件使用企业级的IBM Integration Bus服务总线以及API Connect能力开放网关解决方案。
  • 系统云化方面,整体式应用与微服务应用也具有不同的偏好。因此,未来的企业必然朝着混合型部署架构演进:
  • 企业级整体式应用部署偏好于系统专用资源模式,也可根据各个应用特性评估是否可迁移至企业私有云之上以实现企业IT资源优化部署。
  • 微服务应用则偏好于生于云端的PaaS平台,使其可方便地使用各种就绪的底层服务,并采用多样化的编程语言和持久化技术。

交互式系统的微服务模式

交互式系统微服务模式包括多渠道交互层业务逻辑层

  1. 多渠道交互层通常采用“后端服务前端”的设计模式。
  1. 业务逻辑层则采用微服务架构,通过垂直服务而非水平分层实现对不同业务功能的解耦。
  1. 各业务服务微服务的依赖关系是微服务架构设计的一个考虑重点,一个业务服务可以委托给其他业务服务,但需尽量避免循环依赖。需要注意的是每个微服务仍然实现了一个完整的任务,而不是传统的水平分层模式。

交互式系统微服务架构应用的技术决策

1、编程语言的考虑:

  1. Java:鉴于Java有广大的受众以及其商业软件的企业级保障能力,以及在市场上能够非常容易找到优秀的开发人员,并且Java已开始加速增加最新和最现代的语言特性如Lambda等,Java仍然是实现业务逻辑层的不二之选。其他语言技术虽然层出不穷,各有优点,但并没出现新的统治级编程语言。
  2. Node.js:在交互层,Node.js是JavaScript服务端的解决方案,结合其他技术组成的MEAN全堆栈javascript开发框架Mongo DB – 简单的NoSQL数据库,使用JSON风格存储文档;ExpressJS – 是一个Web应用框架,提供有帮助的组件和模块帮助建立一个网站应用; AngularJS – 是一个前端MVC框架;Node.js -是一个并发异步事件驱动的Javascript服务器后端开发平台。),使Node.js正成为REST服务实施和构建交互式系统方面实上的解决方案

2、多样性持久化考虑:使用合适的NoSQL技术存储持久化数据。

交互式系统基于PaaS云端部署方式:随着PaaS云技术的日益成熟,企业可以考虑将交互式系统部署于云端,以充分利用PaaS平台上的各种服务。可将应用的Web/移动层迁移到云端,交互模型存储到云端,将记录型系统能力以API形式开放出来实现与交互式系统的连接。

交互式系统微服务架构例子

  • 航班预订应用微服务架构设计
  • 航班预订应用采用多样化技术满足不同的业务技术特性。

以上内容介绍了融入微服务的企业集成架构的演进,并描述交互式系统微服务模式及相关技术决策,然后给出了一个具体微服务架构业务应用的例子。

原文发布于微信公众号 - 我为Net狂(dotNetCrazy)

原文发表时间:2017-03-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏测试开发架构之路

《Google软件测试之道》告诉你什么是测试

第一章:Google软件测试介绍 1.Google的测试团队并非雄兵百万,我们更像是小而精的特种部队,我们依靠的是出色的战术和高级武器 2.在Google,写代...

52270
来自专栏SDNLAB

如何规划软件定义的数据中心网络

数据中心网络是企业IT创建私有云和混合云架构战略中的关键组成部分,它能够改进数据中心的网络的自动化、敏捷性、安全性和分析能力,能够实现企业自有应用程序与公共云服...

13120
来自专栏Java架构师历程

学习微服务的十大理由

始终关注新技术,语言和框架,以彻底改变您的组织。如果你仍然在你的立方体中使用整体框架中的代码搞乱,那么你可能生活在过去,那里有一个小应用程序和一些员工来处理它。...

29630
来自专栏织云平台团队的专栏

新时代运维监控能力的进化——天网云用户体验监控平台实践

运维团队审视业务质量监控能力时,有九个问题值得思考,九问运维后,我们重新审视传统的运维监控能力是否仍然能够满足业务对质量的要求,结合当下移动互联网与新兴的业务形...

1.2K20
来自专栏云计算D1net

将PB级数据传输到云端的四个步骤

如今,各种组织正在越来越多地使用公共云基础设施,但是人们发现将数百TB或PB数据向云端的迁移比想像得更复杂,更具破坏性,并且不具备灵活性。 ? 云存储的商业价...

36770
来自专栏云计算D1net

将应用程序移动到云计算的5个步骤

组织对于关键业务应用程序的迁移,需要进行充分的前期准备,并保持其在整个过程中所需要的控制。 ? 业务应用程序以创纪录的数量进入云端,使用户和IT团队进入了访问...

35450
来自专栏即时通讯技术

新手入门:零基础理解大型分布式架构的演进历史、技术原理、最佳实践

随着社会的发展、互联网技术的进步,以前的大型机服务端架构很显然由于高成本、难维护等原因渐渐地变得不再那么主流了,替代它的就是当下最火的互联网分布式架构。

14640
来自专栏重庆的技术分享区

成功准备微服务的5个步骤

原文地址:https://medium.com/@kikchee/5-steps-to-successfully-prepare-for-microservic...

13420
来自专栏云计算D1net

成长的烦恼 怎么解决云计算风暴?

云计算目前已经开始逐渐的被越来越多的企业用户采用。但是随着越来越多的应用部署在云中,云计算风暴也开始困扰着客户。 云计算风暴有时也被称为“启动风暴”,或VDI启...

43360
来自专栏云计算D1net

关于无服务器计算,您需要知道的10件事

如果您阅读了2017年有关于IT特别是云计算方面的各种预测,您很有可能碰到“无服务器计算”这一术语。早在2014年亚马逊的网络服务(AWS)已推出了第一大无服务...

35460

扫码关注云+社区

领取腾讯云代金券