简介
更新时间:2025/1/7
在Gitcode上查看源码- openUBMC作为一款全栈智能管理软件底座,承载了智能运维、故障诊断、节能减排等服务器管理核心技术,具备为众多架构不同、形态各异的服务器产品提供集成化的产品管理能力。从产品集成角度出发,openUBMC有如下几大设计目标: 1. 支持开发者灵活扩展与定制:北向接口支持客户扩展和定制(Web、Redfish、IPMI);南向硬件管理支持通过配置方式快速接入新的硬件、板卡;组件应用支持低代码扩展APP、插件,快速实现差异化特性; 2. 支持开放独立的软件构建能力:产品开发者(整机厂商)、独立特性开发者(ISV)、社区个人开发者贡献组件构筑组件应用生态,支持多方共建和共享组件,支持组件应用和硬件配置库的灵活发布和极简的引用流程,同时拥有基于组件维度的快速裁剪能力。 3. 支持工具化的高效开发流程:全场景开发工具链支持,支持定制化、开发、编译、调试一体化运作,支持产品级仿真,降低开发者成本,提高开发效率。
灵活的扩展与定制
- openUBMC整体使用了全面的组件化架构,各组件统一组件构建模型,通过D-BUS定义共享资源接口规范,将接口与实现分离,面向开发系统,实现组件与组件之间的解耦。组件通过实现接口可以进行便捷的定制与资源访问,北向接口和南向硬件管理则通过配置化结构访问共享资源,实现快速接入与扩展。
开放独立的软件构建
- 在openUBMC的构建策略中引入了Conan包管理器,封装了常见的构建框架(如Cmake、Make、Autotools、Meson等,以及python脚本实现的自定义构建功能),对外提供统一的构建视角(构建、发布、下载等),提供Conan仓库存储构建脚本和制品。
- 开发者基于D-BUS灵活扩展自己的组件,并基于开源社区提供的组件进行组装,通过构建框架提供的统一配置文件灵活引用待发布组件,经过构建系统二次构建和产品验证,生成可以被openUBMC环境识别和部署的hpm产品包。
工具化的高效开发流程
- 组件化架构在享受高效解耦、灵活扩展等优越性的同时,也会面临环境部署、版本依赖等方面的压力。为此,openUBMC提供了一站式开发平台,提供统一工程工具、工程约束和最佳实践能力,对开发者提供统一的集成开发命令、统一的构建配置策略、一键式环境初始化等关键能力,极大降低产品开发成本。
- 此外openUBMC还向开发者提供了灵活定制的可视化配置工具,包含数据模型、接口扩展配置、硬件自描述模型等常用操作模块,同时支持对各模型的语法正确性、一致性检查、依赖治理等能力。产品仿真验证、多人协同配置等高级能力也在持续演进中。