基于微服务架构的综合运维系统设计

2019-09-10 07:22晋荣王瑞程洪闪
计算机与网络 2019年13期
关键词:分布式运维架构

晋荣 王瑞 程洪闪

摘要:微服务架构是一种将单应用程序作为一套小型服务开发的方法,每种应用程序都在自己的进程中运行,并与轻量级机制进行通信。叙述了微服务架构的工作原理,描述了微服务架构的功能特点,并与传统单块软件架构进行了对比;介绍了微服务架构的功能分层及各层的功能特点,结合微服务架构在综合运维系统中的实际应用详细阐述了微服务架构技术的应用情况。在综合运维系统中采用微服务架构可以实现功能的快速迭代,应用的敏捷开发。

关键词:微服务;综合运维

中图分类号:TP393文献标志码:A文章编号:1008-1739(2019)13-56-3

0引言

互联网、云计算技术飞速发展,信息网络规模不断扩大,用户对信息化系统服务的需求越发丰富。基于传统的单体架构建设的运维平台,面临着维护成本高、完善升级灵活性差、服务功能不够丰富等弊端。采用微服务技术架构打造新一代的综合运维管理平台,完成综合运维单体架构向微服务架构的转变,实现网络管理向运维服务的升级,从而达到从管理者向服务者的角色转变。

1微服務架构

微服务架构作为一种新型的架构模式,提倡将单一应用程序划分成一组小颗粒的、相互独立的、可采用分布式部署的服务,服务的开发、部署在各自独立的进程中,服务之间互相协调、互相配合,为用户提供最终价值,服务与服务间采用轻量级的通信机制互相沟通(RESTful API),服务可独立扩展伸缩,每个服务定义了明确的边界,不同的服务甚至可以用不同的编程语言来实现,由独立的团队来维护。微服务技术架构如图1所示。

相对于传统的单体架构应用,微服务架构具有如下特点:

①服务能够独立构建、独立部署、按需独立扩展,赋予系统灵活的组织方式和发布节奏,使得快速交付和柔性应用成为可能;

②松耦合、单一职责、基于限界上下文的一种SOA的落地实现,简化了单体架构的业务复杂性,根据业务需求对大型项目进行拆分,方便项目并行研发;

③受业务驱动,不断演进的架构,降低了系统维护和业务扩展的成本,方便后期需求和功能的不断迭代升级,同时也降低了错误排查的难度;

④通过分解巨大单体式应用为多个服务方法解决了复杂性问题,每个微服务相对较小,方便根据不同的服务性能要求选择匹配的技术;

⑤每个单体应用不局限于固定的技术栈,开发者可以自由选择开发技术,提供API服务,实现技术的多元化选型;

⑥单一职责功能、服务的粒度小,每个服务针对单一的业务能力进行封装都只关注于一个业务功能,从而更有可能对某些方面的服务做成精品;

⑦易于规模化开发,多个开发团队可以并行开发,每个团队负责一项服务;

⑧改善故障隔离,一个服务宕机不会影响其他服务。

微服务架构与传统单块软件架构对比如图2所示。

相对于单块架构,微服务架构在系统升级、业务扩容、功能丰富等方面具有绝对的优势,便于用户进行后期长期建设的业务系统,具备外挂式接入管理能力。

2架构设计

在进行微服务架构设计时,将系统划分为应用层、业务服务层、基础服务层、微服务中间件层和监视层。其中,应用层和业务层是业务价值体现的关键。应用层“以用户为中心”,专注于用户体验与业务功能;服务层通过将系统专业化分工,采用服务化方式,提供“去中心化”服务调用,并通过服务编排组合,可快速满足多应用多前端的功能实现。微服务平台主要包含基础服务层、微服务中间件层和监控层等功能。

(1)基础服务层

该层是服务重用和系统快速搭建的基础。微服务划分本质上是对业务功能进行解耦并独立部署,而具有共性业务特征的功能进一步内聚和抽取,形成基础服务中心,在系统内或系统间的多个微服务中共享使用。基础服务中心包括认证中心、调度中心、日志中心等公共服务应用。

(2)微服务中间件层

微服务中间件层主要实现服务的统一管理,为服务间的互相协作运行提供技术保障,是架构实现的技术支撑。

①服务注册中心:通过集中地注册管理机制,统一管理服务名称与服务调用地址之间的映射关系,实现服务的自动注册和发现,帮助服务调用者获取服务提供者的地址信息。

②服务网关:实现请求转发、动态路由等功能,可以降低服务演进过程中地址变动和增长带来的更新成本;也可以实现协议转发,能提高基础服务中心的协议扩展性。

③服务负载均衡:通过水平伸缩实现服务调用请求的负载均衡,有效分散单节点的计算负载,实现服务的弹性扩展。

④服务容错:构建流量控制、故障隔离、断路器等容错与修复机制,避免某个服务不可用时,导致故障蔓延,并最终造成整个系统瘫痪的风险。

⑤分布式缓存:利用键值数据库基于多台PC服务器,为分布式环境下应用对象缓存、状态缓存等场景提供统一的分布式缓存解决方案。

(3)监控层

监控层是系统稳定运行的保障,随着系统服务数量逐步增多,服务之间的调用关系越来越复杂,这也对微服务架构下如何保障系统可靠运行提出了新挑战。通过对应用、服务、资源、服务调用链路等进行监控,能够实现微服务架构下请求可追溯、问题可预警、伸缩有依据。其主要功能包括应用概览、应用详情、环境参数、服务状况、SQL监控监控、服务调用链分析等,同时也为开发运维一体化提供了重要支撑工具。

3系统开发实践

综合运维系统是一套建立在专业网管基础之上的监控维护管理平台,经过十多年的建设和应用,系统越来越笨重、越来越难以适应灵活多变的网络结构和不断增长的业务需求。因此,基于微服务架构,建设一套分布式综合运维平台,满足敏捷部署、快速交付、灵活升级的应用是设计的主导思想。

综合运维系统应用微服务技术架构,横向拆分运维系统功能和业务,实现注册中心、告警管理、测试管理、性能监测、事件通知和值勤管理等微服务,向通信指挥和网络运维人员提供稳定、可靠的监控服务集群,综合运维系统的微服务组成如图3所示。

综合运维系统按照功能和业务的维度划分为多个微服务模块,每个微服务单独运行,单独部署,各个微服务之间通过API调用实现互联互通。

按照层次化设计思想,综合运维系统分为接入层、业务层和呈现层3层进行了功能设计。

(1)接入层

系统接入层实现被管系统的接入和数据采集能力。实现与其他系统和设备的连接,并通过接口获取状态上报数据和采集数据。包括对光纤网、卫通网、IP网设备以及其他业务系统状态数据的接入和数据采集。每一种不同的被管对象增加一个单独的适配器服务,保证任何一个适配器微服务的正常或异常不影响其他适配器服务模块。

(2)业务层

业务层由一组实现不同业务的微服务组成,通过协同处理业务将接入层获取的数据进行处理,综合分析和挖掘,存储并按需进行数据融合处理。包括对资源、设备、运维、流量和测试等相关数据的处理,实现告警监测、通信资源管理、故障分析以及流程管理等功能。

(3)呈现层

呈现层主要面向用户提供操作入口和全景监视视图。

①在系统开发阶段,一是基于开源软件,快速构建了服务注册中心、服务网关、服务负载均衡、服务容错和分布式缓存等中间件,自主研发了服务监控平台,为系统开发提供了运行基础。

②抽取分布式调度服务作为基础服务,采用任务“统一调度管理、分布式执行”模式,提供各应用的统一管理和應用件协作服务,并可为其他项目建设重用。

③基于Maven开源工具,定制了开发环境,包括开发工具、开发模板、构建仓库等,实现了开箱即用、免系统环境配置、一键启动及快速构建等特点。在开发过程中,通过微服务架构设计,提高了系统的灵活性和可扩展性,在业务需求渐清晰的情况下,实现功能快速迭代,应用敏捷开发。

4结束语

本文结合实际开发项目,针对综合运维系统中存在的诸多难题和相应的解决策略进行分析。通过实验证明了微服务架构的服务系统可以提高用户体验,降低开发成本,实现高可用性,具有可持续发展的潜力。本文的实践案例为大型信息网络资源管理及海量数据挖掘系统综合运维管理平台研发应用提供了参考,随着互联网思维和云平台部署越来越趋势化,微服务架构在应用系统的建设中将体现出越来越大的价值。

参考文献

[1]王磊.微服务架构与实践[M].北京:电子工业出版社,2015.

[2]马越,黄刚.基于Docker的应用软件虚拟化研究[J].软件, 2015,36(3):10-14.

[3] Thones J.Microservices[J].IEEE Software,2015,32(1):116.

[4] Videla A,Williams J J W.高效部署分布式消息队列[M].汪佳南,译.北京:电子工业出版社,2015.

[5]李勇.分布式Web服务发现机制研究[D].北京:北京邮电大学,2008.

[6]孙海洪.微服务架构和容器技术应用[J].金融电子化,2016(5):63-64.

猜你喜欢
分布式运维架构
基于云控平台雾计算架构的网联汽车路径控制
居民分布式储能系统对电网削峰填谷效果分析
基于Paxos的分布式一致性算法的实现与优化
基于GPS的电力运维轨迹定位系统
IT运维管理系统的设计及应用
VIE:从何而来,去向何方
企业架构的最佳实践
三层架构在企业信息化中的应用
电子政务甲方运维管理的全生命周期