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