摘要 美軍軟件工廠被視為美軍數(shù)字化轉(zhuǎn)型和現(xiàn)代化戰(zhàn)略的重要組成部分。首先,介紹了美軍軟件工廠的發(fā)展歷程和現(xiàn)狀,并詳細分析了軍用軟件工廠的核心使用模式和參考架構(gòu);其次,圍繞提升軟件生產(chǎn)效率這一核心目標,對軍用軟件工廠中關(guān)鍵技術(shù)開展分析,包括基礎(chǔ)設(shè)施即代碼、云原生應(yīng)用開發(fā)、基于數(shù)字孿生的軟件驗證、全景化智能運維監(jiān)控、軟件資源分配和動態(tài)調(diào)度技術(shù);最后,對軍用軟件工廠的發(fā)展趨勢和啟示做出總結(jié),以期為未來我軍軟件工廠的建設(shè)發(fā)展提供重要的參考。 0 引言 在現(xiàn)代戰(zhàn)爭中,軟件在現(xiàn)代軍用裝備體系中的比重日趨增加,在提升裝備整體效能方面的作用日益凸顯。在軍事指揮的觀察—判斷—決策—行動(OODA)環(huán)中,指揮員通過軟件獲取裝備狀態(tài)和末端傳感器數(shù)據(jù),愈發(fā)依賴軟件輔助決策,通過軟件下達指令??梢哉f,軟件決定了OODA環(huán)的效能,甚至出現(xiàn)了“軟件定義戰(zhàn)爭”(Software Defined Warfare)概念。 現(xiàn)代作戰(zhàn)體系愈發(fā)復(fù)雜,軍事軟件工程實踐變得更具有挑戰(zhàn)性,主要表現(xiàn)在以下3個方面: 1)軍事業(yè)務(wù)應(yīng)用系統(tǒng)架構(gòu)具有復(fù)雜混合特性。a) 存在老舊成熟應(yīng)用;b) 縱向存在多層架構(gòu)、橫向存在系統(tǒng)之系統(tǒng),定制性較強、靈活性較弱;c) 存在新型特殊應(yīng)用,依托于特有平臺獨立運行,較難管理。在復(fù)雜混合應(yīng)用系統(tǒng)的開發(fā)、測試、交付和運維過程中,采取嚴格安全措施的同時,提升其持續(xù)交付能力,是軍事領(lǐng)域軟件工程實踐中面臨的關(guān)鍵挑戰(zhàn)。 2)軍事軟件技術(shù)水平已落后于行業(yè)先進軟件水平。隨著云計算、大數(shù)據(jù)和人工智能等新技術(shù)不斷涌現(xiàn),以及軟件開源運動,商業(yè)領(lǐng)域的數(shù)字化需求日益增長,推動了軟件技術(shù)的快速創(chuàng)新和應(yīng)用。但新興技術(shù)在軍事領(lǐng)域中的轉(zhuǎn)移應(yīng)用存在滯后性,而軍事領(lǐng)域爆發(fā)出新技術(shù)在情報、偵察等領(lǐng)域中的使用需求,導(dǎo)致兩者間存在矛盾。新技術(shù)的引入對現(xiàn)有軍事軟件工程實踐提出新的挑戰(zhàn)。 3)現(xiàn)代戰(zhàn)爭中,信息的獲取、處理和分析需要在瞬時完成,軟件需實時處理大量數(shù)據(jù)并保障即時情報;此外,隨著戰(zhàn)場環(huán)境的不斷變化,軟件需快速部署到新的平臺,并更新以適應(yīng)新的戰(zhàn)術(shù)需求;同時,在戰(zhàn)場環(huán)境中,軟件必須具備高度的彈性和可靠性。因此保障交付系統(tǒng)的快速適應(yīng)性,是未來軟件工程實踐面臨的重要挑戰(zhàn)。 為應(yīng)對上述挑戰(zhàn),美國國防部將軟件工廠概念應(yīng)用于軍事領(lǐng)域。我軍用軟件工廠的發(fā)展起步較晚,尚屬于摸索階段,亟需借鑒國外先進經(jīng)驗和做法。目前,關(guān)于美軍軟件工廠的文獻較少,且缺乏對其核心技術(shù)的深入分析。本文旨在填補這一研究空白,通過對美國軍用軟件工廠的發(fā)展現(xiàn)狀、使用模式和架構(gòu)以及關(guān)鍵技術(shù)進行系統(tǒng)分析和總結(jié),為我國軍用軟件工廠發(fā)展提供借鑒和指導(dǎo)。 1 美國軍用軟件工廠發(fā)展現(xiàn)狀 1.1 軟件工廠概念內(nèi)涵 傳統(tǒng)軟件行業(yè)嚴重依賴軟件開發(fā)人員的個人編碼水平,存在軟件生產(chǎn)效率低下、質(zhì)量不穩(wěn)定、開發(fā)周期長、成本高昂和維護困難等問題。為解決這些難題,美國R.W.Bemer提出一種軟件開發(fā)的工業(yè)化概念框架——軟件工廠(Software Factory),將軟件開發(fā)過程視為一個高度工業(yè)化、可重復(fù)和可管理的生產(chǎn)過程,采用先進的工程化方法和工具,實現(xiàn)軟件的快速、可靠和定制化生產(chǎn)。 軟件工廠內(nèi)封裝了特定的業(yè)務(wù)和技術(shù)知識,幫助開發(fā)人員以一種高層次的抽象模式進行開發(fā),通過適配、裝配和配置框架化組件,開發(fā)人員能快速搭建一個典型架構(gòu)的軟件工程,僅需關(guān)注其核心業(yè)務(wù)功能。 1.2 美軍軟件工廠發(fā)展歷程 在“軟件定義戰(zhàn)爭”的概念下,軍事能力發(fā)展與軟件能力迭代緊密耦合。無論目標環(huán)境是云、端還是作戰(zhàn)平臺的傳感器、嵌入式系統(tǒng),軟件的設(shè)計、實施和部署都會產(chǎn)生大量數(shù)據(jù)。這些數(shù)據(jù)經(jīng)過標記、整理,供構(gòu)建下一代軍事系統(tǒng)的設(shè)計人員訪問,設(shè)計人員從這些數(shù)據(jù)中學(xué)習(xí)模型、提取價值,并將模型集成到下一代軍事系統(tǒng)。軟件產(chǎn)生數(shù)據(jù),數(shù)據(jù)提煉模型,模型重新集成至軟件,從而形成閉環(huán)。這與軟件的研發(fā)生產(chǎn)流程類似,美軍軟件工廠概念如圖1所示。 圖 1 美軍軟件工廠概念 美國國防部從2017年開始構(gòu)建軟件工廠生態(tài)系統(tǒng),已初步建成空軍、海軍和陸軍等軍種軟件工廠生態(tài)系統(tǒng),在縮短產(chǎn)品交付時間、節(jié)約開發(fā)成本和提升作戰(zhàn)效能等方面取得了顯著成效。在頂層設(shè)計層面,美國國防部陸續(xù)發(fā)布了一系列戰(zhàn)略計劃,主要包括:2022年2月,美國國防部簽署批準《國防部軟件現(xiàn)代化戰(zhàn)略》,戰(zhàn)略中制定了“構(gòu)建國防部軟件工廠生態(tài)系統(tǒng)”的遠期目標;2023年3月,美國國防部發(fā)布《國防部軟件現(xiàn)代化實施計劃》,明確了構(gòu)建國防部軟件工廠生態(tài)系統(tǒng)的4項具體任務(wù)。 在軍種層面,美空軍于2017年成立首個軟件工廠“Kessel Run”實驗室。目前,美空軍已建立18家軟件工廠,業(yè)務(wù)領(lǐng)域涉及空域感知、智慧控制和后勤保障等,通過如Platform One等體系服務(wù)商,為軟件工廠提供通用服務(wù)和技術(shù)。美軍軟件工廠的數(shù)量已經(jīng)達到近50家,軟件工廠生態(tài)系統(tǒng)已初具規(guī)模。 1.3 美軍現(xiàn)有軟件工廠分析 為分析美軍軟件工廠現(xiàn)狀,本節(jié)選取美軍軟件工廠典型案例,從軟件工廠的目標、研制產(chǎn)品/項目、交付時間和關(guān)鍵功能等方面進行分析,案例分析如表 1所示。目前美軍各軍種的軟件工廠還處在獨立建設(shè)階段,尚未形成整合效應(yīng),但各軟件工廠具備共性的可衡量特征。 1)功能齊全性。從關(guān)鍵功能對比發(fā)現(xiàn),各軟件工廠均提供持續(xù)集成、持續(xù)交付、持續(xù)監(jiān)控等方面的關(guān)鍵支撐功能,可見軟件生產(chǎn)流水線的支撐功能越齊全,表明該軟件生產(chǎn)流水線的自動化水平更高。 2)流程標準性。從軟件研發(fā)模式對比發(fā)現(xiàn),各軟件工廠的研發(fā)模式均基于開發(fā)、安全和運維一體化(DevSecOps)開展,可見軟件生產(chǎn)流水線中開發(fā)、測試、試用和生產(chǎn)過程中的各個環(huán)節(jié)較為規(guī)范,標準化程度越高,表明軟件生產(chǎn)質(zhì)量的可控性和可預(yù)測性越強。 3)場景適用性。從研制產(chǎn)品/項目對比發(fā)現(xiàn),各軟件工廠適用場景從業(yè)務(wù)領(lǐng)域分類,包括作戰(zhàn)類、通信類、情報分析類和傳感器類等有所不同。支撐的類型越多,說明軟件工廠整合能力越強。 4)軟件復(fù)用性。從基礎(chǔ)平臺能力對比發(fā)現(xiàn),各軟件工廠均提供基礎(chǔ)設(shè)施即服務(wù)、共性平臺中間件等復(fù)用能力,支撐軟件快速開發(fā)或代碼共享,可見軟件在生產(chǎn)過程中重用比例較高。重用比例越高,說明軟件工廠的組件化程度越高,生產(chǎn)效率越高。 5)交付敏捷性。從交付周期對比發(fā)現(xiàn),各軟件工廠的軟件交付周期基本在3個月以內(nèi),可見軟件響應(yīng)需求能力很快。交付周期越快速,表明軟件工廠的運營管理能力越強。 表1 美軍軟件工廠案例分析 2 軍用軟件工廠使用模式與架構(gòu)分析 2.1 使用模式分析 軍用軟件工廠重新定義了軍事領(lǐng)域的軟件交付使用模式。軍用軟件工廠與傳統(tǒng)軟件交付使用模式對比如圖 2所示。傳統(tǒng)模式中,軟件交付嚴重依賴于交付人員的技術(shù)水平,交付人員在生產(chǎn)環(huán)境中需完成軟件安裝配置和集成遺留系統(tǒng)2方面工作,其中,安裝配置主要包括軟件在硬件環(huán)境上的安裝配置、軟件在操作系統(tǒng)和三方庫上的安裝配置以及軟件本身的安裝配置;集成遺留系統(tǒng)主要包括與監(jiān)控服務(wù)、傳輸服務(wù)、消息服務(wù)等的集成。由于軟件所依賴的底層環(huán)境在不同交付環(huán)境下存在區(qū)別,因此難以通過腳本自動完成安裝配置與集成。在軟件初次部署后,運維人員經(jīng)常會變更部署后的環(huán)境,如更新三方庫、修改應(yīng)用或系統(tǒng)配置等,這些變更難以提前校驗,升級時軟件容易故障。 相較于傳統(tǒng)軟件交付模式,軟件工廠的流水線軟件交付模式更為自動化,大幅提升了軟件交付效率,主要有以下3個優(yōu)點: 圖 2 軍用軟件工廠與傳統(tǒng)軟件交付使用模式對比 1)軟件整體交付。通過整體交付減少了軟件與配置參數(shù)、環(huán)境之間的安裝配置工作,降低了安裝配置的錯誤風(fēng)險;能夠通過工具和腳本自動化完成軟件交付,提升交付效率。 2)軟件持續(xù)自動集成。軟件代碼在開發(fā)人員提交后自動的執(zhí)行構(gòu)建和測試,便于快速發(fā)現(xiàn)并修復(fù)軟件錯誤,減少集成和合并代碼時的沖突,提升開發(fā)效率。 3)軟件持續(xù)自動部署。軟件測試后將自動進入資源庫。資源庫作為交付倉庫,能夠記錄所有軟件變更的版本、配置參數(shù)、腳本等,并具備版本跟蹤和回溯機制,支持軟件的版本升級或回滾,提升軟件交付的可靠性。 軍用軟件工廠軟件生產(chǎn)流水線的核心是基于開發(fā)、安全和運維一體化理念,利用共用軟件資產(chǎn)和自動化研發(fā)流水線,實現(xiàn)軍用軟件產(chǎn)品“工廠化、規(guī)?;笨焖俳M裝交付并持續(xù)改進能力。 2.2 參考架構(gòu)分析 軍用軟件工廠是一個抽象概念,將軍用軟件系統(tǒng)項目的研制交付過程類比為工廠的生產(chǎn)過程,輸入是敏捷需求,輸出是可交付的軟件產(chǎn)品集,軍用軟件工廠參考架構(gòu)如圖3所示。項目管理模塊獲取項目輸入,并依據(jù)標準規(guī)范和標準工具來組織項目資源;敏捷需求來源于項目初始需求、用戶反饋需求以及持續(xù)監(jiān)控服務(wù)從實際部署環(huán)境采集的運維數(shù)據(jù),并從數(shù)據(jù)中挖掘分析得到的用戶改進問題;基礎(chǔ)設(shè)施服務(wù)模塊為軟件產(chǎn)品的開發(fā)、測試和生產(chǎn)提供隨取隨用的基礎(chǔ)計算存儲環(huán)境;平臺軟件服務(wù)模塊為軟件產(chǎn)品的開發(fā)提供一套集成了軍用平臺軟件中間件服務(wù)的基礎(chǔ)開發(fā)環(huán)境,通過集成復(fù)用平臺軟件服務(wù)從而降低軟件開發(fā)的復(fù)雜軟件生產(chǎn)流水線工具集模塊為軟件開發(fā)、測試和生產(chǎn)的研發(fā)交付流程的自動化提供支撐,通過集成構(gòu)建自動化、部署自動化和測試自動化等工具盡可能降低流程中人工執(zhí)行的比例;安全防護模塊為基礎(chǔ)計算存儲環(huán)境、軟件研發(fā)流程和軟件最終運營提供安全監(jiān)測和審計,確保軟件系統(tǒng)的安全受控;交付產(chǎn)品模塊對交付的軟件、基礎(chǔ)設(shè)施腳本和文檔進行配置管理。 圖 3 軍用軟件工廠參考架構(gòu) 3 軍用軟件工廠關(guān)鍵技術(shù)分析 本章將從軟件運行環(huán)境搭建(基礎(chǔ)設(shè)施即代碼(IaC))、軟件開發(fā)模式(云原生應(yīng)用開發(fā))、原型驗證環(huán)境搭建(數(shù)字孿生)、軟件反饋鏈路構(gòu)建(全景化智能運維監(jiān)控)和軟件生產(chǎn)環(huán)境搭建(軟件資源分配與動態(tài)調(diào)度)等方面對軍用軟件工廠的關(guān)鍵技術(shù)開展詳細分析。 3.1 基礎(chǔ)設(shè)施即代碼 在軍用軟件研發(fā)過程中,存在軟件開發(fā)環(huán)境、測試環(huán)境、預(yù)生產(chǎn)環(huán)境和準生產(chǎn)環(huán)境等。由于各環(huán)境中服務(wù)器存在配置漂移,經(jīng)常發(fā)生相同代碼在開發(fā)環(huán)境運行沒有問題,而在預(yù)生產(chǎn)/生產(chǎn)環(huán)境中出現(xiàn)問題。隨著云計算的發(fā)展,通過軟件上云,使得軟件運行環(huán)境基礎(chǔ)設(shè)施的搭建流程自動化。通過IaC技術(shù),支持用代碼來配置和管理基礎(chǔ)設(shè)施。IaC技術(shù)應(yīng)用示意如圖4所示。 基于IaC技術(shù),用戶能夠使用簡單的聲明性語言將基礎(chǔ)設(shè)施定義為代碼腳本,并通過命令來部署和管理基于云的基礎(chǔ)設(shè)施。通過運行該腳本,可以在不同環(huán)境中部署一個高度一致的基礎(chǔ)設(shè)施堆棧。IaC技術(shù)主要包括以下3個方面: 1)服務(wù)開通。IaC工具接入云服務(wù),獲取命令式代碼集,并執(zhí)行配置文件調(diào)用云服務(wù)的API以獲取所需的基礎(chǔ)設(shè)施環(huán)境。該配置文件存儲至版本控制系統(tǒng)中,以供后續(xù)對該環(huán)境的跟蹤和分享。 2)服務(wù)器模板化。首先,將完全獨立的服務(wù)器“快照”創(chuàng)建為映像,包括操作系統(tǒng)、軟件、文件以及所有其他相關(guān)的詳細信息;然后,使用IaC工具,在所有服務(wù)器上統(tǒng)一安裝該映像。 3)服務(wù)器配置管理。通過IaC工具管理大量的遠程服務(wù)器,支持在眾多服務(wù)器上同步執(zhí)行代碼,從而管理服務(wù)器上的軟件,如為多個軟件分配流量等。IaC工具可以提供通用函數(shù),以保證代碼運行的一致性。 圖 4 基礎(chǔ)設(shè)施即代碼技術(shù)應(yīng)用示意 3.2 云原生應(yīng)用開發(fā) 傳統(tǒng)軍用項目大多交付的是單體架構(gòu)應(yīng)用,一般部署于單臺服務(wù)器。隨著云計算技術(shù)的普及,應(yīng)用開始部署在云端,若僅把單體架構(gòu)應(yīng)用遷移到云端虛擬機中,未開展云化重構(gòu),那么該應(yīng)用仍難以享受云計算帶來的高可用性、可擴展性和靈活性等能力。 云原生應(yīng)用基于云計算能力,通過云服務(wù)提升其穩(wěn)定性。云原生應(yīng)用開發(fā)技術(shù)主要包括以下3個方面: 1)微服務(wù)架構(gòu)。微服務(wù)運行在自己的進程中,服務(wù)間通信機制輕量,服務(wù)圍繞業(yè)務(wù)能力構(gòu)建并且能夠獨立部署,具備自治、隔離及彈性等特性。因此,微服務(wù)架構(gòu)應(yīng)用依賴一套基礎(chǔ)平臺,包括API服務(wù)網(wǎng)關(guān)、服務(wù)注冊中心和服務(wù)代理等,使微服務(wù)在結(jié)構(gòu)上實現(xiàn)“松耦合”,在功能上表現(xiàn)為統(tǒng)一整體。 2)容器編排與調(diào)度。容器提供一種隔離的執(zhí)行環(huán)境,簡化了微服務(wù)的部署過程。該執(zhí)行環(huán)境能夠獨立地分配和限制其使用的CPU、內(nèi)存等資源,使得系統(tǒng)精細控制和管理成為可能。通過容器編排與調(diào)度工具,能夠在一個集群中自動化管理和調(diào)度容器實例。依據(jù)各節(jié)點的資源利用情況,進行容器的調(diào)度和分配。根據(jù)應(yīng)用的負載情況進行負載均衡,避免某些節(jié)點負載過高而導(dǎo)致性能下降。 3)Serverless云服務(wù)。Serverless將主機管理、操作系統(tǒng)管理、資源分配、擴容甚至軟件邏輯的全部組件都看作某種形式的服務(wù),為軟件提供了性能高度優(yōu)化、抽象度更高的API,成為構(gòu)建云原生應(yīng)用的重要元素。通過搭建Serverless云服務(wù),提供基于云函數(shù)的命令行開發(fā)工具,開發(fā)人員無需關(guān)注底層資源,即可聯(lián)動云資源,完成函數(shù)的開發(fā)、部署與調(diào)試,還可以結(jié)合云上的前端服務(wù)、API網(wǎng)關(guān)和數(shù)據(jù)庫等其他資源。 3.3 基于數(shù)字孿生的軟件驗證 在軍用研發(fā)驗證中,常見的軟件測試手段涉及靜態(tài)測試、黑盒測試和白盒測試等。通常這些測試手段均在模擬環(huán)境下開展,存在測試場景單一、效率低的缺點。近年來,基于數(shù)字孿生的軟件驗證方法得到高度關(guān)注?;跀?shù)字孿生的軟件驗證技術(shù)能夠集成物理模型、傳感器數(shù)據(jù)等數(shù)據(jù)在虛擬空間中實現(xiàn)實時映射,將軟件的虛擬副本與實際軟件環(huán)境進行精確匹配,以模擬和預(yù)測軟件在實際運行中的行為。 以指揮控制軟件裝備為例,數(shù)字孿生驗證系統(tǒng)主要包括實際系統(tǒng)、測試系統(tǒng)和虛擬測試平臺3個部分,軍用軟件工廠數(shù)字孿生驗證系統(tǒng)如圖 5所示。測試系統(tǒng)為由軟件工廠流水線自動部署的生產(chǎn)環(huán)境;實際系統(tǒng)為真實的戰(zhàn)場環(huán)境,包括指揮控制系統(tǒng)、武器資源和傳感器資源等;虛擬測試平臺包括作戰(zhàn)仿真平臺、戰(zhàn)場環(huán)境模型和武器裝備模型等。通過建模仿真手段將復(fù)雜戰(zhàn)場環(huán)境的全要素虛擬化重建,構(gòu)建與真實戰(zhàn)場環(huán)境精準映射的數(shù)字孿生體,支持仿真模型實時融合真實戰(zhàn)場數(shù)據(jù),完善自身仿真數(shù)據(jù),實現(xiàn)戰(zhàn)場環(huán)境的全生命周期仿真運行。 在運行過程中,首先,借助虛擬測試平臺作戰(zhàn)仿真平臺生成測試的虛擬場景,并在作戰(zhàn)仿真平臺中建立多種虛擬傳感器模型,將虛擬傳感器探測到的態(tài)勢數(shù)據(jù)注入在線數(shù)據(jù)融合優(yōu)化模塊;其次,在線數(shù)據(jù)融合優(yōu)化模塊接收實際系統(tǒng)的傳感器探測數(shù)據(jù),為測試系統(tǒng)注入經(jīng)過融合優(yōu)化后的仿真數(shù)據(jù);最后,測試系統(tǒng)依據(jù)虛擬測試平臺注入的仿真數(shù)據(jù)和實際系統(tǒng)注入的真實用戶操作數(shù)據(jù),進行系統(tǒng)運行和決策輸出,輸出結(jié)果將反饋至虛擬測試平臺,并與真實系統(tǒng)輸出的決策輸出結(jié)果進行對比評估,從而判斷測試系統(tǒng)相較于真實系統(tǒng)是否存在能力升級。 圖 5 軍用軟件工廠數(shù)字孿生驗證系統(tǒng) 3.4 全景化智能運維監(jiān)控 傳統(tǒng)軍用項目實施過程中,運維監(jiān)控一般針對特定場景和資源建設(shè),如網(wǎng)絡(luò)性能監(jiān)控系統(tǒng)監(jiān)控網(wǎng)絡(luò)異常、IT資源監(jiān)控系統(tǒng)監(jiān)控服務(wù)器和網(wǎng)絡(luò)設(shè)備等。在軟件工廠模式下,傳統(tǒng)的分散監(jiān)控系統(tǒng)難以滿足云化、微服務(wù)化監(jiān)控運維需求,通過引入智能運維技術(shù)(AIOps),將離散、豎井式的監(jiān)控系統(tǒng)關(guān)聯(lián)打通,構(gòu)建一致的全景化應(yīng)用監(jiān)控視圖,提供精準的風(fēng)險態(tài)勢監(jiān)控和定位決策支持,并及時將運行數(shù)據(jù)通過軟件工廠的需求鏈路反饋至開發(fā)團隊,促進軟件的迭代升級。 軍用軟件智能運維系統(tǒng)從面向云、管與端環(huán)境的應(yīng)用系統(tǒng)監(jiān)控數(shù)據(jù)采集,海量異構(gòu)運維數(shù)據(jù)存儲檢索,人工智能算法支撐的數(shù)據(jù)分析等方面提供能力支撐。 1)監(jiān)控數(shù)據(jù)采集。面向應(yīng)用全棧數(shù)據(jù)進行采集,提供代碼鏈路監(jiān)控探針、應(yīng)用埋點SDK和網(wǎng)絡(luò)嗅探器等不同類型的數(shù)據(jù)采集工具,所有監(jiān)控數(shù)據(jù)通過統(tǒng)一數(shù)據(jù)采集管道對接服務(wù)端入庫或直接由實時數(shù)據(jù)分析平臺進行分析。 2)運維大數(shù)據(jù)湖。數(shù)據(jù)湖架構(gòu)適合存儲多源異構(gòu)的海量數(shù)據(jù),能夠線性擴展地存儲、檢索各種類型的結(jié)構(gòu)化、半結(jié)構(gòu)化的監(jiān)控數(shù)據(jù),包括時間序列指標、文本日志、圖數(shù)據(jù)、網(wǎng)絡(luò)包和代碼鏈路等。 3)監(jiān)控數(shù)據(jù)智能分析?;诖髷?shù)據(jù)分析平臺,應(yīng)用機器學(xué)習(xí)、人工智能算法,對運維監(jiān)控數(shù)據(jù)進行深度挖掘,自動識別和分類各類數(shù)據(jù)模式,進而發(fā)現(xiàn)潛在的問題和故障,并幫助運維人員快速定位故障并提供解決方案,支撐對運行的應(yīng)用進行異常檢測、因果推理、趨勢預(yù)測與關(guān)系發(fā)現(xiàn)等。 3.5 軟件資源分配與動態(tài)調(diào)度 由于軍事信息系統(tǒng)存在傳統(tǒng)架構(gòu)應(yīng)用和新架構(gòu)應(yīng)用混合的特點,且在邊端環(huán)境時存在資源受限和快速適變等情況,軍用軟件資源的分配與管控難以完全依賴新興技術(shù)解決。通過引入軟件資源分配與動態(tài)調(diào)度技術(shù),自動化開展系統(tǒng)的部署方案規(guī)劃和執(zhí)行,并依據(jù)動態(tài)變化的外部資源環(huán)境和能力需求,動態(tài)調(diào)整部署方案。 軟件系統(tǒng)的部署涉及通信網(wǎng)絡(luò)、計算設(shè)施與軟件應(yīng)用等多種類型構(gòu)成要素,要素之間具有復(fù)雜依賴關(guān)系和交互關(guān)系,導(dǎo)致系統(tǒng)運行環(huán)境的構(gòu)建成為一個復(fù)雜且耗時的工作。為自動化實現(xiàn)系統(tǒng)運行環(huán)境的按需、快速開設(shè),必須解決如何依據(jù)用戶需求將計算資源、運行環(huán)境和軟件資源等動態(tài)組合,以形成運行環(huán)境最優(yōu)開設(shè)部署方案并自動執(zhí)行的問題。 軟件資源分配與動態(tài)調(diào)度技術(shù)原理如圖 6所示,軟件資源分配與動態(tài)調(diào)度技術(shù)具體包括如下3個方面: 1)軟件資源部署特征元數(shù)據(jù)建模。軍事信息系統(tǒng)的軟件組成復(fù)雜,為使用戶能夠快速厘清軟件資源的部署需求,需提供一種有效元數(shù)據(jù)描述模型標準,用于對軟件進行規(guī)范化描述,以確保軟件資源在部署和適變過程中可觀可控。在軟件工廠的流水線生產(chǎn)過程中,通過充分迭代測試能夠?qū)浖Y源進行元數(shù)據(jù)建模。 2)計算存儲資源的統(tǒng)一管理。設(shè)計基礎(chǔ)管理服務(wù),包括管理節(jié)點模塊和代理節(jié)點模塊。代理節(jié)點負責收集系統(tǒng)內(nèi)設(shè)備的資源信息,并上報給管理節(jié)點,同時根據(jù)接收到的管理節(jié)點下發(fā)的部署任務(wù)來執(zhí)行軟件部署操作;管理節(jié)點匯總代理節(jié)點上報的空閑資源信息,會根據(jù)資源動態(tài)分配與調(diào)度算法來選擇系統(tǒng)內(nèi)的空閑資源將軟件部署任務(wù)發(fā)送給相應(yīng)的代理節(jié)點執(zhí)行。 3)資源動態(tài)分配與調(diào)度算法?;谲浖Y源和計算存儲資源特性的合理描述,能夠?qū)⑾到y(tǒng)構(gòu)建問題轉(zhuǎn)化為數(shù)學(xué)優(yōu)化問題?;谟脩魧?yīng)用的需求,從而自動匹配所需部署的應(yīng)用服務(wù)全集,基于現(xiàn)有計算存儲資源的部署平臺和運行環(huán)境約束,選擇合適的優(yōu)化目標,如最大化資源利用率、最優(yōu)化軟件性能等,從而求解全集服務(wù)的部署方案。基于該軟件部署優(yōu)化問題,能夠通過遺傳算法、蟻群算法等啟發(fā)式算法進行求解,為資源的動態(tài)分配和快速調(diào)整提供基礎(chǔ)。 圖 6 軟件資源分配與動態(tài)調(diào)度技術(shù)原理 4 軍用軟件工廠發(fā)展趨勢和啟示 4.1發(fā)展趨勢 目前美軍軟件工廠主要為各軍種獨立建設(shè),尚未形成互用與整合的規(guī)模效應(yīng)。未來美軍將采用體系性的解決方案,建立統(tǒng)一的軟件工廠生態(tài)系統(tǒng)。 1)協(xié)作化。為擴大各軍種軟件工廠的資源共享,實現(xiàn)跨項目、跨軍種的統(tǒng)籌管理與利用,未來軟件工廠將趨向協(xié)作化,開發(fā)人員、驗證環(huán)境和軟件構(gòu)件等資源均能在不同軟件工廠中流通和協(xié)同構(gòu)建。 2)自動化。相較于工業(yè)界的數(shù)據(jù)驅(qū)動敏捷產(chǎn)品設(shè)計,在軍用領(lǐng)域,需求獲取的渠道較為單一,因此未來軍用軟件工廠將在軟件代碼的編寫、測試,乃至軟件需求的獲取與驗證等方面不斷提升軟件自動化水平。 3)韌性化。軍用軟件具有其特殊性,尤其是戰(zhàn)術(shù)環(huán)境下資源有限、網(wǎng)絡(luò)彈性,因此未來軟件工廠將趨向于韌性化,在如何智能化地提升軟件的安全性、穩(wěn)定性和抗毀性等方面不斷發(fā)展,以適應(yīng)復(fù)雜多變的戰(zhàn)場環(huán)境。 4.2 相關(guān)啟示 美軍通過一系列軟件工廠的研制建設(shè),打造了軍用軟件的產(chǎn)業(yè)化供應(yīng)鏈,降低了對復(fù)雜軟件系統(tǒng)供應(yīng)鏈的管理成本,大幅提升了軟件的交付效率,使得軟件能夠更快貼合用戶需求反饋而升級變化。因此,軍用軟件工廠的發(fā)展理念和技術(shù)實施路徑值得關(guān)注和學(xué)習(xí),可為我國軍事軟件生產(chǎn)的模式轉(zhuǎn)型提供參考價值。 1)平臺支撐。在軟件架構(gòu)層面,盡可能減少新功能、新模塊乃至新軟件的開發(fā)代碼量。在軟件設(shè)計之初,使用基于某種模式的工廠模板來創(chuàng)建產(chǎn)品生產(chǎn)線,由生產(chǎn)線創(chuàng)建出不同的產(chǎn)品,并通過一定的規(guī)范將產(chǎn)品組裝成為一個完整系統(tǒng)。具體來說,如美空軍平臺一號、美海軍超越軟件庫等,在軍內(nèi)各業(yè)務(wù)領(lǐng)域打造經(jīng)過安全認證且封裝特定知識的組件庫和體系結(jié)構(gòu)框架,并用于產(chǎn)品復(fù)用和組裝。 2)資源云化。為軍內(nèi)云、邊和端系統(tǒng)提供一體化的基礎(chǔ)設(shè)施資源,該資源能夠被統(tǒng)一管理、調(diào)度、配置和定義。通過基礎(chǔ)設(shè)施的資源云化,打破軟件部署從采購設(shè)備開始的傳統(tǒng)采辦思路,而是為任意軟件的快速部署提供所需的基礎(chǔ)設(shè)施資源。更進一步,為云、邊和端系統(tǒng)提供云化服務(wù)資源,軟件部署時可根據(jù)需要靈活選擇所需的服務(wù)資源并進行組合,進一步提升軟件戰(zhàn)備就緒度。 3)敏捷能力。在軟件生產(chǎn)交付和迭代升級過程中,利用自動化流程敏捷地減少人為的失誤和干擾。通過一系列工具、腳本和環(huán)境,編排組建軟件生產(chǎn)流水線;通過高度自動化的單元測試、功能測試、集成測試和安全測試,消除軟件在交付時存在的缺陷;通過持續(xù)測試與監(jiān)控運營,評估軟件運行過程中人員、平臺與流程的合理性和有效性,加快軟件的迭代升級。 5 結(jié)束語 本文深入分析了美軍軟件工廠的發(fā)展現(xiàn)狀和關(guān)鍵技術(shù)。首先,介紹了軟件工廠的概念內(nèi)涵以及美軍軟件工廠的發(fā)展歷程,揭示了它在軍事領(lǐng)域的重要作用,通過對其使用模式和參考架構(gòu)進行分析,探究其對于實現(xiàn)高效、靈活的軟件開發(fā)至關(guān)重要的作用;其次,從基礎(chǔ)設(shè)施即代碼技術(shù)、云原生應(yīng)用開發(fā)技術(shù)和數(shù)字孿生技術(shù)等方面對軍用軟件工廠的關(guān)鍵技術(shù)開展詳細分析。這些技術(shù)的應(yīng)用對于提高軟件質(zhì)量和縮短開發(fā)周期具有顯著影響;最后,總結(jié)了軍用軟件工廠的發(fā)展趨勢和啟示,旨在為未來我軍軟件工廠的建設(shè)提供寶貴的參考和指導(dǎo),增強我軍在軟件領(lǐng)域的競爭力和戰(zhàn)略優(yōu)勢。 相關(guān)文獻推薦:
|
|