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

上一篇文章介绍了微服务架构的起源、定义、通用特性、常见概念误区、微服务架构与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 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

关于小程序的历史留存

微信小程序有一个很重要,但是却经常被忽略的功能——使用历史自动留存功能。 该功能最直观的表现形式是,小程序的使用历史列表。而除此之外,还有两个人们可能不太会注意...

23010
来自专栏云计算D1net

多云环境带来管理挑战

企业中多云环境的增长点燃了降低复杂性和冗余性管理工具的需求。 根据Gartner的数据,接近半数的大型企业将在2017年末之前运行混合云架构。灵活性、可伸缩性和...

41810
来自专栏PPV课数据科学社区

【工具】MongoDB和orange使用案例

Orange Digital Orange Digital 是法国电信的子公司,负责向英国的EE(英国最大的移动数字服务提供商)和全欧洲的Orange输送数字服...

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

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

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

1202
来自专栏即时通讯技术

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

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

1224
来自专栏SDNLAB

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

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

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

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

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

9572
来自专栏Java架构

一位阿里架构师的分享——谈谈微服务架构

微服务架构有两个关键特征,其一是原单体应用必须拆分为纵向完全独立的微服务模块,其二是微服务模块间通过轻量的Http Rest接口进行交互。对于是否进行了容器化部...

2779
来自专栏云计算D1net

云计算是什么?你现在需要知道的一切

公共云使客户无需投资新硬件或软件即可获得新功能。相反,他们向云计算提供商支付订阅费或仅为他们使用的资源付费。只需填写Web表单,用户就可以设置账户,并启动虚拟机...

1903
来自专栏Java架构师历程

学习微服务的十大理由

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

2413

扫码关注云+社区