博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微服务架构(二):融入微服务的企业集成架构
阅读量:3976 次
发布时间:2019-05-24

本文共 2230 字,大约阅读时间需要 7 分钟。

上一篇文章介绍了微服务架构的起源、定义、通用特性、常见概念误区、微服务构与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. 多渠道交通常采用“后端服务前端”的设计模式。

  2. 业务逻辑则采用微服务架构,通过直服务而非水平分层实现对不同业务功能的解耦。
     

  3. 各业务服微服务的依赖关是微服务架构设计的一个考虑重点,一个业务服务可以委托给其他业务服务,但需尽量避免循环依赖。需要注意的是每个微服务仍然实现了一个完整的任务,而不是传统的水平分层模式

 

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

 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形式开放出来实现与交互式系统的连接

 

 

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

  • 航班预订应用微服务架构设计

 

  • 航班预订应用采用多样化技术满足不同的业务技术特性

  

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

你可能感兴趣的文章
C语言 回调函数
查看>>
c语言swap(a,b)值交换的4种实现方法
查看>>
C++小知识点
查看>>
【转载】zedboard中PL_GPIO控制(8个sw、8个leds)
查看>>
zedboard烧写程序到FLASH,用于QSPI Flash启动
查看>>
软件工程师,你必须知道的20个常识
查看>>
常用STL算法2_查找
查看>>
常用STL算法3_排序
查看>>
常用STL算法4_拷贝和替换
查看>>
STL综合案例
查看>>
O(logn)时间复杂度求Fibonacci数列
查看>>
Iterator_traits
查看>>
Zedboard中的SPI通信记录文档(已实现)
查看>>
Android 发布到google Play的app搜索不到问题的解决
查看>>
Flutter 网络请求之基于dio的简单封装
查看>>
Flutter UI基础 - 路由之Navigator详解
查看>>
Flutter UI基础 - Widgets 之 InkWell 和 Ink
查看>>
Spring - sentinel和hystrix比较
查看>>
Flutter 日期插件date_format 中文 国际化 及flutter_cupertino_date_picker
查看>>
Flutter 插件笔记 | 屏幕适配 flutter_screenutil
查看>>