软件开发微服务架构

现有技术架构如何向微服务产品过度?

现有技术架构如何向微服务过度,两套架构是否可以并存。

参与3

1同行回答

shaopingshaoping产品经理IBM混合云
对大型的成熟企业而言,由于本身已有大量在建的企业IT系统,因此决定了微服务架构仅是其多种应用架构风格之一,大型企业在服务总线与能力开放网关的集成架构下,可以首先从交互型系统入手引入基于微服务架构的应用,逐步积累面向微服务的开发运维经验。另外,对于部分新建的记录型系...显示全部

对大型的成熟企业而言,由于本身已有大量在建的企业IT系统,因此决定了微服务架构仅是其多种应用架构风格之一,大型企业在服务总线与能力开放网关的集成架构下,可以首先从交互型系统入手引入基于微服务架构的应用,逐步积累面向微服务的开发运维经验。另外,对于部分新建的记录型系统,也可以考虑采用微服务架构进行构建,并通过服务总线等SOA集成技术实现与企业遗留系统的信息交互。

在重构应用方面,可通过以下方法梳理微服务:(1)每个REST服务是一个潜在的微服务;(2)每个SOAP web服务或EJB是一个潜在的微服务,特别是无状态的session bean,需要将面向功能的接口重新设计为面向资产的接口,并使接口转变为RESTful形式;(3)使用领域驱动设计(domain-driven design)发现企业资产,这些资产可能是微服务。

在重构数据方面,需要考虑以下几个方面:(1)寻找与其他数据关联不大的数据孤岛,检查系统的实体-关系图;如果有与其他数据断开的数据,就是一个潜在的数据重构点;(2)数据表非规范化,对高规范化数据库中非规范化一些数据表以将数据重组为更大的逻辑块,其目的是增加数据冗余度使其更容易被打破;(3)反向批数据更新,对数据重构时需要考虑数据重构失败时可批量地将新数据反向导回旧的数据模式;(4)使用主数据管理,对被广泛使用的数据实体组成一个单一的一致性视图,并开发相应的微服务与主数据一起工作;(5)在SQL数据库中寻找存储在BLOB(二进制大对象)字段类型中的代码,转而将这些对象存储在NoSQL数据库中,例如以键值(Key-value)存储方式存储;(6)寻找活跃的记录模式,与其他无关的Flat对象,使用文档模式数据库进行存储,例如Cloudant或Mongo等。

微服务重构后还需要重新打包应用,包括:(1)分割应用的EAR文件并打包成独立的WAR文件;(2)应用“一个容器一个服务”,分别部署每个WAR文件至其自有的WebSphereLiberty实例运行时或Docker容器中;(3)分别构建、部署和管理,为每个WAR文件使用独立的DevOps管线,每个WAR文件独立伸缩和管理。

收起
软件开发 · 2017-07-27
浏览1178

提问者

hht202208
业务部门经理aaaa
擅长领域: 数据库服务器中间件

问题来自

相关问题

相关资料

问题状态

  • 发布时间:2017-07-26
  • 关注会员:2 人
  • 问题浏览:3418
  • 最近回答:2017-07-27
  • X社区推广