前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >IPDK:可编程基础设施时代的开源开发框架(附PPT下载)

IPDK:可编程基础设施时代的开源开发框架(附PPT下载)

作者头像
SDNLAB
发布2022-04-29 11:12:34
1.8K0
发布2022-04-29 11:12:34
举报
文章被收录于专栏:SDNLABSDNLAB

DPU/IPU正在构建强大的可编程基础设施,其市场的火热催生出了一个新的开源项目OPI(Open Programmable Infrastructure,开放可编程基础设施)。OPI主张“Unlocking Your Programmable Future”,旨在为基于DPU/IPU等可编程硬件承载的软件开发框架培育一个由社区驱动的开放生态。2022年3月,首届OPI Event行业会议在线举行,OPI的子项目IPDK(Infrastructure Programmer Development Kit,基础设施程序员开发工具包)成为了会议亮点之一。

IPDK是一个开源的、与厂商无关的驱动程序和API框架,可管理由CPU、IPU、DPU或交换机构建的基础设施。DPU/IPU应该是下一个十年的可编程重要硬件载体,IPDK能否成为DPU/IPU的通用软件平台呢?

DPU/IPU软件生态

DPU/IPU持续爆火,引得越来越多的玩家相继入局,除英伟达、英特尔和AMD等国外厂商,阿里、腾讯、锐捷、浪潮、芯启源、星云智联等本土厂商也持续发力。

但目前市场上DPU/IPU软件生态非常复杂,存在框架多、接口杂、开发难度高等问题。对最终用户和供应商来说,需要一个统一的开放API来支持业务应用开发和基础设施管理。

IPDK

IPDK应运而生,它屏蔽了底层硬件的差异,可以支持任何定义了相关接口类型的设备,并给上层应用提供一致性的访问接口。IPDK将管理基础设施的所有功能进行抽象封装,形成了“接口三明治”(如下图)。“三明治”底层对接SDK驱动程序、编译器后端等,顶部定义了一组RPC接口以支撑不同的应用场景。

IPDK在Linux中运行,使用SPDK、DPDK和P4等成熟的开源工具,实现网络虚拟化、存储虚拟化、工作负载调配、信任根和平台中的卸载功能。IPDK为提高性能、优化资源和确保基础设施的安全提供了一个通用平台。另外,IPDK可以抽象出硬件的压缩和加密功能,以及底层的存储加速。

IPDK标准接口

IPDK包括两大开放接口,一种是Infrastructure Application Interface(基础设施应用接口),另一种是Target Abstraction Interface (TAI)(目标设备抽象接口),这个概念有点像SDN里的北向接口与南向接口。

基础设施应用接口

基础设施应用接口基于以下两个设计原则:

  • 基于标准:根据基础设施应用程序使用的现有标准进行开发设计
  • 基于RPC:应用程序可以运行在本地、远程或两者结合

基础设施应用接口也可以被认为是DPU/IPU容器的北向接口,代表IPDK中支持的不同RPC接口,其中包括:

  • P4Runtime : 用于可编程网络的数据平面
  • OpenConfig :用于配置物理端口、虚拟设备、QoS和IPsec等
  • Redfish / REST API : 用于基础设施设备生命周期和平台管理
  • SPDK Storage Protocol : 用于软件定义存储的RPC接口
  • Managed Kubernetes : 用于控制Kubernetes基础设施组件的RPC接口
  • Envoy xDS : 用于配置Envoy的RPC接口

基础设施应用接口的示例实现如下图所示:

目标设备抽象接口

目标设备抽象接口 (TAI) 是为基础设施硬件设备定义的一个抽象模型,基础设施应用程序可以通过TAI管理调度设备资源。

目标抽象接口基于以下三个设计原则:

  • 基于标准:根据可编程目标的现有标准进行开发设计
  • 基于驱动程序和库组件:基础设施中的应用程序与 TAI 的库组件连接,以对控制平面进行编程。在计算实例和基础设施中的应用程序都使用设备驱动程序进行数据平面操作,例如移动数据包或存储数据。
  • 基于功能:根据功能接口进行开发设计,这样应用程序可以在部署目标之前预先查询目标以了解其功能。

目标设备抽象接口由以下部分组成:

  • 虚拟设备:虚拟设备使用 PCI 热插拔与计算实例交互
  • 生命周期控制:控制平面接口用于管理运行基础设施设备的更新、监控、重置和恢复。
  • 加速器控制:用于加速器的控制平面接口,供基础设施应用程序使用。

IPDK应用场景

IPDK主要的应用场景包括:

1. IaaS:实现跨虚拟机、容器和裸机的虚拟网络、存储和加密技术等;

IaaS场景下的网络虚拟化

IaaS场景下的存储虚拟化

IaaS场景下的主机虚拟化

2. PaaS:实现容器网络、代理服务等;

PaaS场景下的CSI & CNI

PaaS场景下的Calico Running on IPU

PaaS场景下的Envoy on IPU

3. Inline Acceleration:实现防火墙、IDS、网络遥测、5G/无线基础设施、AI/ML等。

IPDK与DOCA

从前文我们也可以看出,IPDK与DOCA非常相似。

DOCA(Data Center Infrastructure-on-a-Chip Architecture)是英伟达专为BlueField DPU打造的一个高度可编程的SDK开发平台工具,为开发者提供简单开发接口,程序员可以利用 API、库和示例代码来创建和加速应用程序,从而丰富DPU的应用开发生态。英伟达的专家将DOCA类比为数据中心服务器领域的CUDA。

IPDK与DOCA相比,其独特之处在于它是一个面向DPU/IPU 等硬件进行抽象封装的公共开发套件。由于一致的抽象性,它可以在任何硬件上运行,除英特尔的IPU外,还包括英特尔 Xeon服务器及其他厂商的DPU。例如,Marvell展示了他们在其Octeon DPU上运行的IPDK。但目前IPDK的生态建设还处于起步阶段,而DOCA在市场上已经有一定的用户量。

展  望

未来IPDK项目能否顺利发展,业界人士认为还要考虑到以下几点:

  1. 从技术角度,后续IPDK接口封装是否全面?能否实现向后兼容?
  2. 项目的发展还要需求牵引,未来会不会出现一个杀手级应用真正引爆IPDK?
  3. 目前类似软件堆栈百家争鸣,如何打动和吸引更多厂家参与到IPDK?如何平衡多方的利益?

IPDK项目的愿景十分宏大,但其最终能否成为像OpenStack、Kubernetes那样的明星开源项目,甚至成为DPU/IPU的通用软件平台,还需多方参与,共同推动,期待IPDK项目早日走向成熟。

附录

OPI Event会议资料:

https://ipdk.io/news/2022/03/18/OPI-Event/

IPDK项目地址:https://ipdk.io/

SDNLAB公众号后台回复【OPI】获取大会PPT

参考链接

1. IPU/DPU 软件生态建设

https://mp.weixin.qq.com/s/9B-vdHk_l_ApYzorKPLLUA

2. 英特尔软件定义网络和边缘的蓝宝书

https://mp.weixin.qq.com/s/gKio6G4QpTnh50aur1Fl3A

3.https://ipdk.io/documentation/IPDK-io%20-%20Recipes.pdf

为了大家能够进一步探索论证开源的创新模式、协作模式、商业模式,我们将在5月24-26日举办2022网络开源技术生态线上峰会, “足不出户”尽享网络开源技术大咖带来的精彩分享。

【活动专栏】

【转载须知】

若转载文章为原创文章,可在相应文章下或公众号后台留言;其他非转载类文章须在文首以不小于14号字体标明转载自SDNLAB

【投稿】

欢迎SDN、NFV、边缘计算、SD-WAN、智能网卡、TSN、5G 网络切片等网络方向的观点类、新闻类、技术类稿件。

联系人:kk__wu(微信号)

投稿邮箱:pub@sdnlab.com

详情请参考:SDNLAB原创文章奖励计划

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-04-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SDNLAB 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档