本站小编为你精心准备了微服务在石油化工企业的整合中的运用参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。
摘要:企业信息化的发展,企业内部信息化系统已经呈现泛滥的趋势,比如ERP,OA,CRM等,而这些系统与平台中很多功能是重复的,那么如何有效的整合各个系统的功能成为当前企业信息化建设的难点。微服务架构描述了一种将软件应用程序设计为可独立部署的服务套件的特定方式,通过微服务架构能够有效的整合单一独立业务系统,本文基于微服务架构提出了一种整合石油化工企业中多系统多平台的解决方案。
【关键词】微服务;石油化工;系统整合
1背景介绍
随着信息科技的发展,石油化工企业内部部署了大量的信息系统用于处理日常业务,比如为了满足生产需要,石油化工企业引入了各种自动化生产系统用于生产过程的管理,监督和监控。目前各企业内部已部署了超过一百个应用系统。随着应用系统的快速增加以及规模日益复杂,功能模块之间的边界划分越来越模糊,造成很多功能的重复以及架构复杂化的问题。但是靠单个系统的独立使用、独立实现的方式已经不能满足石油化工企业的生产需要,因此需要一种新的软件架构来改变当前的系统开发模式,提供系统的质量以及生产效率。提升软件复用性,从面向过程发展到面向对象,再到现在的微服务,微服务架构是一种非常高效的软件复用方式,在实际的业务中得到了大量的应用。
2微服务架构介绍
信息系统的建设具有一定的历史发展轨迹,最开始为了解决企业内部的信息管理问题发展出了ERP系统。随着企业办公自动化需求的增长又演化出了OA系统。随着客户关系管理的需要又发展出了CRM系统。由于这些系统开发的时间不一样,开发的架构不一样,因此随着时间的演进,各种系统之间的集成成了新系统开发面临的一道难题。微服务的概念是MartinFowler在2014年抛出,用于解决各种异构系统的集成问题。最早微服务架构概念的诞生,便是MartinFowler所在的公司Thoughtworks在集成各个企业系统时提出的一种解决方案。为了能够有效的解耦企业中互相依赖的系统,Thoughtworks提出了一种应用服务单一化的解决方案来形成一套简洁、高弹性的系统架构。微服务架构灵活的运用了虚拟容器的概念,将以前单一的应用比如CRM等使用独立的容器进行隔离,然后通过对外暴露API的方式来对其他系统提供服务。一般而言对外API采用HTTPAPI等轻量级的解决方案。由于虚拟容器采用了Doker等技术,因此十分便于进行自动化的集成、部署以及运维,并且成功的解决了异构系统的问题。微服务的架构需要将不同的应用进行微服务化,从而实现自动化的部署以及快速迭代开发。一般而言在设计微服务的架构时需要满足如下原则:
(1)单一职责原则。也就是每一个应用或者服务只做一件事,集中精力解决自身的业务逻辑。比如crm系统只负责对客户相关的数据进行处理,而不用负责客户报表的分析。
(2)独立服务原则。也就是每一个微服务是一个独立的开发组建,具有独立的开发、测试、部署、运维、持续集成、优化等体系,类似一个独立的软件,对依赖进行解耦合。
(3)通信的轻量级架构。微服务任务不同服务或者模块之间的通信应该是轻量的,不应该过多的耗费系统资源。同时通信方式需要跨语言、跨平台。
(4)明确的接口定义。在微服务架构下,不同的模块通过调用接口来进行交互。为了对接口依赖进行解耦合,在设计接口时,要尽量通用,防止某个服务接口的修改影响到整个系统的运行。微服务具有如下优点:(1)易于开发和维护,由于微服务的单一、独立、轻量的特点,在开发单独的微服务时业务功能清晰、代码复用性高。开发、测试、部署的自动化能力强,因此十分有利于开发及运维。(2)服务的速度快、效率高。由于微服务业务逻辑的简洁性,系统耗费资源有限,因此单一的微服务运行效率较高。(3)易于升级及修改。由于微服务的轻量级特性以及接口的明确性,当某一个服务出现bug后,不会影响当整个系统的稳定性。同时由于独立性原则,在修改bug后能够快速进行部署及持续集成,修复问题。(4)技术的多样性。由于微服务的跨语言、跨平台特性,因此开发微服务时并不局限在某一个特定的语言上。不管是java还是node.js,只要在开发时满足微服务的架构,那么可以方便的进行相互的替换,降低开发成本。(5)按需伸缩,由于各个模块的独立性,当对某个模块进行扩展时,不会对系统的整体带来影响。
3微服务应用架构设计
针对目前企业内部系统众多,架构不统一,重复较多的情况,本文为企业内部系统设计了微服务架构,统一各系统的服务标准,整个架构分为三层体系,核心层负责实现各个服务,同时提供运维监控手段对服务进行监控。集成层将各个业务系统提供的服务接口进行集成,形成统一的服务标准为应用层提供服务。前端应用层通过服务路由、负载均衡等手段来负责服务的分发。针对企业内部系统较多的问题,首先对各个系统的业务功能进行定位。对业务系统对外提供的服务进行标准化。其次建立统一的服务注册中心,将业务系统的服务在注册中心进行服务,当其他系统需要在线调用服务时,在注册中心的服务目录中进行查找,匹配需要的服务。使用AMQP作为服务标准化的中间组件进行服务的注册、标准化及分发。使用MongoDB存储服务的相关信息。使用Elasticsearch对服务进行搜索管理。在服务接口层,各个系统使用Restful接口进行调用,Restful可以有效的解决异构系统、不同平台以及不同开发语言的问题,同时使用Redis对服务调用进行缓存,提高系统的效率。日志系统使用Flume,可以支持海量的日志读写。使用Docker作为容器来独立部署各个服务,Docker是为应用提供隔离的环境,并跟踪文件系统的变化,独立于主机操作系统的配置。同时Docker的使用让该系统的自动部署、自动监控成为可能,让企业从手工运维转型为Devops的方式自动进行。
4总结
随着石油化工企业信息系统的发展,各类信息系统变得越来越臃肿,很难持续、高效的为企业带来业务价值。而且随着企业信息架构的混乱,严重的影响着开发效率、运维管理效率,为企业带来了诸多隐患。为解决石油化工企业中不断增加的系统应用所带来的重复率增加、系统架构混乱的问题,本文采用微服务的架构理念对企业的系统架构进行了重构,将应用系统进行解耦,使用微服务的方式统一企业的服务。同时针对设计的微服务架构,本文使用Docker等技术介绍该架构的实施方法,有效的提高了企业信息系统的扩展性。通过微服务架构的重构,企业的信息化架构变得清晰明了,IT开发效率得到了较大提升,随着运维管理自动化的部署,企业的运维安全水平也得到了较大的提升。随着微服务的独立部署,有效的满足了各个业务部门的需求,实现了企业的价值。
参考文献
[1]张冰.面向服务的电子商务平台集中运维管理实践[J]电力信息与通信技术,2015,13(10):110-120.
[2]张亚明,刘海鸥.协同创新驱动下的石计算行业服务框架——以设计服务云为例[J]科技进步与对策,2016,31(06):54-59.
作者:吕亮亮 单位:中海油能源发展股份有限公司销售服务分公司