然后可能跟在座的大多数都是同行然后今天我只要给大家介绍一下我们部门针对interIPO所做的几种解决方案软件解决方案然后今天介绍的有四部分一部分就是说简单的介绍一下interIPO产品界然后接着是会介绍一下我们部门在利用interIPO做了一个存储方面的解决方案还有接下来就是一个基于容器镜像的一个卸载的一个加速的解决方案最后呢就是大家也提到了前面几位老师也讲过服务网格方面的东西然后其实服务网格也可以放在IPO里面进行卸载所以最后也是一个针对服务网格在IPO里面卸载的一个解决方案的介绍那么这个前一步我刚才讲了第一部分其实是对interIPO产品线的一个介绍这个不是今天介绍的重点并且大家可能对IPO也有所了解所以我可能过得稍微快一点IPO是inter的一个称呼叫做InfoStructure Processing Unit 是吧然后大家可能知道其他我们有商叫做DPO 是吧data processing unit其实可能指的是同一个东西然后现在业界里面各种CSP也好或者我们互联网公司对IPO的探索也都是如火如荼并且由最开始比较简单的这种最开始的IPO的形态叫smartnik就是对网络的功能卸载然后逐渐的眼睛眼睛到对各种在以前在主机上的各种软件的component的卸载大家可以看到第一部分其实是最早的smartnik的形态是对网络的卸载可能就是说在vswitch上面把vswitch卸载到IPO里面紧接着就人做了对storage的卸载存储什么卸载存储卸载基本上就是说把存储的所有的子系统打包到IPO里面去对上层只提供一个譬如WhatsApp iO或者是MIME的一个非常简单的写口最可用了然后接下来的因为在网络和存储过程中它的路径难免会有一些压缩解压缩 下面的功能所以这一部分功能也会被卸载到IPO里面因为如果不卸载下来的话它会绕回CPU再去做这个事情就很难办这路径很难看 是吧所以第三个部分大家可以看到已经把存储把压缩解压缩以及加密这套东西写在IPO里面去然后第四部分是把我们叫做infrastructure就是cloudinfrastructure譬如以前的iSEL或者是communities这些有些部分功能以及对hiveweiser的一些功能都放在IPO里面用户所能看到的就是一个纯粹的Baramat Metals然后里面的这些CPU只是这些CPUmemory以及这些资源都是给用户跑它的business的逻辑的真正的CSP或者互联网所控制的这部分控制层 控制层都在IPO里面这是现在目前眼睛的第四阶段然后有一个微人讲一下intel的微人IPO可能是将来依购计算的一个核心大家都知道依购计算现在也比较火热然后从以前的CPU为中心到现在的GPU或者SPO 各种加斯卡都这个计算量现在都很大然后将来如果是说从整个集群考虑你这些东西主机上的资源要和这个storage和外部的这些其他的网络资源进行互通进行交互那么IPO是整个这个链路的中心所以IPO可能是将来计算的一个最核心的一个组件然后这个是我们intel的产品线从2021年大家先看底下先看下面这块从2021年最初的产品这是基于IPG的产品IPG加上这样的一个这样地的一个call在里面叫做Big Spring Canyon所以大家从秘密看这叫Cannian的大峡谷类型的都是基于IPG的然后这个叫Mount的就是山的山的都是ASICASIC型态的2022年我们就就出了两种型态一个就是Orc Spring这种大峡谷型态的还是基于IPG的然后ASIC叫Mount Invest这是我们各一个国际的一个著名的厂商一起合作做的一个产品大家可能就是有关注这方面的可能也都知道然后这个是我们将要发布的这两个产品一个是Haus Spring Canyon和Mount Morgan这个产品先有的这两个产品是总体是200G的一个贷款然后20即将发布的2023年2024年这个产品是400G贷款接着我们产品线还会继续这两个形态的产品线都会继续然后上面的话其实基于IPO我们其实构建了一个比较完整的生态基于IPDK的生态IPDK是个我接下来会简单地介绍一下其实IPDK是这一套软件生态的核心然后里面其实有PFO、SPDK、DPDK这个大家可能图标放得比较小这是Intel Open IPG Stack就是相当于是用这个东西可以把你的逻辑直接烧到这些大小股系列的IPG里面去大家如果有什么问题的话可以随时打断我问然后这个是一个具体的一个比较就是我们刚才讲的2021年发布的这两个产品它的这个比较这是2021年发布Bake Spring Canyon它其实是最主要的是这个2025的一个带宽就是两个炮的然后每炮的这是25G的一个带宽然后这个Oxpring就是即将发布的这个产品是两个炮的然后每炮的100G带宽整理上是200G带宽然后那个这个灵活程度呢其实是这个Oxpring其实在灵活程度方面会有很大的提升因为它支持了这个Intel的OpenFS就前面讲到这个Open FPGA Stack这个东西所以它是构建了自己生态然后那个这个Bake Spring Canyon这个其实是需要有一部分这个地质开发的然后其实在国内有很多家公司包括那个云厂商然后还有一些互联公司也都采用了这个以它为蓝本采用了一些做了一些这个后续的这个开发反应也不太关心抱歉就是这样这是那个AC的那个形态的Mount Amounts的一个架构大家可以看到里面最主要的就是说里面有这个网络的席载RDMA和这个蓝都有然后这个也有生主的席载MME再也有然后这个刚才讲的Gurrito是吧这种加解密的或者是这个压缩压缩的也都在里面这个其实是跟那个某一个头部厂商国内头部厂商一起联合开发的他们有需求然后去Intel找到Intel我们去跟他一起去合作做了这个东西IPDK大家我估计做IPO的可能都有所了解我在这儿简单提一下吧其实是一个开源项目然后也不仅仅有Intel A架在里面然后他继续IPDK其实IPDK它的就是玩法或者它的备有方法是基于Recipe的就是说你要指定你的Target的好在什么地方Target的可能是这个它支持多种Target的不仅仅IPOTarget的可以跑在CPU上面可以跑在Switch上面然后你指定你需要哪些功能譬如说你要What's your networkWhat's your storage然后指定你的Target的它就能备有的出一个可以跑在这个目标Target的那个东西当然你也支持你在里面做一些二次的内嵌的开发是这样这个跟我刚才讲的差不多吧这些就省略掉我是把时间重点放在后面这一页其实就是我刚才讲的就是说IPDK的一个使用场景或者方法就是这个Recipe现在支持这几种然后Target的有这么多Target有这么多然后基于这些东西可以备有的出一个目标的一个可执行的一个东西然后大家可以这个重点注意一下这个Connected is offload这个接下来会用到这个东西就是说可以把KBS的一些功能offload到IPO里面去我后续再讲那个susmesh的时候会提到这个事情然后接下来讲这个我刚才提到了三个三种解决方案是我们这个整个部门基本上是三个团队在做这个事情我在这三个解决方案里面都有所设列多所投入但是投入的程度不一样所以大家有什么问题欢迎大家这个直接提出问题我这个如果细节上我这个引贸的不是很多我会找到相关的负责同事给大家解答这个IPO对这个storage的一些卸载那个左边这个图就是传统的就是说没有IPO大家在这个物理机或者训练机里面怎么用这个remote storage是吧就是通过这个网络接口走到这个可以是一个IPO的阵列可以是iSCSI也可以是SIF是吧 都这么用那么如果有IPO是个什么样的形态这中间这个框框是IPOIPO分成两部分一部分叫iocomplex这部分可以是IPGA做的ACAC做的这部分叫cocomplex这里面其实就是一个大家理解成一个轻量级的小主机在里面里面有这样D的一个CPU然后相应的memory在里面然后这个IPO里面这个cocomplexiocomplex其实对对主机色展现出的是一些就是通用的接口这里面适应的是wattlblock的接口其实可以是MME的接口也可以是别的接口然后这个这些接口都是通过srlv或者slv通过VF相上展示这里面画的有VFpf这个可能比较这个舞蹈比较confusing其实pf主要是关立测主要是VF相上投传这个网络的成组的一个能力然后呢这个主机测可以是一台训练机可以是一个container它可以直接用到这个wattlblock或者是MME的设备这个block设备然后它使用的时候这个l可能就从这个VF接进来进到这个lcomplex但是你如果你后面接的是一个譬如你srlv或者srlv设备这边来的是一个wattlblock的这个语意这个语意要转换转换怎么办的现在这个这部分功能没有做到这个lcomplex里面都是在这个cocomplex里面就是这里面投了spdk你把这个这块的wattlblock的语意需要转换成对应的你的target的语意这部分做到转换转换之后还要通过这块网卡这也是个网卡发出去发出去之后从这个网卡走到这个目标的remote storage这是一个最直观的一个玩法最直观的玩法但是大家一眼就看出这个玩法有什么问题就是这个路径很长到这绕了一下这里面还做了一些一定的计算然后基于这个其实我们没有基于这个直观天网做产品我们其实后续我接下来几个slides会讲基于这个最直观的想法我们做了一个优化看看怎么针对SIF做一个比较轻量级然后效率比较高的一个解决方案这个就是如果把刚才那个图具体到如果我们连接到的是一个SIF的cluster应该做什么东西呢就是这块的话如果是可以向上展示的这个wattlblock的一个设备或者是可以是个MME这个没有关系但是呢你在sdpdk里面就是靠complex里面的话你需要做这个rbd把这个wattlblock这个语譯转捧成rbd语譯然后这里面还要通过librbdcluster去连到这个sif的cluster真正连到sifcluster这个这个计算量就很高这个地方所以这里面需要对这个CPU资源或者members的人要求很高并且呢这个有这个协议的转捧譬如说这个sif可能基于这个tcp的需要从这个这部分这个tcp的加速或者是rados那个加速的话可以放到这个可以用电去硬件去加速可以用电加速但是这个东西现在还没有做然后为了解决上述我们提到的问题我先介绍一个背景的一个项目就是sif里面有个叫sifgetaway的项目这是设计在做的项目它什么意思呢就这个东西中间这个矿头是sifgetaway这sifgetaway活生生的分成两部分四类成两部分前端就是一个mme的target它是把mmetarget的语譯转捧成rbd语譯然后后面对接一个sifcluster所以它的功能是什么大家看着就是说你在这个ipo测或者host主机测你看到的对方是一个mmeof的一个target事实上它是一个sif机群这个sifgetaway这个项目就是做这个事情的中间这个矿头就是做这个事情有了这个项目是吧ipo测或者主机测你所做的功能就很简单譬如说回到上面这张图其实我在这面的话其实我这个就是一个可以是个mme的设备训练出来一个mme的设备然后到这面的话其实我只是需要这个把mme这个这些语譯的话直接follow的给给这个sifgetaway就可以了这面的话其实可以就是不处理或者是做一些少量处理这样对这个资源消耗就比较少在路径这个ipo里面就比较快一点是吧就是如果搭建了这个sifgetaway相当于是我们把那个翻译的功能放到的这个sifgetawaygetaway里面来了那这样有什么问题有优势我刚才讲到优势但是有什么问题呢就是说这个sifgetaway是需要硬件的它是一个单独的server或者是一个机群相当于是你的计算不在这里面你放在这儿了然后这个需要有两条走了两条这个latest也可能比较长然后在这个项目存在对我们来说是一个我一定启发的一定启发的所以我们接下来做了这是那个社区里面有人做了一个性能的一个比较是这个人做的IBM的一个同事他在社区里做的一个比较就是大家可以看到红色的这个这个柱是这个没有IPO不 没有getaway没有getaway这个东西没有getaway正常使用通过Libre,RBD,Client然后直接连sif or serversifcluster这么一个soup的然后那个这个紫色这个条是那个有getaway的就是刚才的getaway的那个有两条的这个soup的然后这个标志是arm其实这什么它是用arm设备来模拟了IPO其实就是这个就是最开始的这个相当于我们理解相当于这个这个场景这个场景它的soup的然后这个是那个紫色内图紫色内状的珠妆图做表示的然后红色珠妆图表示的是原生的原生的这个soup的大家看到肯定是原生最好是吧原生最好getaway这个也不错但是比原生的差一点但是如果你把这个东西放到IPO里面实现就这个东西它标志arm它是用arm base device然后这个就差很多是吧差很多所以就是这种这个性能比较就说明了不能这么做不能像那个就是很直观的那种想法那么做那怎么做呢其实我们这是我们的一个一个解决方案就是相当于把sifgetaway简化了打散了把sifgetaway的功能就是分成每一小部分都放在这个在这个sif集群的每一个OSD设备的节点上面都放了一个sifgetaway的一个功能这部分我们尽量惊艳让它这个不占用太多这个这个计算资源所以怎么惊艳的就是大家可以看到这个sifgetaway里面它是有doga namespace的MME的这个doga subsystem的MME subsystem这个M这是个N就是两个表示它是doga的然后的后面这是doga这个RBD的image这是SYZ 是吧doga但是我们为了这个设计上简单然后预算上简单我们其实就是说在这种设计里面我们只支持一个一个MME的一个subsystem然后一个RBD image就相当于是你在前段IPO你多个主意看到了其实就是一个MME OE的一块存住设备就一个存住设备然后它对应的后部端是一个RBD的一个image当然这个RBD image就是会分目在很多的OSD设备上面然后这种使用场景是什么前面其实是多个host的每个IPO可能就是每个IPO是接待一个自己的一个host上面去然后这host上面会建立很多Wortel device或者是虚拟的MME device那么这些Wortel device或者是MMEWortel block device或者MME device它的数据是分布在这些OSD设备上面去那么就是譬如说有一块盘它的数据有一部分在这一部分在这那么你的IPO过来你怎么找到这是吧怎么找到它的具体是在哪一个设备上面去如果这东西写死了就是每次都访问某一个这个OSD node这有几个问题一个就是说如果大家都写死了这个不肯连活这个node可能是一个single point failure是吧就是一个单接点故障的一个东西可能是一个瓶颈然后你每次都找它它上面只有你一部分数据其他部分数据在别的阶段上面去这边还有一个远程的一个访问这个latency会比较高所以我们里面做了一个叫hint table的一个东西相当于是通过塞布基询跟IPO做了一个握手告诉你你的某些IPO某些LBA的RangeLogical Block Address的Range在哪一个OSD设备上面去也就是说你要访问哪一个接电所以如果你就是主机车发过来一个Io请求然后给一个LBA的Range然后IPO需要知道IPO LBA的Range对应到哪一个Port上面去哪个接点上面去譬如说这个LBA Range是在这它需要就直接去这儿做一个请求然后直接访问这个当接电的Local的device这样的话这个速度就比就说你随机去找一个接电然后可能是访问的一个远程的接电要浅很多所以这里面其实主要的工作就是在怎么样去生成这个叫我们叫做hint table然后怎么样处理就说你这一面下部接电有变化就是加了一个接电减了一个接电这hint table可能会变化怎么做update这些工作在里面所以这就是基本上大家可以看到这就是我们做的一个secure out一个IPO storage solution其实目前就是这个样子长成这个样子然后这是它的一些优缺点就是说主要是说这个省了那个省了中间的sef gateway你一跳如果你达sef gateway它会有那一跳然后有additional的应点资源的去求你需要搭一台sef或几台sef来做sef gateway这种价格里面是没有的然后它也会支持说本级电的local的数据的访问这么一个情况然后为什么说它是一个secure out一个storage呢指的是说这种价格的话可能后续可能不只是接sef可能接别的解决方案也都可以接下来是上面讲到的是那个我们对存儲方面的一些探索一个解决方案这个就是说在kinder image的一个offloading的一个方案然后它的主要的场景是在funkshan service就是函数计算或者我们现在叫sourace的一个场景下面然后里面最主要的一个问题就是能启动他也知道能启动指的是你一个一个函数调用过来但是你的容器还没有启起来是吧 要当上写一个这要能启动然后在里面的话其实能启动其实分了很多部分譬如说你要启就是从kinder deal开始讲你要启same或者是same完了之后要譬如说你的函数是基于micro vm是吧 基于虚拟化的你需要起着虚拟机然后同时你要准备这个kinder image这kinder image是什么样的就是有些家的这个函数计算是说我把函数传上去然后就自动生成了一个譬如说你是一个node.js的一个函数用node.js run time然后它可能就是说基于node.js一个basic image给你直接把函数打包然后生成出一个一个你专为你的函数的生成的这么一个这么一个kinder image当然有些家的实现方式就是说动态注入就是我先给你起了一个node.js一个运行环境然后在第二步我再把这个函数注入进去当然这几种方式都随意到一个问题就是说怎么样快速的把这个kinder的node.js给组织出来然后这个事情的话其实是我们做了一个就是在IPO里面的一个探索然后这个东西是我们那个其他同事已经在那个SDCR storage的一个conference上面已经202年已经讲过并且我们申请了相关的专利主要对这张图奖吧对这张图奖上部分上部分是这个主机测主机测现在我们正常来说正常的如果没有IPO这个offload的路径的话正常的主机测是这么做的譬如说你的kinder的这个可以用runc正常的这个runc的kinder也可以基于这个vm的kinder这里面用那卡塔来施以然后就是说你启示动sham之后会靠到runc那么需要把那个你的rootfsrunc的rootfs或者是这个卡塔里面需要的那个卡塔里面其实也是个runc它也跑到runc需要把那个里面kinder rootfsrootfs给组织出来然后这个rootfs其实相当于是你要铺这个如果这个image没在当前级点上面你要去repo里面把它铺下来是吧铺下来之后需要解压缩然后这个目前那些image都是分层的把每层的解压缩然后如果是基于overlyfs的你需要通过overlyfs把它们给压缩成一个一个目录或者一个什么可见的实体或者一个block device呈现给kinder run time就是runc或者是这个vm然后冒着上去然后里面kinder产生之行基本上这过程但这过程呢我发现是完全可以放在这个ipu里面做的放在ipu怎么做呢比如说kinder run time这块kinder d这块需要有一个沟通软件比如说kinder d说我告诉你ipu说我收到了一个kinder的这个启动请求然后你来帮我组织这个组织这个routefs那么这个ipu里面收到这个service收到这个请求就会去这个kinder image registry去铺这个image假如是local如果没有cache的话就去铺这铺我们讲的就是完全没有cache的情况就是铺这里面为什么写了两个registry呢就是这个真刻画的场景就是说我刚才讲的那个代码动态注入的那个场景比如说你有一个node.js的一个base的image这里面只是个node.js的run time然后你代码放在这这个需要把这两个image铺下来然后放到这个不同的开始里面去然后就根据这两个image去叠加生成一个真正的这个routefs然后呢我们这个ipu里面可以把这个功能放进来最后呢这个生成routefs可以通过这个blogdevice的形式可以向上展示比如说可以是一个mme的一个展示书是一个对主一侧看到的是个mme的一个blog设备或者是一个wildblog设备都可以都可以所以你runc里面可能就是我需要把一个设备然后展示出来然后mount上来然后告诉你你的routefs路径在什么地方你就直接上这个路径上去用就行了然后这个针对虚拟花的情况下可以就是告诉你你的routefs就在这个设备上面你自己mount上来然后到里面去看就行了然后这个就是相当于是这个就是把这肯定的image的准备这个这个事件呢就放到这个这个任务呢放到ipu里面去upload的然后一个就是说这部分为什么说有价值呢就是说它的对performance高有哪几方面一方面是它是有一定的并行化的因素在里面譬如说可以就是candler这个时候不去做这个事情是吧把cpu放出来它可以做别的事情可以准备那个启动same或者准备其他的一些资源就是有一定并行化的工作在里面另外一方面就是这个东西可以去用asic实现用应件去实现这个专用应件可能有比较快一点因为这个ipu里面对这个story的设备啊支持的现在已经很多了很多了所以这里面很多对于bdow的处理都是附用的都是附用的所以这个东西就是说可能是在这个新有的这个对story值的这个处理的这个电路上面呢加一些附加值就可以了所以这个用专用电路去处理这个事情可能会比较快一点这是我们觉得它加速的一个一个解释吧然后另外的话就是前面大家想到两位老师都讲到susmassusmas这个东西现在都在主机上面然后我们其实也尝试了对这个susmas对ipu的一个overload然后这个我觉得大家都很清楚是吧左边是个setcar模式setcar模式然后其实这些setcar完全是可以去跑在ipu里面然后呢我们ipu对每一个就在cei里面做手脚就是cei你的泡的new business container的流量通过cei把这个流量导到这个ipu里面的这个setcar里面去然后这个其他的逻辑可能就不动就是说这些寻职啊然后这些这些操作可能不动然后有一些这个硬件的加速在里面就基本上想法就这样想法就这样然后从另外一个角度来看就是这个意思就是每个ipu对应一个不同的host是吧我们其实现在的这个生产就是一个host上面有一个ipu那么这个同host这些这些这些application怎么访呢其实这个可以用到这个ebpf或者bypasstpipebypass都可以就是甚至不进ipu但是这个夸host的这个东西一般我们会通过cei把它这个写在到ipu里面去通过ipu去就是录入到别的这个另外host上面app上面就给过去然后这里面的话其实也就是说ipu因为它现在网络存储加解密功能都有了都很完备所以很多东西都是复用的用了硬件的复用了硬件的能力然后这个是就是针对k8s怎么做这个事情针对k8s怎么做这是一个原理图原理图最开始我们对于sysmas写在这个事情做了一个原理上的分析比如说k8s我们分成了两部分一个是k8s的这个control play针对这个这是针对那个用户的tenant的一个可见的一个逻辑上的一个k8s的control play然后接下来的话就针对这个CSV场景或者是我们互联网公司与应用商他自己infosrouter这块也有一个这个针对iPU的这个场景里面它其实是对iPU资源的资源管理对iPU资源管理然后这个这个k8s的这个control play是对主机的资源管理然后比如说你的一个用户你发了一个一个压抹文件是吧然后然后k8s的这个control play发现你需要给你一个set card给你一个sysmas set card然后这个东西就这个它会给你生成一个iPU的一个压抹文件然后输入到这个infosrouter这部分k8s control play然后k8s control play它需要跟这个infosrouter这个k8s control play需要跟这个k8s control play它俩进行协调协调目的为什么是什么呢就是说把这个iPU的以贸易的和你的host的它俩对齐是吧它要放在一个一台积极上面去就是iPU查到这个host上面去你不能说你你的tent最后你泡的落在一台host你iPU在另外一台host上面的iPU里面这是不对的所以这边其实也是起到一个调度的作用它俩就要铁通调度然后把泡的放在这host上面去然后你的set card放在这个host查到这块iPU卡里面去这么一个逻辑是这样的然后真运这前面讲的是个原理图然后针对针对e-stealvmode的这个情况其实我们是做了一些工作的就是譬如这个在e-steal里面用了这个三个组件可能就是没有有些是基于e-steal的生态里面做的然后有一些是做到e-steal里面去了然后这一部分p4-coupon-netice这个东西就是我在前面让大家在这样IPDK的时候大家注意到是有个coupon-neticeoffload的那个东西就是这个东西它为什么叫p4-coupon-netice就相当于有些convict然后就是p4-coupon-netice然后这个e-mode这一面的话我们没有写成setcar模式也就是说这里面可以是setcar也可以是那个安本的那种就是整个单接点整个节点有一个一个p4-coupon-netice的一个模式所以都可以都可以支持然后这就是我们的这个一个前面的图的解释吧就是我们用了哪些东西然后需要干哪些组件基本上我要讲的这个三个项目就这么多然后看看大家有没有什么问题那么现在可以交流一下就是看看大家诶各位那个看看各位就是有没有就是厂商上有没有这种类似的需求然后我们可以做一下进步的合作问一个不太专业的问题就是刚刚我看你那个你们有IPO和DPO对吧啊它俩在这个就是就是付出这些服务的过程中有什么区别吗您大点声我有点没听清这个是DPO和IPO在就是付出我们刚刚说的这些服务中它们有什么区别你说这些服务是吧啊对这些东西都是我们基于IntelIPO做的开发的一些solution当然DPO上面也能做但是我不太清楚有商有没有做这个事情但是我们是那个Intel的这个就是云软件部门我们已经做了一个工作在IntelIPO上面就是相当于说有些是那个已经production ready了有些是那个至少poc已经出来了这么一个状态所以如果大家是有这方面的需求的话可以就是接下来我们可以对接一下就是看看能不能用到你们的那个场景里面去就是这个意思但是有商的话可能会就是针对他们的DPO产品的话可能会它也会有类似我觉得就是这个idea可能是相通的吧但实现上可能是不一样肯定是不一样所以需要每个厂商有每个厂商自己的solution就是这样的ok那我让他问一下就是我不知道就是这个IPO在那个mount offload过程中需要考虑这种catch的移植性之类的问题catch移植性是吧对你是说CPU开始移植性是吗对对就类似这种明白明白就是其实那个IPO本身它对主机色呈现出来是一个PCIe device所以如果是你的iO的就是PCIe device有一种方式就是说通过ddiointel的ddio直接把它的数据去放到这个l3catch上面去l3catch会留一部分开始位然后叫ddio就是相当于你的存储的设备可以直接不通过memory直接把你的数据开始上面去但是开始移植性已经被这个平台的这些硬件所保证了OK就是说开始移植性就完全不会硬件进行对对对是硬件来做的事情软件不需要考虑对对对除非是说你要说是就是数据软件数据的那些开始譬如我在IPO里面做了一些数据的开始这个掉电是吧怎么办这个东西肯定是要从软件角度来考虑但是硬件的开始包括你像那个CPU的开始然后那些包括CPU跟那个外设的也打交道的东西都已经硬件去保证这个事情OK好谢谢没问题大家有什么问题大家还有什么问题吗那也不是很专业就是您想说这些解释两个一个是刚才您说那个IPGA那块就是那块是解决什么问题再一个刚才您提到就是说以后可能有些问题就用ASICASIC不就是板卡那些吗那有时候可能我这词可能不专业是说一些它不会用一些操作系统来去解决掉用或者你这个container往里边这些管理上可能会用硬件去解决这种东西关于IPGA和ASIC这个东西对对对是这样稍等我放到内容这个产品上我给大家更多解决一下其实我们Internet部两个产品部门做的事情IPGA我们是收购了一个一个IPGA厂商大家都知道是那个部门这个部门做的然后这是我们原作与网卡部门的另外一个部门做的ASIC产品它是其实两个产品现在是两个不同部门两个估计会去做的事情所以IPGA这块的话他们因为收购那家厂商的话它对IPGA这面有很大的技术积累然后它是做了一个基于IPGA的IPO它最开始做的基于IPGA的smartnik相当于是它有一些固化的功能在里面但是你要是可以做一部分定制化你可以去稍微一些IPGA逻辑在里面然后实现你的自己逻辑这是IPGA的基于IPGA的IPO的一个常处比如我们刚才讲的我们其实做内搜索有很多地方固定下来这部分逻辑不想再变了就可以做成IPGA的logic放到里面去可以做然后这个是另外一部门门他们就做的ASIC的解决方案其实这两个产品件它是有沟通的就是IPGA它的好处在什么它可以改 是吧可以改但是如果有些逻辑大家发现很成熟了不改了 不想改了就可以转换成ASICASIC成本低然后速度会快一点可以转换成ASIC放在里面比如我们刚才讲的那几个俗路审可以是最开始的情况下它可以通过IPGA的following硬件的形式就放在IPGA的卡里面去但是如果一旦成熟了几年之后发现没有太多bug如果有bug的话IPGA很好修我再给你一个再给你一个AMG你烧进去就可以了剩下就可以了但是如果ASIC可能就要换板子了所以如果沉淀好了之后就可以变成ASIC的方式去在里面这是两个产品件之间的这些关系回答您刚才的问题了吗第二个问题您能再重复一下问题大了修处就是容计管理的对刚才你说可能会用到ASIC有时候可能会让我我们传统的那种管理方式就是那张图一张体的就是K8S内部对K8S内部可能会用ASIC来去管理对这块你提到一个ASIC这部分就相当于是这部分功能是我现在讲到这部分功能就是我们在开发过程中第一步首先是用CPU这里面的CPU做的就是我前面讲到IPO里面是两部分一个是IO COMPLEX一个是CALL COMPLEX所以我们开发基本上分两步研发过程中基本分两步一部分就是说先把你的功能用CPU实现就放在这个CALL上面去做然后一旦就是POC成功了然后验证性能性能上通过了就去做这个比较严谨的测试如果测试没有问题或者是就可以把这部分逻辑去做IPGA或者ASIC的一个加速在里面因为这个是一个硬件的成本也就是说对就是譬如你这里面比如说管理上那个对因为我会认为是不是就是说管理上可能不像是传统文化上面有一个OS然后上面再加一些别的软件这个就是主机色其实没有变主机色其实还是OS你看都是那个肯定的RUN TIME在里面但是如果是肯定的RUN TIME要配合IPO做一些事情因为它那个像什么Dalker我不是这种容器行业我是一开发人它像那种Dalker然后那个K8s它这种它也算一个小的操作性对它会跟那FGA去结合对我这里面讲的就是说Dalker其实现在Dalker后面也用到肯定的DDalker后面对接也是肯定的D就是肯定的D相当于肯定的RUN TIME在这里面就是要我如果你要用IPO解解方案的话你需要有这个我们这个紫色的部分就是Client的端相当于这个Client端要跟IPO进行交互这边Service端其实以前的肯定的Image的组织然后入台白字生产都是肯定的D自己做的它就不需要跟别人交互但是你一旦把这个东西offload到IPO里面去你就需要跟IPO进行交互所以肯定的D需要改加了这个Client跟IPO进行通信告诉你说你需要给我准备一个什么东西准备好了告诉我这个相当于K8s或者是肯定的这些DalkerRUNTIME可能对IPO需要做一些适配但是整体的大部分的逻辑还都是在主机色K8s里面完成的只是说有一些硬件上有优势的东西我们可以做或者说是另外一个IPO一个时间场景就是说把这整个的infrastructure的东西去放到IPO这样的话对隔离上或者安全上有好处比如说现在有些安全漏洞从容器投椅出来或者从vm里面然后攻击主机测的软件但是这样主机测如果你主机测跑的是你的infrastructure的一些软件跑在主机测它很可能攻击到你的K8s上面去攻击到你的s层面上面去但如果你这些东西都跑到IPO里面在天生硬件上隔离这个攻击层面就变得很小了这么一个优势感谢张老师的精彩分享谢谢大家如果有什么问题的话可以先下找我来了解一下