(1.云南电网有限责任公司信息中心 云南省昆明市 650011;
2.云南云电同方科技有限公司 云南省昆明市 650217)
摘要:本文通过研究微服务架构的基本概念,以此为基础对微服务思想的在电力行业中的实际应用和技术选型进行阐述,并对微服务未来的发展前景进行总结。
关键词:电力信息化;微服务;松耦合;快速交付
松耦合、高内聚和独立部署的微服务是SOA(Service-Oriented Architecture)思想的一种精进和升华,目的以服务为单位有效的划分应用,实现敏捷开发部署。随着信息化与工业化的深度结合,电力行业信息化的建设推广,系统信息孤岛问题、技术规范不统一、IT架构僵化、业务需求满足滞后等多种问题,随之对电力信息系统的建设提出了更高的要求。文章通过对信息服务化架构的对比研究,选择了业内流行符合度较高的微服务架构,持续推进横向协同、纵向贯通,推动电力行业信息化的灵活化建设、以适应业务需求的不断变化。虚拟技术和基础设施自动化帮助降低了微服务的落地难度,微服务架构的推陈出新也为电力信息化建设提供新的思路。
一、微服务架构简介
微服务架构(Microservice Architect)提倡将单体模式下的应用分解成一组以业务为核心构建的服务,实现在进程中独立的运行,服务之间通过轻量的协议进行相互协调配合;其独立部署的服务可以轻松完成横向扩展,高度内聚且外部松耦合,帮助快速完成故障切换。最近几年来逐渐得到市场的认可,例如国外的Twitter、Amazon和Netflix等,国内的BAT等都已经完成从传统企业架构到微服务架构的迁移,并且针对不同服务对象和场景提出了一套自主的微服务解决方案。
微服务的主要特性包含如下几点:
1、“小”:臃肿复杂的系统得到细粒度的重构,实现系统对业务需求的高度专注。
2、“独”:发团队专注于业务逻辑的实现,减少重复多余的开发工作。
3、“松”:每个服务都能较快的满足业务上的变化而不会相互影响,降低依赖性。
4、“快”:小规模的开发团队就可以完成对微服务从设计到发布再到运维
从电力信息化的整体建设推进而言,平台的完善通常基于每一模块的新增、优化甚至是替代,从局部的迭代演进实现对整体的改良。微服务的设计理念中,服务彼此间的变更周期在生产环境中是非同步的,部署上限只是针对不符合业务变化的、性能不达标等过时落后的服务或者组件进行局部更新,从架构自身的基本属性上也与实际平台逐步演进的周期相一致的。
二、微服务架构的应用分析
现阶段在电力信息化的大建设阶段,各应用系统的持续推广,系统间逐渐产生大量的协同交互业务,日志处理系统所要应对的服务访问量和调用量随之快速增长。传统架构下日志处理系统是一个集中化、高度依赖化,适应滞后化的系统,从技术到业务处理层面都存在很多问题,归纳后有如下几点:
1、高并发大容量访问的情况下,无法保证系统的可用性和可靠性。
2、系统实现了相同的功能,业务流程上有多处冗余,且存在重复开发的现象。
3、系统无法快速交付业务需求上的变化,存在开发低效、升级缓慢,交付滞后等问题。
4、每一次系统的升级发布需要重新构建、编译和部署,增加了时间、人力等成本。
整个信息化平台下的应用系统或多或少都存在上述问题,系统性能局限大,平台交付周期慢,后期运维成本高等,整个IT架构的僵化减低了信息化建设推广的速度。为了解决传统架构下普遍存在的难题,需要引入新的架构模式服务化、标准化、规范化系统,从而统一构建一个符合现阶段互联网发展模式信息化平台。
三、微服务架构规划原则与实现方案
日志处理系统的需要符合微服务框架的设计思路遵循如下几条标准:
1.部署模式:微服务架构由较细粒度的服务所构成的分布式网状结构,侧重于分布式部署.
2.数据存储:微服务可以看成多个独立的应用,对于数据的存储应选择独立的数据库进行数据处理,实现微服务的数据的相互独立。
3.服务间通信:分布式部署的微服务可用进程间通信方法,包括共享内存、消息队列等。
4.外部通信:客户端调用微服务时多通过API Gateway路由请求进行通信,API Gateway还有授权管理、负载、缓存、静态响应处理等功能。
5.服务发现:服务发现模式一般可为客户端发现和服务端的发现。客户端发现比较直接,但需要为不同语言开发的微服务配置不同的发现逻辑;服务端发现实现有效的统一管理,但负载均衡的实现上较为繁杂。
以微服务架构的设计原则作为指导来重建日志处理系统,可遵循以下流程,如图1所示。
图1 微服务架构重构系统流程图
日志是系统平台运维的最基本也是最重要的依据,其携带着报文数据是协同业务错误甄别、流程改进最关键的根据,针对海量的日志数据进行有效的统计分析管理无论从系统运维还是业务优化都是有必要的。通常收集到的原始日志数据需要经过清洗过滤后,才能形成有效的统计分析报表,帮助业务人员进行分析透视。因此,日志处理系统功能点包括清洗、过滤、运行统计分析、异常统计分析、报表管理以及日志数据备份等通用功能点。结合行业内业务系统日志存在格式化日志、非格式化日志,历史日志、当前日志,系统运行日志、业务报文数据等不同的数据类型,不仅每个访问量大的微服务需基于独立数据库进行处理,还需要对上述不同类型的数据单独分配数据库,从数据上的解耦保证整个系统的松耦合。基于前期的分析完成系统的详细设计,经开发之后可放到容器中进行服务部署。
四、基于微服务的日志处理系统架构设计
图2 日志处理系统微服务架构图
日志处理系统通过融入微服务架构的设计思想和原则进行了重
新构建,客户端的所有请求先汇聚到服务网关,后对微服务进行调用。日志处理系统主要由服务注册、系统微服务模块、服务管控构成,其中日志预处理、统计分析、报表管理和数据管理为系统核心。
服务网关选择基于Zuul组件进行开发实现,可自动感知核心微服务模块的在线情况,其本身需要在服务中心进行注册,其他微服务模块的变动不会影响到服务网关层,以保证每一层的解耦。Eureka是服务注册中心主要实现框架,保障服务注册、注销、查询的高可用性。Ribbon基于多种算法实现负载均衡,服务容错则是选择Hystrix来实现,提供了资源隔离、断路器以及超时设置来提高服务的可靠性。每个微服务都基于独立的数据库进行数据处理,保证数据层面最少的相互依赖。由于缓存的使用,相同的请求返回结果可直接从缓存中调取,还可以减少服务对数据库绝对依赖,提高服务的可靠性。
优化后的日志处理系统管控力度集中,其更新迭代是“热插拔”式,只需对单个服务的重新部署;再者,细粒度的微服务松耦合的特性,自身可以灵活的扩展以完成业务需求的变化并完成快速的部署交付,很好的解决了上述开发交付慢、需求满足滞后以及运维成本高等多种问题。
日志处理系统作为行业信息化架构中位于技术支持平台的一个重要组成,相较于服务总线(ESB)等平台核心功能,其云化难度相对较低,日志处理系统可以作为云化的一个切入点。日志处理系统的在微服务架构的指导下,其服务注册、发现、编排、调度、监控以及数据转换、校验等功能将通过平台云化转化为电力云 PaaS 层的核心能力,以一种更稳定高效、更契合行业实际需求、自下而上的方式提升电力行业信息化的建设水准。
五、结语
本文提出了基于微服务架构思想来加速电力行业信息化脚步的一种解决方案。不仅从理论上对微服务的基本概念进行介绍,还以具体平台内系统的微服务实现作为案例,对其设计标准、重构过程以及系统架构进行了详细的分析。微服务思想的实践落地,最终以一种开放式、服务化、高可用、高可靠的姿态支撑电力信息化的持续建设。
参考文献:
[1]郑明钊,张建强.基于微服务的大平台系统构建演进探讨[J].软件,2017,38(12):165-169
[2]张晶,王琰洁,黄小峰.一种微服务框架的实现[J].计算机系统应用,2017,26(04):82-86
[3]王永和,张劲松,邓安明等.Spring Boot研究和应用[J].信息通信,2016,(10):91-94
[4]Fowler M,Lewis J.Microservices[EB/OL].http://martinfowler.com/articles/microservices.html.
论文作者:李辉1,刘丽1,周洁2,李孟霞2
论文发表刊物:《电力设备》2018年第21期
论文发表时间:2018/12/5
标签:系统论文; 架构论文; 日志论文; 业务论文; 数据论文; 平台论文; 独立论文; 《电力设备》2018年第21期论文;