BIOS作为唤醒计算系统的第一句话,是计算机最底层的、最直接的硬件设置和控制程序。在当前快速变化的客户IT架构需求面前,BIOS开发也变得复杂多样。传统开发模式,产品与BIOS一一对应,一款产品有20多个定制需求,就要开发20多个BIOS,每个BIOS都有上万个代码文件,严重影响产品开发周期。为此,浪潮构建了业内首款BIOS统一镜像,将产品开发测试时间缩短55%,效率提升了122%。
随着物联网、云计算、大数据、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模式提供强有力的支撑。
从0到1挑战重重,“三把利剑”横空出世
事非经过不知难,在实现BIOS开发统一镜像的过程中,浪潮遇到了三大挑战:首先是如何动态适配不同的服务器产品;其次是如何降低产品的定制化时间;第三是如何提高产品的开发迭代速度。寻找解决方案的过程本就漫长而又艰难,由于目前业界鲜有全线产品适配的BIOS软件架构先例,更让人一度怀疑这一目标的合理性。尽管关关难过,但浪潮研发团队并没有放弃,经过不断地探索,他们成功打造出硬件平台自适应框架、可扩展配置接口、BIOS特性扩展包的“三把利剑”,构建出新一代BIOS软件架构,大大缩短了产品的BIOS开放测试周期,能够快速满足客户大规模的定制化产品需求。
利剑之一:硬件平台自适应框架
针对第一个挑战:如何动态适配不同的服务器产品。传统服务器的BIOS开发模式为镜像与产品一一对应,只支持对应产品的硬件配置,无法实现适配于其它产品。浪潮发现,要实现统一镜像,就需要建立一套硬件平台自适应框架,首先要将BIOS相关的硬件设计进一步标准化,形成统一的硬件约束,然后在BIOS镜像预设一段产品配置模块区域,用于装载全线产品的产品配置包,产品配置包中包含各个与硬件相关的配置参数,同时在预先制定的硬件约束下使各个产品拥有唯一识别码,在启动过程中BIOS动态选择产品配置模块中与之匹配的产品配置包加载产品的硬件配置参数,可以做到适配不同的服务器产品,使BIOS软件版本与硬件型号产品完全脱耦,从而提升BIOS软件产品的适配性。硬件平台自适应框架的建立彻底告别了传统的针对每个产品单独编译发布版本的方式,大大提高了开发效率。
利剑之二:可扩展配置接口
针对第二个挑战:如何降低产品的定制化时间。客户的定制化需求,特别是互联网厂商对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业务模式。