概述
简介
在可编程场景下,DPAK(Data Processing & Acceleration Kit,数据处理加速套件)作为统一软件框架,与DPU卡配套使用,主要应用于公有云和私有云等环境。在云场景中,DPU通常作为计算节点(服务器)对外业务通信的主要通道,实现网络、存储等功能的加速与卸载。
FlexDA(Flexible Data Acceleration,灵活数据加速套件)是一种开放式的可编程软件架构,为开发者提供灵活的编程接口和工具链。通过模块化、互操作性和扩展性,支持网络功能的自定义扩展,例如实现自定义报文解析、流表管理和pipeline定制,从而提升数据加速任务的效率和适应性。该框架主要应用于云计算、分布式系统等场景,已解决传统架构在灵活性和集成能力方面的不足。
实现原理
FlexDA开放编程框架通过编程库和工具链,提供OVS(Open vSwitch,开放虚拟交换机)开放编程能力。
OVS开放编程支持外部开发者基于华为DPU卡的OVS业务进行扩展定制,外部开发者可以在OVS的match-actions机制上,实现自定义报文解析、自定义流表、流表key/action和自定义pipeline能力。
软件架构
FlexDA编程框架提供的开放编程库和工具链整体如图1所示。
编程库主要定义了FlexDA开放可编程的各种开放编程接口,按整体的业务设计,FlexDA开放编程库包括了L2和L3层接口。
- L1层开放:配置接口,不属于开放编程的范围。
- L2层开放:聚焦在对基础业务的开放上,针对FlexDA上的业务,开放业务层的编程接口,允许开发者通过实现Hook API和调用Lib API这些接口。开发者能够在基础业务的能力上进行一定程度的扩展,集成个性化的业务逻辑到基础业务能力上,实现对基础业务的扩展定制。
- L3层开放:聚焦在对FlexDA通用算力的开放上,通过提供面向一个业务领域的通用基础库,可以让开发者从零构建自有的业务能力。
应用场景
FlexDA编程框架通过发布开放编程库和开放编程工具链,支持FlexDA上的网络领域的业务开发,从版本化演进转变成生态化定制。通过改变FlexDA当前的产品发布模式,引入开发者共同在芯片上开发业务场景,充分利用芯片上的算力,实现CPU、DPU在生态业务上的多样算力融合,实现业务加速。
作为构建FlexDA开放编程生态的基础,FlexDA编程框架会基于L2层、L3层开放接口,逐步完善开放编程库;同时会基于FlexDA开放编程的开发全流程分析、完善开发工具链条,提升开发工具的友好性和易用性。另外,FlexDA开放编程在演进过程中,通过抽象FlexDA业务开放能力,逐步形成面向业务领域、独立于硬件信息的专属的开发语言DSL(Domain Specific Language,领域特定语言)。DSL语言让开发者不需要了解硬件架构、硬件设计原理,只需要描述业务逻辑本身,就可以完成可在芯片上高效运行的微码程序。
