第三届未来网络发展大会

网络全球 决胜未来

当前位置:嘉宾致词> > 分论坛十

以网络为中心看待未来云计算的发展

编辑: 共浏览:14064次

首先非常感谢主持人的介绍,也感谢大会组委会的邀请。

今天下面坐了很多是我的老师,之前在邬老师的参与下做了很多的项目,还有张老师给我做的评审,也遇到了很多之前的朋友,来自学术圈和工业圈的。今天很高兴给大家介绍一下我的工作。

我的题目主要是想从王浪的角度来看一看下一代的计算怎么塞做。我们很多的发展是应用驱动,上面承载的这些智能其实是在应用的层面上,我们把它叫做通过计算来实现的,网络是它的基础设施。

在做之前,我们先看看现在手上有什么工具,要做什么样的事情。之前的两个报告是从战略的角度上做一个什么事情,王主任和刚才北大陈老师团队的报告,我们是在这个上面具体打一场什么样的战斗,我下面要讲的事情是说我们有什么样的工具帮助我们打争这场仗。

计算主要是靠处理器,其实我们发现在2005年的时候,这个处理器已经到了这个瓶颈,这个频率已经不再上升了,已经到了一个平台期,后面其实很多的工作是在做多核,但是多核现在核的数目也已经到瓶颈了,单点计算的能力已经到物理极限了。我们发现数据并没有停止增加,还在不停的增加,包括现在所有新的一些应用其实都在围绕数据做文章。

这个时候就出现一个问题,我们到底是是叫(英文),我把我单点的计算能力不断的增加,(英文)是说这一点做不了了,需要扩展出来,这个其实就像什么呢?我们人类的发展历史也是一样的,人类历史创造了很多的创新或者说创造了很多的成就是靠大家合作做起来的,在我们的计算里面也需要(英文)的方式来做。这种概念在互联网的企业里面,包括中国和美国的互联网企业里面在这个上面做了非常多的实践。

还有一个趋势是什么呢?我们把以前做很多的优化,包括互联网发展的初期来讲,KPI决定了一切,早期我们提升吞吐率,所以很多工作都在吞吐率上面做工作,早期是为了减少丢包减少吞吐率。现在最大的挑战是失言(音),特别是云计算黎曼都是在降失言(音),我们把它移到边缘去。

还有一个趋势是什么呢?传统讲分布式计算,包括上学的时候学分布式计算,基本上跟我们学计算机的操作系统是一样的,是要做尽可能的节耦合,把不同的工作能够很灵活的部署上去,但是一旦部署上去以后,再早的云计算1.0,计算的节点的能力是固定的。到了现在的发展,看到了(英文),在这种情况下需要把节点变成一个动态化的环境,其实跟多模态需要变化是一样的。

这里面就讲现在这个时代是从CPU CENTRIC到NETWORK CENTRIC。

到后面云计算的场景里面,其实已经变到了骑兵作战,数据一边在搬家的时候一边在走。我记得当时本科的时候,那个时候也是学习比较勤奋,觉得在食堂里面每天坐下来吃饭花的时间很长,所以我就买了吃的边走边做,那个时候可能决定了我今天要做这个工作,设计的时候也是网络边传边去计算。

我们说后面的场景里面不光是把网络的东西放上去做,后面我们会发现不光是网络,很多计算的能力都会放上去,这个时候比喻成一个战车。同时这里面云像轻骑兵,我把部分的轻量级的一酸计算能力放到用户侧去。

基于这些趋势我们在做一些什么工作?大概介绍一下Xilinx的研究院。Xilinx的研究院在全球有四个地方,有两个是在美国,一个在硅谷,公司的总部,另外一个在科伦拉多,以前在爱尔兰有一个公司,这个超过有十年的时间。我是17年的时候有一个机会帮助Xilinx在新加坡建立了第四个公司。我们的地位是做一些三年,甚至三年以上的技术,帮助把这些技术进到产品线,或者一些客户客户也好,互联网公司也好,一些研究做一些系统。

这里面也介绍一下我们做了跟网络相关的工作。从上面这个地方黑色部分是转到产品线的一些工作,这部分的工作大部分是在我去Xilinx做研究院之前做的,下面的部分是我们正在做的和已经在往产品线转移的工作,是我去了之后在做的工作。现在Xilinx超过60%的研究其实现在都移到了新加坡。

我后面大概挑一些内容做一些介绍。

首先我介绍一下在P4SDNet上面的工作。从我自己的经历来讲,02、03年的时候开始接触在数据图谱上面做一些开发,那个时候直接进行编程,那个时候我自己的感觉,我就想把自己变成一个电子,中间转一圈,到底哪里堵住了,开发的周期非常长。对于开发者的要求也是非常非常高,到了今天的时候,我们发现其实在这里面我们增加了很多层次,原来是从硬件直接到上面的开发,甚至之前在X86上面的开发都是直接接触设备,需要你有很强的底层知识。再往前如果有些现场的同事,有在英特尔NP上面开发过的经验可能也很清楚,当时的指令也是非常小的,需要对硬件上面优化再优化。现在在里面有很多的编程框架,一层一层的放进去,然后使你的开发过程相对容易很多,甚至很多传统式软件的工程师也可以做这个事情。

这里面有两个趋势或者说有两种做法,很多人可能也知道有HYS这样的工具,是面临通用的场景去做的,这里面会做一些针对你特定的应用场景会有相应的开发的一套流程。

Xilinx其实是全球第一个支持了P4 SDNet,他是我现在的老板,他已经在这个产品线里面,包括学校,我知道在国内的很多学校,还有一些公司都在用这个工具来做相应的开发。

Runtime这个项目是一个全球的开源项目,之前也是从谷歌里面主导这个项目,在这里面Xilinx所有P4 SDNet都是在做原型的工作。它的目的可以很快速的实时的去进行网络配置。

下面讲一下智能网络相关的一些东西,包括大家现在听的很多的SMARTNIC。

其实我们都知道网络其实出来的这么多年里面,协议的变化是非常多的,一个层面上像刚才邬院士提的多模态里面主动去变,在整个发展过程当中我们其实是被动的在变,比如网络发展环境变化,网络带宽中间有一段时间是提速非常快的,我记得03年的时候我还在读博士,那个时候大家讲传统的DCP,高速的环境下很慢,我丢一个包立马5G了,这个时候我要做快的TCP。后来移动的互联网慢慢普及了,这个时候发现接入的质量并不太好,我可能会丢包,但这个丢包并不是因为网络的拥塞造成的,我的原单位减速,所以这个时候又对这个TCP进行进化。到现在数据中心的环境里面,大家发现我需要对我上层承载的应用,对网络协议进行优化,我们会发现各家的互联网公司自己都提出了新的方法,基本上都是在算法的具体上面做的工作。

我也很惊喜的看到,从前天开始,包括区别的C-COME(音)上面看到了框架性的工作,像谷歌他们提的之前的QUIC,还有CCP,这是端到端的协议。我们现在需要主动的去变,这个时候就需要有框架做这个事情。

首当其冲的或者最简单来做的起点也是微软,他们在网卡上面做了这个事情。网卡我给人给它做了一个分类,我分成四类,也可以叫做四代,一开始的网卡是个标准的网卡,后来包括从微软开始,把一些网络的功能卸载到网卡上,减少CPU的负载,包括OBS,还有一些加密的功能放上去,这个叫二类的网卡。到三类网卡的时候,把更多的功能卸载到网卡上,这个工作的思路其实是我们可以一直延续的,把不同的功能慢慢放下去,这是一种思路。但是我们提了一个四代的网卡是从另外一个角度来讲的,我们能不能在这个网卡上面做一个类似于引擎,上层开发的时候基于这样一个相对专用的引擎来进行开发。

这个就是我们刚才讲到第四类网卡什么样的概念,我们看图里面有几个绿色的部分,绿色部分包含了几个引擎,要放一些(英文)进去,这里面我们有测量,测量其实是很多网络控制的技术,我们要做拥塞控制,如果简化的模型来看,其实就是三步,第一步去探测网络的情况,探测不同的性能指标,丢包、失言(音),根据你搜集的情况计算需要对现在的网络进行怎么样的控制,第三步就是对网络进行控制,这个控制目前的手段主要是两个,一个手段是对我的发送窗口进行调整,第二个是对发送速率进行调整。用户只需要去控制这样三步就好了。

通过这样的工作之后,我们这个编程模型可能就变了,下面的黄色部分是智能网卡,绿色部分也是智能网卡,黄色部分是我们处理通路,黄色的部分是控制通路,这个模型我们如果突破(英文)也是可以有(英文),绿色的部分是可以用一个(英文),一些轻的通用处理器放在这里。我们中间又加了一层本地比较薄的控制层。右侧的上面可以有不同的应用上去,比如异常检测,比如访问的控制等等内容,这部分内容完全可以用JAVA,任何都可以,这只是基于我的接口,通过类似于GRPC,把消息封锁起来。这这是我到Xilinx之后跟互联网的公司聊,三类的网卡开发模式,比如这个网络部门的工程师来讲,他需要非常清楚说业务部门,上面跑应用的它的应用逻辑是什么样的,把这个逻辑写到网卡里面去。

下面讲一下还有在做的两个事情,从NIC,很容易想到Switch,编程的网络有两种理解,像新出的交换芯片,它讲(英文)的时候,它编程来编程去都是编程的网络协议。可不可以更拓展一步,是不是可以把计算的东西直接放到计算里面去做。

比方说现在在很多的处理里面,现在是个数据时代了,数据在不断的增加,kafka出了很多的框架,现在还是用服务器的方式来做的,一看这个图都不用看解释,我把数据放到Switch里面,这个事情完全就解决了。我们可不可以提出来做SmartSwitch来走。

我们可以在Switch上面先插一个IPC的计算卡或者其他的计算卡,把部分的数据放到上面去,原来的Switch里面已经有了一些匹配表,把相应的数据传上去。

还可以怎么做呢?还可以通过本身的服务连上来,数据怎么样可以更多一点,带宽可能跟大。这里面处理模型也可以有很多的选择,很多的做法,一个把所有的数据全(英文)过去,其实我只需要对它的包的部分进行处理,所以还可以存在Switch外接的存储里面,这个时候可以很好的解决Switch(英文)和IPC中间接口的带宽不匹配问题。

再往下走的一步,大家都在做(英文),就是片商的多处理系统,把网络的引擎等等这些东西都集成到一起去,我们在一个芯片里面可以集成到64G的DBR放上去,这个技术可以拓展到现在讲的Smart Switch,我们可以在Switch上面堆叠出来,把我需要的HBM放上去,这个是下一步还可以做的一个工作。

下来我可能讲一下除了这个SmartNIC之外,我们还可以做SmartEdge。我们讲了很多设想,在云数据中心里面卸载这个应用卸载那个应用,但是理想是美好的,我在数据中心里面,特别是共云里面要做很多的用户的隔离,有很多的安全措施的隔离,网络已经变得很重了,其实很少的资源可以让你再来做别的事情。比如在Edge的情况下有个很天然很好的位置,比如在5G的基站等等里面可以去补,但是现在还没有做好,做好了将来是一个很好的场景。在5G的场景里面,工程师不像数据中心的工程师,主要是做软件编程的,他熟悉IPC,熟悉嵌入式的编程,我也是一颗单芯片,IPC部分加上RM部分就可以放到这个里面做轻量级的应用。比如CDN的位置,也可以认为它其实是一个Edge应用,只是它没有计算,只是Edge的存储。如果放入计算的功能,它其实就是一个SmartEdge,这个时候不需要做复杂的应用访问的控制,其实追求的是一个大流量,大带宽,加上一个低时延,目前来看有充足的资源,完全可以替换成一颗IBUC的芯片,工具连也好,现有的可编程的引擎也好,来做这样的工作。

再提一个工作,现在从原来传统的WEB service的方式变成了service或者serverless。我们可以从我设计结构的本身减少它的复杂度,留给运维的包袱,这个时候就提出了micro service,serverless是再往前一步了,通过service对这些功能进行调用,来实现完整的功能,但是并不知道这个功能到底是不是在我的本地还是在远程,但是用的时候都在和本地是一样。这个时候就比较适合去用这种包括IPC,包括CPU的单元来做,我对于满足一些特定应用的时候可以非常的合适,我的性能可以很高,开销可以很小。在这种场景下就非常适合。

我们现在在做的工作,就怎么样能够让我去调用远程的这些基于IPZ或者IPSOC的方式使用起来就跟我在本地一样,把这个接口和你原来做软件的时候做的一样。

还有一块也是非常重要的区块链,从技术本身来讲它其实是有它很多的创新性和优势在里面的。以前我给大家做区块链都是从比特币开始来看这个事,我看区块链看到的是什么呢?看到的是P2P网络。我们去了之后对这个做了第一个工作是什么呢?我们也是对比特币做了一个加速,但是加速不单独做计算加速,对它的网络传输进行加速。

它其实分成三部分,在大家右手的部分包括了所有的区块,所有的交易记录。这些收到的验证结果会把这个区块链分发到所有的(英文)里面。在分发任务或者收集任务是在(英文)里面来做的,它的Mining的工作是在远端或者Mining factory里面做的,这个网络原来就是用的最简单的TVT的方式,这里面加了一个Mining Proxy,在这个地方对它的网络进行了网络协议的自定义,这里面我们会看到这边有个简单的结构,对网络的实验部分提升了一千倍,这是非常恐怖的一个数据,虽然绝对的时间可能在网络上占了计算的时间上并不大,在网络本身上有很大的空间来做。

在私有链上面也是一样的,有很多的空间可以做。我们现在主要是在Hyperledger上面做工作,在它的共时算法上面有瓶颈,在数据库上面有瓶颈,这些又回到刚才讲的,就是要把这个数据的计算放在数据途中去做这个事。这是我们现在在做的对区块链上面怎么样来进行一些加速。

最后一页,现在在的所有事情满足这三个条件,也对应到多模态上面,所有的东西都是智能的互联,而且是需要能够在全球的范围内去部署,同时我们在这里面动态的变化相应多模态,和我们想的都是一样的,快速的部署,快速的去更新。