上一篇文章介绍了微服务架构的起源、定义、通用特性、常见概念误区、微服务架构与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形式开放出来实现与交互式系统的连接。

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

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

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

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

微服务架构(二):融入微服务的企业集成架构相关推荐

  1. Apache服务(二)Apache服务的虚拟主机和内部访问控制

    一.Apache的虚拟主机 1 编辑本地解析文件 vim /etc/hosts 172.25.254.127 www.westos.com news.westos.com music.westos.c ...

  2. ArcGIS Maritime Server 开发教程(九)二三维水深服务

    ArcGIS Maritime Server 开发教程(九)二三维水深服务 本章导读:ArcGIS 软件体系是使用 ArcGIS Bathymetry 桌面扩展构建和管理水深数据库,并且利用 Imag ...

  3. 论企业集成平台的架构设计

    来自软考论文 论企业集成平台的架构设计 三.选择合适的应用集成平台 (介绍)目前,开放式(开源)企业应用集成的规范和平台的主流技术有两种: - 种是微软公司的COM+(组件对象模型)规范和Window ...

  4. 【读书笔记】《大型互联网企业安全架构(石祖文)》

    文章目录 Part one:安全理论体系 第一章 安全理念 一.企业安全风险综述 1. 业务与运维安全(生产网安全) 2. 企业内部安全(办公网安全) 3. 法律法规与隐私保护 4. 供应链安全 二. ...

  5. 从一个故事说起,谈谈企业应用架构的演变史

    本文来自一位九年产品老司机的投稿.作者从一个故事说起,将企业应用架构的演变史娓娓道来,全文1.1万字,小编看完只有一个大写的"服",强烈安利各位涉及相关产品的童鞋收藏,不时拜读. ...

  6. 深度|从一个故事说起,谈谈企业应用架构的演变史

    九年产品老司机,作者从一个故事说起,将企业应用架构的演变史娓娓道来,全文1.1万字,强烈安利各位涉及相关产品的童鞋收藏,不时拜读. 企业应用架构是指一整套软件系统的构建,通过合理的划分和设计组合在一起 ...

  7. 读书笔记 - 企业精简架构

    本文更新版本已挪至  http://www.zhoujingen.cn/blog/4117.html ------------------------- 今天花了一个上午去书店看了一本关于企业架构方面 ...

  8. 《TOGAF 9.1IT企业架构》什么是企业IT架构

    2. 什么是企业IT架构 现在有越来越多的企业IT架构定义.在这一章,你会学习到一些企业IT架构的方法,我们会给你深入解释一种实用的方法,这种方法视企业架构师为CIO(译注:CIO首席信息官,是负责一 ...

  9. 「企业安全架构」EA874:信息安全架构

    信息安全架构框架的结构与内容 企业信息安全架构(EISA)是信息安全计划的关键组成部分.EISA的主要功能是以一致的方式记录和通信安全程序的工件.因此,EISA的主要可交付成果是一组将业务驱动因素与技 ...

最新文章

  1. SELinux进阶篇 应用目标策略管理非限制进程和用户
  2. SAP Fiori Elements里Edit按钮点击之后的后台实现
  3. 收集Redis 经典面试题
  4. 常用数据库端口号总结
  5. img标签设置display:block,宽度无法100%
  6. math库是python语言的数学模块_Python入门-函数库(模块)
  7. Symantec Backup Exec 2014 备份Exchange 2013之四设备初始化
  8. 使用axis的工具类 wsdl2java生成java代码,利用CXF wsdl2java生成java代码以及施用Apache Axis 1.4 wsdl2java生成java代码...
  9. quartz 定时任务调度框架demo
  10. p站,一个神奇的网站
  11. 使用cmd打开任意软件
  12. JavaScript图片旋转缩放、像素矩阵获取
  13. 软件实现串口程序出售,9600收发毫无压力。 采用io管脚模拟,适合串口资源欠缺的芯片使用。 stm32,tms320f28xx,PIC等
  14. flask制作电影天堂的API接口
  15. HDU 2197:本原串
  16. lighttpd隐藏index.php,lighttpd开启rewrite伪静态方法 - 老牛博客
  17. 100个最佳linux站点(转贴)
  18. dnf辅助新手制作_网络辅助功能的新手介绍
  19. 肖锰:浪潮GS开发平台学习札记(三)——规范介绍
  20. 蛋花花:人工智能对于绿色发展的意义

热门文章

  1. 我对模板模式和策略模式的理解
  2. JDK1.8中的Stream详解
  3. zookeeper做集群后启动不了,大部分原因是防火墙未关闭
  4. day3 and homework
  5. 【HDU 1269】迷宫城堡 (Tarjan算法)
  6. PHP实用小程序(四)
  7. wp如何代码实现锁屏
  8. Android自定义退出弹出框
  9. Blueprint CSS Framework 学习笔记
  10. MySQL—增删改查,分组,连表,limit,union,alter,排序,去重