張濤


摘? 要:隨著云計算概念在互聯網行業的發展日趨成熟,云計算框架在鐵路視頻監控領域的應用推廣普及也被提上日程,該文目的是將互聯網通用云計算框架與鐵路綜合視頻監控技術規范相結合,設計出一套既能體現云計算框架的諸多技術優勢,又能深度融合鐵路視頻監控業務特色視頻監控云平臺。
關鍵詞:云平臺? 云計算? 高可用? 負載均衡? 微服務
中圖分類號: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.