张涛
摘 要:随着云计算概念在互联网行业的发展日趋成熟,云计算框架在铁路视频监控领域的应用推广普及也被提上日程,该文目的是将互联网通用云计算框架与铁路综合视频监控技术规范相结合,设计出一套既能体现云计算框架的诸多技术优势,又能深度融合铁路视频监控业务特色视频监控云平台。
关键词:云平台 云计算 高可用 负载均衡 微服务
中图分类号:TP277 文献标识码:A 文章编号:1672-3791(2020)02(c)-0003-03
铁路综合视频监控系统经过十几年的发展,全路摄像机接入容量已达到几十万路的规模,铁路综合视频技术规范(铁标)也随之不断地深入与完善从“铁标1.0”到最新的“铁标2.0”,并贯穿于全路各级综合视频监控系统,形成了具有明显行业特色铁路视频监控系统。随着高清扩容、视频一体化等需求的提出,铁路综合视频监控系统容量规模将会持续增长,对系统的高可用性、动态扩展性、易用性方面等要求也将大大提高。而云平台的高可用、负载均衡、动态扩展性等特性正是铁路综合视频监控系统需要具备的。
因此铁路综合视频监控系统实现云平台功能的需求被提上日程,在这需求的驱动下,很多路外通用安防厂商,试图使用其视频监控云平台,替代既有的铁路综合视频监控平台,但是其无法满足铁路行业长期以来形成的铁路视频规范(铁标),无法实现铁路视频行业的相关业务特点。
形成的现状就是,路外安防厂商的云平台,不能满足铁标的架构与业务要求,路内传统厂商的视频平台,目前均不是云平台的架构,云平台的主要特性无法体现。
结论就是,目前还没一款现成的系统能够既满足铁路视频标准,又能体现云平台等先进技术的基于铁路标准的视频监控云平台。
该文的目的就是设计出一套既能体现云平台框架的诸多技术优势,又能深度融合铁路视频标准视频监控云平台。
1 技术路线选择
通过一系列的对比与论证工作,从众多的云平台框架和云存储框架中,确定了基于微服务模式的Spring Cloud框架做为视频云平台的基础开发框架,基于Ceph云存储技术做为视频云存储的基础开发框架。
微服务是一种架构模式,它提倡将单一应用程序划分成一组小的服务,每个服务运行在其独立的进程中,彻底去掉耦合,服务之间互相协调、互相配合,为用户提供最终的价值。微服务架构的优势有复杂度可控、独立部署、技术选型灵活、容错性、扩展性。
Spring Cloud是一系列框架的有序集合,简化了云平台基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。Spring Cloud已在众多互联网公司中得到应用,是目前广泛应用的微服务框架。
Ceph是一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式文件系统,具有高性能、高可用性、高可擴展性、接口丰富等特点。Ceph在金融、政府行业、互联网、能源行业、运营商、高校、媒体娱乐、游戏等众多行业得到了广泛的应用,知名互联网企业有如阿里、腾讯、京东、携程等。市场上70%~80%的云平台都在采用Ceph作为底层的存储平台。
因此我们认为将Spring Cloud与Ceph作为铁路视频监控云平台的基础开发框架是有一定的普遍性和代表性的。
2 系统架构设计
视频监控云平台架构上遵循典型的云计算三层架构进行设计实现的,在视频业务领域对应关系如图1系统架构图,由下至上分别对应IaaS、PaaS和SaaS层。
(1)IaaS层:是硬件服务器,存储设备,网络设备以Docker容器的形式提供虚拟化的计算与存储能力。
(2)PaaS层:是Spring cloud平台框架与Ceph云存储构成的云平台基础框架层。
(3)SaaS层:是云平台基础框架上运行的具体的视频云品台的业务应用层。
3 铁路视频标准融合设计
目前铁路视频系统遵循的主要是《铁标1.0》《铁标2.0》,这是铁路视频系统的根本要求,根据铁标要求的通信框架与系统级联模式要求,采用的Spring Cloud微服务框架与铁标相结合,需要做如下几方面的融合设计。
(1)通信实时性的优化。Spring cloud:框架内部的采用的事SOA通信模式,是无状态的,而铁标要求的是基于TCP连接的有状态实时通信模式,因此,在系统的时机过程中,在微服务之间增加了实时通信的机制,并与SOA通信机制结合使用。
(2)网络不对等性的优化。Spring cloud主要是针对互联网,传输主要是SOA传递的文本信息,但是视频监控系统大量传递的是视频流数据,对网络带宽要求较高,铁路专网的组网特点是多个环网组成,同一个环内网络条件好,带宽高,环与环之间带宽是瓶颈。因此,在实现云平台的负载均衡的特性时,就需要考虑网络条件不均衡的问题,所以就不能针对整个系统进行全域的负载均衡,而需要将负载均衡策略限定在网络条件对等的范围内,而在系统设计时,我们将根据铁路的网络结构,对负载均衡策略进行范围分组。
(3)多级树形系统架构的优化。全路的视频网络架构是铁路总公司核心节点,路局区域节点,线路一类节点三级级联架构,这与Spring Cloud的架构也是不相同的。因此,为了使上下级系统级联也能体现出云平台架构的高可用优势,我们在上下级交互的部分,增加了动态指定通信服务主体的机制,使得上下级交互的单点瓶颈得以接触,同时协议上与铁标完全兼容。
4 开发实现过程
(1)开发语言的确定。Spring Cloud微服务框架主体是Java语言,但是铁路视频监控系统是传统的流媒体业务,流媒体业务对性能的要求较高,多采用C/C++编写,同时Java语言对于面向Web应用的开发具有先天的优势,因此采用了Java语言与C/C++混合编程的方式实现云平台。
(2)微服务划分。在微服务框架中,有一个关键性的问题就是微服务的划分,具体微服务该以多大粒度来划分,没有统一的标准,划分的过小会增加系统的协调管理开销,划分过大则将损失系统的灵活性与扩展性。结合铁路视频标准与业务,将视频云平台主要划分为管理微服务集群,存储微服务集群,分转发微服务集群,这些类型的微服务是承载了视频业务的信令协议与流媒体传输的核心功能。图2系统微服务划分图,突出了微服务集群在整个视频云平台核心位置。
(3)微服务负载能力算法定义。在视频云平台中,任务负载均衡与任务动态切换与接管是平台的主要特性,Spring Cloud提供的负载均衡仅仅是基于Web访问量的一个负载,无法满足视频云平台要求的视频流媒体的任务负载与动态接管,视频云平台为各个服务自定义了能力值,存储服务的能力值由存储能力和回放能力两个值组成,分转发服务的能力值由接入能力与分发能力组成,在一个视频流任务的执行过程中,将会根据各个类型的微服务的各种类型的能力值,动态计算应该由哪个微服务承接该请求任务,从而实现了任务的负载均衡与动态接管。
(4)共享内存与分布式锁应用。视频云平台内的各个微服务之间,既需要共享数据又需要保持数据的同步,因此,在视频云平台中,就需要增加進程间数据共享与同步的机制,这是Spring Cloud框架没有提供的部分,通过对比最终选择了Ignite共享内存与分布式锁的解决方案,加入到视频云平台之中。
5 应用效果验证
视频云平台已经完成开发工作,经过验证,功能与协议信令符合铁标协议的要求,同时具备了高可用,负载均衡,高可用,任务动态接管等云平台的特性,同时性能得到显著提升,系统的稳定性大大提升,达到预期的效果。
6 结语
通过铁路标准的视频监控云平台的技术选型,设计,实现得到比较深刻的启示就是,任何新技术在特定行业的应用,均需要与业务相结合,都是需要改进和优良的,完全的拿来主义是行不通的,恰恰就是与业务的深度结合才能体现出新技术的价值。
参考文献
[1] Karan Singh(卡兰·辛格),著.Ceph CookBoo中文版[M].Ceph中国社区,KVM云技术社区,译.北京:电子工业出版社,2016.
[2] 王浩,王伟旗.云平台通信技术应用[M].北京:中国水利水电出版社,2019.
[3] 翟永超.Spring Cloud微服务实战[M].北京:电子工业出版社,2017.