隨著物聯網、云計算、大數據、AI技術的飛速發展,互聯網與傳統產業的融合越來越深入,“互聯網+”、“+互聯網”模式層出不窮,迸發出越來越大的價值。應用場景化、產品個性化成為主流,新的商業模式、新的軟件應用、新的管理工具不斷涌現,客戶需求越來越多樣化,客戶要求的響應速度也越來越快,“快”成了最基本和最重要的訴求。為了給客戶提供快捷、高效、精準的服務,提高客戶體驗,浪潮開創性地提出了JDM(聯合開發,Joint Design Manufacture)模式,JDM模式可以實現協同設計、敏捷開發、快速交付,將個性化定制與大批量生產有機結合。作為JDM模式的一個重要業務環節,服務器BIOS開發要能夠適應當前需求個性化、開發定制化、供應批量化的形勢,要在最短的時間內,以用戶可接受的成本約束,將用戶需要的產品開發出來。
開發效率提升1倍,浪潮BIOS開發化繁為簡
隨著客戶需求越來越多樣化,在面對大量的緊急需求時,BIOS開發和測試成為產品整體研發周期的重要瓶頸。傳統的服務器BIOS開發模式要求BIOS開發與產品型號一一對應,BIOS開發時間在整個產品的研發周期中占比很大。為提升效率,浪潮讓BIOS開發化繁為簡,實現了一套軟件適配全線的服務器、存儲產品,將BIOS開發時間縮短了55%,效率提升了122%。
在若干年前互聯網還未如此繁榮,服務器BIOS開發采用面向產品型號開發模式,每個機型產品對應一套BIOS軟件,有多少個產品就有多少套BIOS軟件,機型配置簡單,而且還未出現服務器產品的定制化需求,基于在BIOS廠商軟件包做硬件適配,并將老產品的功能移植到新產品上并做少量優化即可滿足產品需求,這種傳統的開發模式完全可以應對。
隨著互聯網的迅速發展,互聯網客戶的需求就出現了井噴現象,就拿AI云服務器NF5468M5來說,支持三個機型配置和十種以上GPU拓撲,另外還要兼容客戶定制的配置,在研發測試中出現各種GPU識別、資源支持、信息顯示等一系列問題,這時研發團隊加班加點緊急制定開發方案,單獨為這類多顆GPU配置制定了一套動態識別并進行動態分配資源的機制,最終解決了各種配置問題,同時該產品多達二十多個客戶定制,對應二十多個BIOS定制版本,每個版本需要不定期升級,而且時間上都是緊急任務,在很長一段時間內研發人員每天都在進行不同的定制化工作,修改、調試、測試、發布軟件版本。隨著浪潮JDM模式的提出,同時近幾年遇到越來越多的開發瓶頸,顯然,傳統開發模式已完全不能適應新形勢下的業務需求,必須探索一種新的BIOS開發模式。
在傳統服務器BIOS開發模式的基礎上,浪潮要化繁為簡就必須解決一個問題,用一套軟件及一套鏡像適配在全線服務器和存儲產品上,實現統一鏡像。而這就要改變BIOS軟件架構并以獨立軟件產品模式實施BIOS需求、設計、開發、測試、工程化、交付工作,實現固件歸一化。新一代的BIOS軟件架構的提出,就是要提供一種面向規范及接口的新型開發模式,這種模式可以靈活適配不同服務器產品,從而為JDM模式提供強有力的支撐。
圖1 統一鏡像應用
從0到1挑戰重重,“三把利劍”橫空出世
事非經過不知難,在實現BIOS開發統一鏡像的過程中,浪潮遇到了三大挑戰:首先是如何動態適配不同的服務器產品;其次是如何降低產品的定制化時間;第三是如何提高產品的開發迭代速度。尋找解決方案的過程本就漫長而又艱難,由于目前業界鮮有全線產品適配的BIOS軟件架構先例,更讓人一度懷疑這一目標的合理性。盡管關關難過,但浪潮研發團隊并沒有放棄,經過不斷地探索,他們成功打造出硬件平臺自適應框架、可擴展配置接口、BIOS特性擴展包的“三把利劍”,構建出新一代BIOS軟件架構,大大縮短了產品的BIOS開放測試周期,能夠快速滿足客戶大規模的定制化產品需求。
利劍之一:硬件平臺自適應框架
針對第一個挑戰:如何動態適配不同的服務器產品。傳統服務器的BIOS開發模式為鏡像與產品一一對應,只支持對應產品的硬件配置,無法實現適配于其它產品。浪潮發現,要實現統一鏡像,就需要建立一套硬件平臺自適應框架,首先要將BIOS相關的硬件設計進一步標準化,形成統一的硬件約束,然后在BIOS鏡像預設一段產品配置模塊區域,用于裝載全線產品的產品配置包,產品配置包中包含各個與硬件相關的配置參數,同時在預先制定的硬件約束下使各個產品擁有唯一識別碼,在啟動過程中BIOS動態選擇產品配置模塊中與之匹配的產品配置包加載產品的硬件配置參數,可以做到適配不同的服務器產品,使BIOS軟件版本與硬件型號產品完全脫耦,從而提升BIOS軟件產品的適配性。硬件平臺自適應框架的建立徹底告別了傳統的針對每個產品單獨編譯發布版本的方式,大大提高了開發效率。
圖2硬件平臺自適應示意圖
利劍之二:可擴展配置接口
針對第二個挑戰:如何降低產品的定制化時間。客戶的定制化需求,特別是互聯網廠商對BIOS菜單選項默認值設定有嚴格的要求,比如客戶1對內存可糾正錯誤上報是到達1000個即報錯,客戶2是出現2000個再報錯,客戶3是出現5000個再報錯。在這種情況下,一個通用版本的固定設置很難滿足所有客戶的需求,因此需要一個可擴展配置接口來滿足客戶定制化的需求。通過對BIOS鏡像劃分多個特定的區域,預留功能數據庫區域,用于存放各個功能的配置接口,隨著功能的增加,對應功能模塊也隨之增加,同時擴展功能數據庫的接口,配置接口面向配置區開放。產品定制通過定制化配置工具輸入定制需求,定制化配置區的特征值,在不需要進行軟件編譯的情況下進行靈活適配即可完成一鍵生成客戶定制版本,減少二次開發的工作量,提高BIOS軟件產品的交付速度。
圖3 可擴展配置接口
利劍之三:BIOS特性擴展包
針對第三頭“攔路虎”:如何提高產品的開發迭代速度。傳統面向產品型號的BIOS開發模式,功能開發與產品耦合較多,給不同平臺的功能移植帶來一定的工作量,必然影響開發效率,不同產品系列復用率難度較高。而在JDM模式下,浪潮一款新服務器的研發周期從1.5年壓縮到了9個月,當出現新產品爆發式增長的情況,這種開發模式無法在兼顧短周期響應的情況下保證開發質量。為此,浪潮研發團隊對接國內外客戶固件技術團隊,貼近客戶運維一線,充分理解客戶需求,在新一代BIOS軟件架構設計中,針對前期數代產品積累的功能特性和收集到的新功能需求,提煉成單獨的可擴展功能模塊,各個模塊形成擴展包脫離與硬件平臺的耦合,在不同產品系列可以復用,形成浪潮獨有的CBB模塊。一旦出現新的產品需求,可快速將已經固化的BIOS特性包移植到新平臺軟件包,僅做少量模塊嵌入調試和優化升級即可實現所需功能,既提升了BIOS軟件產品的迭代速度,又保證了開發的質量。
圖4 BIOS軟件結構
苦盡甘來:開發模式由面向產品型號到面向規范及接口的轉變
當前,新一代BIOS軟件架構正在應用于浪潮M6全線通用服務器產品的研發中,在開發階段,所有的功能開發僅需一次,完全不需要產品同步工作,保證了開發質量,大大提高開發效率,目前已形成36個浪潮獨立特性模塊,支持面向場景化一鍵定制性能功耗策略、智能故障診斷、固件安全、啟動功能定制等重要核心技術;在測試階段,每個迭代周期不同產品僅需對硬件配置的相關功能做重復測試,而這部分工作量僅占全功能測試的15%,其他通用功能通過在不同產品上做交叉測試,提高了測試效率;在生產階段,產品定制化通過定制化配置工具搭配鏡像輸出版本,即可兼容全線產品,提升了定制化版本發布效率。基于新一代BIOS軟件架構,浪潮一款服務器產品的BIOS研發及測試周期縮短了55%,效率提升了超過1倍。
相信在M6系列服務器產品推向市場時,將看到浪潮越來越多的基于新一代BIOS軟件架構的產品,對市場的多樣化需求,靈活地提供服務器BIOS深度定制,快速響應客戶需求,提高交付效率,有效支撐JDM業務模式。