馮鳳娟,張 彥,司 群
(1.北京交通大學 軟件學院,北京 100044;2.中國鐵道科學研究院集團有限公司 電子計算技術研究所,北京 100081)
隨著網絡在政治、軍事、經濟、生活等各領域的廣泛應用,人們的工作、學習和生活方式也隨之變化。然而,在信息資源共享的同時也帶來了信息安全問題。計算機信息安全已經成為涉及國家戰略和國計民生的重要問題,信息安全的重要性已經提升到國家戰略層面。
中國國家鐵路集團有限公司(簡稱:國鐵集團)、各鐵路局集團有限公司(簡稱:鐵路局)為了滿足各自業務發展和需要,分別開發了12306互聯網售票系統、鐵路列車調度管理系統、鐵路列車調度指揮系統、鐵路列車調度控制系統等許多不同的信息系統。為了保證各個系統的信息安全,防止系統被黑客攻擊、系統信息的泄露給國家和個人造成損失,所有的系統在上線前都必須經過嚴格的安全檢測[1]。
目前,國鐵集團尚沒有統一的開發與測試云管理平臺,無法對測試流程和進度進行管控,也無法對各個系統的測試數據進行統計分析,或幫助開發人員進行自助測試,造成鐵路全網的開發與測試環節沒有形成閉環,資源利用率低,不能實現資源共享,以及開發、測試與部署的統一和規范。
綜上,開發一個既能支持開發人員,又能支持測試人員和管理人員的,集開發、測試和管理為一體的鐵路開發測試云管理平臺具有十分重要的意義。
本文從不同角度進行鐵路開發測試云管理平臺的需求分析[1]。
(1)從國鐵集團和各鐵路局的管理角度,平臺需要實現按不同維度進行統計分析的功能。
(2)從開發單位的項目規范角度,平臺需要實現鐵路統建項目和鐵路局自建項目的項目開發、部署測試、驗收測試、上線部署、安全測試、項目歸檔6個步驟的全流程協同管理,實現開發與測試環節的有效閉合,規范項目的開發測試流程。
(3)從測評機構的測試角度,平臺需要實現網絡安全等級保護測試、風險評估、安全檢查、源代碼安全檢查等安全測試的流程管理、測試數據管理,以及測評報告的編制。
(1)從資源利用和知識固化角度,平臺需要實現知識庫管理、Docker容器資源和測試工具資源的申請、審核、分配、監控和回收管理。
(2)從漏洞與補丁管理角度,平臺需要跟鐵路漏洞消除和控制管理系統實現信息共享和對接,實現漏洞信息上報、管理、消控,以及對應補丁的下載和驗證。
(3)從代碼管理與版本控制角度,平臺需要實現代碼上傳、拉取等代碼的托管功能以及版本控制功能。
(4)從系統管理角度,平臺需要實現用戶管理、權限和角色管理。
(5)從系統服務支撐角度,平臺需要實現微服務治理功能,為基準環境上的所有微服務提供服務注冊、服務發現、服務監控和日志管理功能。
(6)從離線測試環境搭建與部署角度,平臺需要提供一個仿線上環境的線下測試環境,減少由于線上、線下環境不統一造成的部署問題。
平臺設計主要包含平臺總體架構、技術架構、功能架構與網絡架構的設計。
鐵路開發測試云管理平臺根據功能可以分為5個建設系統:全流程協同管理系統,源代碼管理系統,離線測試環境,線上部署區域及安全測試系統[1]。圖1為該平臺的總體架構。
(1)全流程協同管理系統
在鐵路開發測試云管理平臺上創建一個項目時,需要進行項目開發、部署測試、驗收測試、上線部署、安全測試、項目歸檔6個步驟。該系統專注于研發這6個步驟工作流的整合和統一,支持不同系統之間的數據聯動和整合。
(2)源代碼管理系統
所有項目代碼的統一存儲點,實現代碼管理、版本管理、倉庫管理及持續集成。
(3)離線測試環境
離線測試環境具有完整的云平臺管理能力,提供Docker容器的申請、分配、監控和回收等資源管理功能。允許研發人員申請資源部署待測系統,并進行功能和性能測試。離線測試環境為部署的待測系統提供應用防火墻、負載均衡等網絡環境管理功能,同時,提供服務注冊、服務發現、報警等微服務管理功能。
(4)線上部署區域
線上(生產)環境,包括云環境和物理環境,與離線測試環境實現物理隔離,與離線開發測試系統保持統一規范。
(5)安全測試系統
對線上部署區域和離線測試環境中的系統進行網絡安全等級保護測試、風險評估、安全檢查、源代碼安全檢查等安全測試,具備測試準備、方案編制、現場測試、報告編制4個階段的測試流程管理、測試數據管理、測評報告編制等功能。該系統還具備測試工具的申請、分配、調用、回收管理、知識庫管理功能,測試信息的多維度統計分析功能。同時,還可實現對安全測試過程中發現的漏洞的上傳,以及對應補丁的下載和驗證。

圖1 平臺總體架構
平臺技術架構如圖2所示,包括數據存儲層、數據訪問層、業務邏輯層、控制層、表現層5層架構,同時,包含服務注冊與發現、系統授權認證、消息中間件、基準測試環境等輔助技術[1-3]。

圖2 平臺技術架構
(1)表現層
該層主要使用Vue、TypeScript、Stylus等技術。Vue是一套漸進式的Web框架,通過虛擬DOM算法實現數據和頁面的雙向綁定,完成高效的數據展示和更新。TypeScript是JavaScript的超集,可以進行類型安全的前端編譯,增加代碼的可讀性和可維護性。Stylus是一種編譯成CSS的語言,可以實現復用和函數功能,方便各個組件使用。
(2)控制層
該層使用SpringBoot技術,其配置簡單,使得開發者可以將更多的精力放在業務開發上,而不是在框架配置上。
(3)業務邏輯層
該層使用Spring技術,方便業務解耦。Spring的低侵入性設計,對代碼污染較低,且可以方便集成Logback、Mybatis等其他框架。同時,Spring AOP支持將一些通用的任務進行集中式的管理,便于代碼的復用。
(4)數據訪問層
該層使用Mybatis、Redis API、OSS API等技術。Mybatis是一個對象關系映射框架,它將業務邏輯對象與數據庫中存儲的對象形成映射關系,使編寫SQL語句更加方便靈活;Redis API在項目中主要使用的是RedisTemplate,為程序員提供多種操作Redis的API;OSS API用于項目中的對象存儲,提供不同的上傳文件的API,同時也提供API的下載鏈接。
(5)數據存儲層
該層主要對項目產生的結構化數據、非結構化的對象數據、緩存數據進行存儲。為加快查詢速度,該層使用Redis緩存技術緩存關鍵數據。
(6)服務注冊與發現
平臺使用ZooKeeper+Dubbo技術。Dubbo負責提供系統內部不同模塊間的RPC接口,使模塊間的調用更加透明、高效;ZooKeeper為服務提供者進行注冊服務,暴露接口,供服務消費者發現服務,并完成調用。
(7)系統認證授權
平臺使用的OAuth 2.0技術是用于REST/APIs的代理授權框架。該技術基于令牌進行授權,在無需暴露用戶密碼的情況下,使應用能獲取對用戶數據的有限訪問權限,保證不同權限的角色可以訪問到不同的接口。
(8)消息中間件
平臺使用RocketMQ,通過消息隊列,以基于訂閱和消費的方式實現異步處理功能,從而提高系統的響應速度。該技術支持順序性消費,保證FIFO原則,并且基于長輪詢+pull消費消息方式來保證實時性,提供豐富的拉取模式,支持10億級別的消息堆積。
(9)基準環境
平臺使用Docker+Kubernetes的方式搭建的一套仿線上離線測試環境。Docker有利于持續部署與測試,形成可復用的鏡像,提高效率。它與底層共享操作系統,性能更加優良,負載更低,具有較高的資源利用率與隔離性,保證應用間不會相互影響[4-5];Kubernetes是一個開源系統,用于自動化、容器化應用程序的部署、擴展和管理,有助于管理Docker容器[6]。
鐵路開發測試云管理平臺主要由全流程協同管理系統、源代碼管理系統、離線測試環境、安全測試系統4部分組成,系統功能架構如圖3所示[1]。
(1)全流程協同管理系統主要由項目開發上線6個步驟的流程管理、外部服務調用、數據統計3部分組成。
(2)源代碼管理系統主要提供代碼的托管功能與版本控制,方便離線測試環境及時拉取部署代碼。本文使用GitLab搭建源代碼管理系統。

圖3 平臺功能架構
(3)離線測試環境又稱為基準環境,是在線下環境維護的仿線上的環境,用戶可以在該環境中申請Docker容器,進行項目部署和測試,減少由于線上、線下環境不統一造成的不必要的錯誤和異常。
(4)安全測試系統主要提供網絡安全等級保護測試、安全檢查、風險評估等安全測試的流程管理[2,7-8];實現知識庫管理,提供相應的模板信息,提高測試人員的工作效率,促進測試流程規范化;實現對漏洞與補丁的管理;實現不同維度的數據統計分析。
平臺采取“一級部署”的架構方式,將所有服務器統一部署在國鐵集團數據中心內部服務網的測試接入區中。平臺的通信網絡安全、邊界安全納入數據中心管轄范疇內。國鐵集團、鐵路局、開發單位、測評機構4類終端用戶通過內部服務網或VPN服務器訪問本平臺并開展業務。通過平臺上部署的堡壘機和防火墻進行邊界防護檢測,連接到核心交換機后可以進入開發測試云管理平臺,通過鑒權服務器進行身份和權限的鑒定,保證開發測試云管理平臺的安全性。研發人員、測試人員通過開發測試云管理平臺的全流程協同管理系統,根據項目研發生命周期的步驟,自動觸發和調用源代碼管理系統、離線測試環境、安全測試系統。鐵路開發測試云管理平臺網絡拓撲架構如圖4所示[1-2]。
本文依據平臺的設計方案,開發了鐵路開發測試云管理平臺的原型系統。該平臺的建設將大幅提高國鐵集團信息系統的信息安全管理能力。平臺效益主要體現在以下幾方面:
(1)規范安全測試管理流程。將測試人員的經驗轉換成知識,通過模板庫和知識庫簡化各類人員的使用,提高測評機構的安全測試效率。
(2)提高資源利用率。規范鐵路開發、測試與部署的流程,形成開發、測試、部署各個環節的有效閉合和統一管控,保證開發測試與生產環境的統一,減少由于線上、線下環境不統一造成的錯誤。
(3)提高開發測試效率。提供Docker容器資源、測試工具等資源的統一管理,規范化資源申請、審核、分配、監控和回收的流程,實現資源的整合與共享。
鐵路信息安全關系到鐵路的安全穩定運行,對我國鐵路事業的發展,乃至我國國民經濟的發展都有著非常重要的意義。因此,必須加大力度完善鐵路信息安全檢測,使得信息安全和鐵路發展相匹配。通過鐵路開發測試云管理平臺的建設,可以規范信息安全測試管理流程,提高資源的利用率,實現開發、測試、部署各個環節的有效閉合和統一管控。

圖4 平臺網絡拓撲架構