杨阳:SDN编程自动化:抽象、工具与实现

大家好。我本来我应该是4点40开始,现在已经是5点45。已经很晚了,首先非常高兴有这样一个机会能够跟大家交流一下关于我的团队,关于SDN编程自动化的交流,非常高兴有这样一个机会,同时我发现今天开始已经有7个小时了。所以来说可能大家都很累了。首先感谢大家,还能够在这么累的情况下还能坚持到现在,同时我的talk可能和其他的talk不一样,因为我来自学术界。首先给两个,我觉得对于这次来说整体talk,我觉得有两点让我领会比较深。第一点就是丹,他提到一点,现在可能更加倾向往高层走。我今天要谈的关于编程自动化是偏向于高层。

第二点,SDN或者是开放网络比较重要的一点是什么呢?是社区,我要讲的东西还没有真正的开源,所以还没有真正的社区,确实我有一个小小的私有社区,所有参与我今天要讲的一些工具的一些核心人员,大家如果看到会发现这里面其实很多特别多的咱们中国的年轻人。当然一开始启动的时候是我的一个美国学生,包括美国合作者,后来所有的东西,都会来自于中国大陆的年轻人,而且其实有很多人就在座,有一个刚刚工作第一年的一个年轻教师,还有三个研究生,还有一个大三的学生,我们这个团队非常年轻,非常好的一点,前面看到,很多咱们中国基金在中国落地。现在看到越来越多的中国人开始加入到核心技术的开发,我觉得这一点本身是非常好的事情。这个团队,刚才介绍一下大的宏观的一些架构,我们把它跳掉。我们这个团队主要做的是什么呢?做两件事情,第一要引入最最简单的一种抽象,有了抽象之后,我们要实现这个抽象,大概说两点,为什么要做这两件事情,这还是很重要的,第一点,为什么要做exrtemely呢?所有的学生都要记住这两句话,基于模块化的抽象,恐怕是解题之道,这样的话非常重要,所以要引入抽象,这是第一点,为什么要引入抽象。

第三点,为什么要引入非常有用的工具。这一点,咱们中国人老说的话,叫工欲善其事必先利其器,当你做事情的时候,你应该是要给别人猎枪,而不是猎物,因为猎物总有使用掉的一天。一开始这样可以的,但是从长远上来说我们应该提供的是猎枪,提供这样的更好的工具,有了更好的工具他们才能真正发挥SDN的优势,这是整个的出发点,为什么做这件事情。

特别宏观的说法,下面让我来具体一点,到底我们正在做哪些抽象,以及我们有哪些好的工具,希望跟大家共享。为了提到这个抽象,现在让我先说一点当前已有的抽象,这个是当前opendaylight。这个是它的核心抽象,有了这个核心抽象之后,你去问opendaylight,如果来说最核心的是什么?就是我提供的工具,工具是什么呢?你有一个描述的数据,来解析这些数据的东西,大家来看这个数据的东西,更像猎物还是更像猎枪,按整个分类来说还是在猎物的这一边来看,这是第二点大的系统,这个系统非常的好,它也有一些非常有意思的Idea。它比较有意思的一点,分为两类,一类是你要什么,所以这样,我问大家一个问题,这样来说,你要什么,和你怎么要,你要什么来说,是猎物还是猎枪?恐怕还是猎物。意思是什么呢?当前两个系统来说,总体倾向于他们提供的主要是猎物,而不是倾向于提供猎枪,如果你看整个大的架构来看是什么呢?我这两天听到很多的应用,我一直很好奇,我问你们需要几天的时间,我们需要几天,为什么这么简单的东西需要这么大的程序,为什么要这么大的工作量,这么复杂?主要一点,我们现在有了很多猎物的东西了,其实可以搜集数据。可以配置各种猎物,右边来说你有网络的设备这很好。总体来说我们的猎枪在哪里呢?真正的猎枪,现在还没有比较好的猎枪,我们现在主要做的东西提供这样一个工具,来给大家,有这样的一个好处。

当我提到这儿,让我来引入,如果我要有这个编程的最好的工具,我只要给大家提供的抽象是什么,我们团队考虑了很久很久这个问题,到底我们给用户的抽象是什么?SDN提供了一个抽象,到底是 什么?换句话来说,把这个问题深入的档次更高一些,咱们做网络的人和其他做计算机的人到底有什么区别?咱们这个行业到底特殊在哪里?想来想去,恐怕没有。我们其实其实就是计算机行业中间的一员,如果从这个角度考虑问题,我们抽象是什么呢?我们怎么样给用户最最简单的抽象呢?很简单,我们认为网络就是一个大的服务器,什么服务器呢?外部服务器,什么样的服务器都可以。这个抽象是什么呢?网络就是服务器,是外部服务器或者是whatever。这是我们的抽象,我们这么想,越简化越好,有了这样的一个抽象之后,用户变成怎么做呢?写这个程序,来控制你的整个网络。

有了这个之后,你告诉用户,从逻辑上来说,每一个请求都会发给你的控制器,你可以处理它。简单不简单?有了这个之后,这太简单了,这个控制器可以做所有的事情,可惜这个控制器有一件事情做不到,他没法做物理转移,他从一点进来,他从另外一点进去,你可以想象,从理论上来说所有的东西都是在控制器去运算,但是有一件事情他做不到,他必须把他的包从一个点走到另外一个点去,这一点必须网络上来做这事情,相当于我们物理上的限制,怎么做呢?网络控制做什么呢?这个包到底怎么从原点到他的终点去,非常简单。有了这个之后,给大家举一个简单的例子,这个就是一个程序,如果假设是这样的一个模型来说,每一个包过来都会发给控制器,这个控制器非常的简单。如果是要22个端口来说,你就从最便宜的到最贵的链路上去找。把他恢复回去。这个就应该是这个样子,为什么这么多复杂的SDN,要写的那么复杂,你完全可以写成这个样子,这个是更加复杂的程序。这个程序怎么做呢?

第一行,你要做MAC Location,我受的程序来说,应该是到什么地步呢?大一的学生刚出来就可以编程程序。为什么大家讨论这么多的程序,咱不说是6个月,或者一年,SDN变成几周或者几天,这个程序应该是几个小时几分钟写出来的,我们可不可以做到这样一件事情,这是我们想做到的,达到的目标。当我提到这一点之后,大家来看,这样的一种编程模型,这样来控制,这样来做,他确实是非常非常的简单,非常非常灵活。你会碰到一个问题,对于你的控制器来说,他不工作。所有的包发给他,他要处理,这怎么办?这时候,咱们做网络的人,这么多年的贡献,对整个计算机行业的贡献在哪里呢?咱们其实就有一个贡献,我们学会了怎么样去做,所有的计算有两类表达式,一类表达式是用计算用指令,一类是存储,小孩子刚刚学算术不知道怎么办,三乘5就是3+3等于6,后来不行,太慢,怎么办?那就背99表,3乘以3等于9。咱们做的是什么?就是缓存,就是加速,就是做缓存和加速。

那我们这个团队主要做的是什么?把缓存和加速完全自动化。这是我们这团队做的事情,非常非常简单,用户来说,你写的程序和南向接口完全没有关系,所有的缓存加速我们来做,这是我们做的事情。这个主意大概是两年,三年前提出来的,提出来之后,所有的反应,我给大家先说我们制造的第一个工具,每天比如说你运行商你写了这样一个程序,这个程序随便写,一是用户方便,第二我们是缓存哪些流表,自动的,完全自动的,大家比较抽象来说,他整个流程是什么呢?一开始来了一个包,你通过一个表,查询来说你来了三个包,我有三个存储,把你的结果缓存起来,我建立一个东西,叫做树,有了树之后,我就可以自动的生成所有的流表数据平面,完全自动。真的可能吗?特别简单的例子,这是一个程序,中间完全和南向接口无关。你来了第一个包,来了以后,一步一步的运行,端口22,我运行我的程序,我通过你的库,我就知道什么东西,我给你存下来,我把你的接口给你存下来了,这时候我存在我的树中间了,你又来了第二个包,也很简单,第二个包运行,这样我就有了一个树,我就真的生成我的流表,怎么生成?很简单,这是我的树,怎么声称流表,所谓的南向加速都是一个一个的东西,怎么生成流表呢?我把所有的加快程序变成一个树,太简单了,每个流表说白了,不是你要做一个查询呢,不是查询一个条件吗,我就找到条件。当然有些复杂性,因为所有的,你运行的时候,你要有比较简单的一些个底下的南向接口,你中间没有逻辑的分,怎么办呢?我也可以生成,整个来说这个包怎么生成呢?一步,两步三步生成。这个可以说是一个大力气,或者说是非常好的工具。

用户怎么写程序呢,就是刚才说到的最最抽象的,最最简单的模型,来了之后,我们有这样的一个编译工具,帮你生成流表,有了这个流表之后,你自动我们帮你把流表的内容加进去,因为底层的计算模型不完整,所以有些必须在时时来做,我们就有了第三个工具,自动的帮你加上来了,有了这个之后,所有的都有很多的数据,你应该怎么做呢?我们开发了一个新的工具,我们都知道,可以帮你重新运行,有了这个东西。为什么网络的人要特殊化?我们完完全全就是计算机行业的一部分,我们可以完完全全的把它合在一起,最好的网络技术帮我们做东西,你可以加新的模块,可以做网络状态抽象加进去,都是模块。我们可以自动来运行,这个是另外一个新的Tools,总结一下。我们现在有了哪些更好的新的工具?和变化无关的模型,因为所谓编排,编程会变得容易多的很多。第二我们提供了这样的一个很好的工具,可以自动,你任何一个程序过来,我来给你做程序分析,相当于是一个编译体,你编译出来你的流表是什么。Runtime来帮你生成这样的东西,也是一个非常好的工具。

最后在数据,增加function store。因为时间所限,所以我讲的比较快,如果大家感兴趣,我们最近录制了非常有意思的dome,编程我们非常简单,也在寻求来开发和部署我们这套系统,如果大家有兴趣可以跟我的邮件地址联系。好,我就说这么多,谢谢大家!


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。 本站中所有编译类文章仅用于学习和交流目的,编译工作遵照 CC 协议,如果有侵犯到您权益的地方,请及时联系我们。
  • 本文链接https://www.sdnlab.com/17027.html
分享到:
相关文章
条评论

登录后才可以评论

SDNLAB君 发表于16-06-02
0