張濤
摘? 要:隨著云計算概念在互聯(lián)網(wǎng)行業(yè)的發(fā)展日趨成熟,云計算框架在鐵路視頻監(jiān)控領(lǐng)域的應(yīng)用推廣普及也被提上日程,該文目的是將互聯(lián)網(wǎng)通用云計算框架與鐵路綜合視頻監(jiān)控技術(shù)規(guī)范相結(jié)合,設(shè)計出一套既能體現(xiàn)云計算框架的諸多技術(shù)優(yōu)勢,又能深度融合鐵路視頻監(jiān)控業(yè)務(wù)特色視頻監(jiān)控云平臺。
關(guān)鍵詞:云平臺? 云計算? 高可用? 負載均衡? 微服務(wù)
中圖分類號:TP277 ? ?文獻標識碼:A 文章編號:1672-3791(2020)02(c)-0003-03
鐵路綜合視頻監(jiān)控系統(tǒng)經(jīng)過十幾年的發(fā)展,全路攝像機接入容量已達到幾十萬路的規(guī)模,鐵路綜合視頻技術(shù)規(guī)范(鐵標)也隨之不斷地深入與完善從“鐵標1.0”到最新的“鐵標2.0”,并貫穿于全路各級綜合視頻監(jiān)控系統(tǒng),形成了具有明顯行業(yè)特色鐵路視頻監(jiān)控系統(tǒng)。隨著高清擴容、視頻一體化等需求的提出,鐵路綜合視頻監(jiān)控系統(tǒng)容量規(guī)模將會持續(xù)增長,對系統(tǒng)的高可用性、動態(tài)擴展性、易用性方面等要求也將大大提高。而云平臺的高可用、負載均衡、動態(tài)擴展性等特性正是鐵路綜合視頻監(jiān)控系統(tǒng)需要具備的。
因此鐵路綜合視頻監(jiān)控系統(tǒng)實現(xiàn)云平臺功能的需求被提上日程,在這需求的驅(qū)動下,很多路外通用安防廠商,試圖使用其視頻監(jiān)控云平臺,替代既有的鐵路綜合視頻監(jiān)控平臺,但是其無法滿足鐵路行業(yè)長期以來形成的鐵路視頻規(guī)范(鐵標),無法實現(xiàn)鐵路視頻行業(yè)的相關(guān)業(yè)務(wù)特點。
形成的現(xiàn)狀就是,路外安防廠商的云平臺,不能滿足鐵標的架構(gòu)與業(yè)務(wù)要求,路內(nèi)傳統(tǒng)廠商的視頻平臺,目前均不是云平臺的架構(gòu),云平臺的主要特性無法體現(xiàn)。
結(jié)論就是,目前還沒一款現(xiàn)成的系統(tǒng)能夠既滿足鐵路視頻標準,又能體現(xiàn)云平臺等先進技術(shù)的基于鐵路標準的視頻監(jiān)控云平臺。
該文的目的就是設(shè)計出一套既能體現(xiàn)云平臺框架的諸多技術(shù)優(yōu)勢,又能深度融合鐵路視頻標準視頻監(jiān)控云平臺。
1? 技術(shù)路線選擇
通過一系列的對比與論證工作,從眾多的云平臺框架和云存儲框架中,確定了基于微服務(wù)模式的Spring Cloud框架做為視頻云平臺的基礎(chǔ)開發(fā)框架,基于Ceph云存儲技術(shù)做為視頻云存儲的基礎(chǔ)開發(fā)框架。
微服務(wù)是一種架構(gòu)模式,它提倡將單一應(yīng)用程序劃分成一組小的服務(wù),每個服務(wù)運行在其獨立的進程中,徹底去掉耦合,服務(wù)之間互相協(xié)調(diào)、互相配合,為用戶提供最終的價值。微服務(wù)架構(gòu)的優(yōu)勢有復雜度可控、獨立部署、技術(shù)選型靈活、容錯性、擴展性。
Spring Cloud是一系列框架的有序集合,簡化了云平臺基礎(chǔ)設(shè)施的開發(fā),如服務(wù)發(fā)現(xiàn)注冊、配置中心、消息總線、負載均衡、斷路器、數(shù)據(jù)監(jiān)控等。Spring Cloud已在眾多互聯(lián)網(wǎng)公司中得到應(yīng)用,是目前廣泛應(yīng)用的微服務(wù)框架。
Ceph是一種為優(yōu)秀的性能、可靠性和可擴展性而設(shè)計的統(tǒng)一的、分布式文件系統(tǒng),具有高性能、高可用性、高可擴展性、接口豐富等特點。Ceph在金融、政府行業(yè)、互聯(lián)網(wǎng)、能源行業(yè)、運營商、高校、媒體娛樂、游戲等眾多行業(yè)得到了廣泛的應(yīng)用,知名互聯(lián)網(wǎng)企業(yè)有如阿里、騰訊、京東、攜程等。市場上70%~80%的云平臺都在采用Ceph作為底層的存儲平臺。
因此我們認為將Spring Cloud與Ceph作為鐵路視頻監(jiān)控云平臺的基礎(chǔ)開發(fā)框架是有一定的普遍性和代表性的。
2? 系統(tǒng)架構(gòu)設(shè)計
視頻監(jiān)控云平臺架構(gòu)上遵循典型的云計算三層架構(gòu)進行設(shè)計實現(xiàn)的,在視頻業(yè)務(wù)領(lǐng)域?qū)?yīng)關(guān)系如圖1系統(tǒng)架構(gòu)圖,由下至上分別對應(yīng)IaaS、PaaS和SaaS層。
(1)IaaS層:是硬件服務(wù)器,存儲設(shè)備,網(wǎng)絡(luò)設(shè)備以Docker容器的形式提供虛擬化的計算與存儲能力。
(2)PaaS層:是Spring cloud平臺框架與Ceph云存儲構(gòu)成的云平臺基礎(chǔ)框架層。
(3)SaaS層:是云平臺基礎(chǔ)框架上運行的具體的視頻云品臺的業(yè)務(wù)應(yīng)用層。
3? 鐵路視頻標準融合設(shè)計
目前鐵路視頻系統(tǒng)遵循的主要是《鐵標1.0》《鐵標2.0》,這是鐵路視頻系統(tǒng)的根本要求,根據(jù)鐵標要求的通信框架與系統(tǒng)級聯(lián)模式要求,采用的Spring Cloud微服務(wù)框架與鐵標相結(jié)合,需要做如下幾方面的融合設(shè)計。
(1)通信實時性的優(yōu)化。Spring cloud:框架內(nèi)部的采用的事SOA通信模式,是無狀態(tài)的,而鐵標要求的是基于TCP連接的有狀態(tài)實時通信模式,因此,在系統(tǒng)的時機過程中,在微服務(wù)之間增加了實時通信的機制,并與SOA通信機制結(jié)合使用。
(2)網(wǎng)絡(luò)不對等性的優(yōu)化。Spring cloud主要是針對互聯(lián)網(wǎng),傳輸主要是SOA傳遞的文本信息,但是視頻監(jiān)控系統(tǒng)大量傳遞的是視頻流數(shù)據(jù),對網(wǎng)絡(luò)帶寬要求較高,鐵路專網(wǎng)的組網(wǎng)特點是多個環(huán)網(wǎng)組成,同一個環(huán)內(nèi)網(wǎng)絡(luò)條件好,帶寬高,環(huán)與環(huán)之間帶寬是瓶頸。因此,在實現(xiàn)云平臺的負載均衡的特性時,就需要考慮網(wǎng)絡(luò)條件不均衡的問題,所以就不能針對整個系統(tǒng)進行全域的負載均衡,而需要將負載均衡策略限定在網(wǎng)絡(luò)條件對等的范圍內(nèi),而在系統(tǒng)設(shè)計時,我們將根據(jù)鐵路的網(wǎng)絡(luò)結(jié)構(gòu),對負載均衡策略進行范圍分組。
(3)多級樹形系統(tǒng)架構(gòu)的優(yōu)化。全路的視頻網(wǎng)絡(luò)架構(gòu)是鐵路總公司核心節(jié)點,路局區(qū)域節(jié)點,線路一類節(jié)點三級級聯(lián)架構(gòu),這與Spring Cloud的架構(gòu)也是不相同的。因此,為了使上下級系統(tǒng)級聯(lián)也能體現(xiàn)出云平臺架構(gòu)的高可用優(yōu)勢,我們在上下級交互的部分,增加了動態(tài)指定通信服務(wù)主體的機制,使得上下級交互的單點瓶頸得以接觸,同時協(xié)議上與鐵標完全兼容。
4? 開發(fā)實現(xiàn)過程
(1)開發(fā)語言的確定。Spring Cloud微服務(wù)框架主體是Java語言,但是鐵路視頻監(jiān)控系統(tǒng)是傳統(tǒng)的流媒體業(yè)務(wù),流媒體業(yè)務(wù)對性能的要求較高,多采用C/C++編寫,同時Java語言對于面向Web應(yīng)用的開發(fā)具有先天的優(yōu)勢,因此采用了Java語言與C/C++混合編程的方式實現(xiàn)云平臺。
(2)微服務(wù)劃分。在微服務(wù)框架中,有一個關(guān)鍵性的問題就是微服務(wù)的劃分,具體微服務(wù)該以多大粒度來劃分,沒有統(tǒng)一的標準,劃分的過小會增加系統(tǒng)的協(xié)調(diào)管理開銷,劃分過大則將損失系統(tǒng)的靈活性與擴展性。結(jié)合鐵路視頻標準與業(yè)務(wù),將視頻云平臺主要劃分為管理微服務(wù)集群,存儲微服務(wù)集群,分轉(zhuǎn)發(fā)微服務(wù)集群,這些類型的微服務(wù)是承載了視頻業(yè)務(wù)的信令協(xié)議與流媒體傳輸?shù)暮诵墓δ?。圖2系統(tǒng)微服務(wù)劃分圖,突出了微服務(wù)集群在整個視頻云平臺核心位置。
(3)微服務(wù)負載能力算法定義。在視頻云平臺中,任務(wù)負載均衡與任務(wù)動態(tài)切換與接管是平臺的主要特性,Spring Cloud提供的負載均衡僅僅是基于Web訪問量的一個負載,無法滿足視頻云平臺要求的視頻流媒體的任務(wù)負載與動態(tài)接管,視頻云平臺為各個服務(wù)自定義了能力值,存儲服務(wù)的能力值由存儲能力和回放能力兩個值組成,分轉(zhuǎn)發(fā)服務(wù)的能力值由接入能力與分發(fā)能力組成,在一個視頻流任務(wù)的執(zhí)行過程中,將會根據(jù)各個類型的微服務(wù)的各種類型的能力值,動態(tài)計算應(yīng)該由哪個微服務(wù)承接該請求任務(wù),從而實現(xiàn)了任務(wù)的負載均衡與動態(tài)接管。
(4)共享內(nèi)存與分布式鎖應(yīng)用。視頻云平臺內(nèi)的各個微服務(wù)之間,既需要共享數(shù)據(jù)又需要保持數(shù)據(jù)的同步,因此,在視頻云平臺中,就需要增加進程間數(shù)據(jù)共享與同步的機制,這是Spring Cloud框架沒有提供的部分,通過對比最終選擇了Ignite共享內(nèi)存與分布式鎖的解決方案,加入到視頻云平臺之中。
5? 應(yīng)用效果驗證
視頻云平臺已經(jīng)完成開發(fā)工作,經(jīng)過驗證,功能與協(xié)議信令符合鐵標協(xié)議的要求,同時具備了高可用,負載均衡,高可用,任務(wù)動態(tài)接管等云平臺的特性,同時性能得到顯著提升,系統(tǒng)的穩(wěn)定性大大提升,達到預(yù)期的效果。
6? 結(jié)語
通過鐵路標準的視頻監(jiān)控云平臺的技術(shù)選型,設(shè)計,實現(xiàn)得到比較深刻的啟示就是,任何新技術(shù)在特定行業(yè)的應(yīng)用,均需要與業(yè)務(wù)相結(jié)合,都是需要改進和優(yōu)良的,完全的拿來主義是行不通的,恰恰就是與業(yè)務(wù)的深度結(jié)合才能體現(xiàn)出新技術(shù)的價值。
參考文獻
[1] Karan Singh(卡蘭·辛格),著.Ceph CookBoo中文版[M].Ceph中國社區(qū),KVM云技術(shù)社區(qū),譯.北京:電子工業(yè)出版社,2016.
[2] 王浩,王偉旗.云平臺通信技術(shù)應(yīng)用[M].北京:中國水利水電出版社,2019.
[3] 翟永超.Spring Cloud微服務(wù)實戰(zhàn)[M].北京:電子工業(yè)出版社,2017.