第二届全球未来网络发展峰会

创新·引领·未来

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

基于大数据的智能SDN

编辑: 共浏览:798次

不好意思,因为赤道了,所以时间调整一下,我在这里跟大家分享一下阿里云在网络这边做的一些事情。大家看这个标题,首先是有两个关键词,一个关键词是大数据,一个关键词是智能网络。首先我们看后面什么是智能网络,其实我们也一直在想,我说实话我们也没有想明白,所以我在前面放一个大数据来形容一下这个题目,因为说到大数据可能很多人接触了很多,这两年互联网大家在淘宝上你今天喜欢一个U盘,过两天这个淘宝所有的U盘都给你显示出来了,所以我通过大数据介绍一下网络这一块儿。

首先我介绍一下阿里云网络,阿里云在全球已经建设了十八个点,我们已经接近200个云产品在部署,我们已经超过了100万的用户,我们的用户可以在阿里云上可以轻易的构建出他们自己的应用。所有的用户在我们给用户体检这些基础设施,下面依托着我们这一张遍布全球的网络基础设施,所以这个时候就给我们带来一个很大的挑战,这个网络怎么来提供一个服务,而保证这个业务的可持续性。

还有,我们除了提供这个网络作为一个基础设施存在之外,我们还提供了网络作为一个产品作为一个商品存在,今天你在云上刚才很多嘉宾也说到了有VPC可以创建自己的网络,但是你可以买我们的均衡买我们的VPN网关设备来搭建自己的应用。我这里列了一下我们的几类网络产品,我可以很自豪的说,今天公有云网络类的产品我们是最齐全的。

第一个我们可以定义云上的网络环境,就像我们以前在数据中心自己搭建一个应用的时候,首先我要想我的网络架构是什么样的,而今天在云上你可以轻易的搭出自己的网络架构,而不需要去理解那么多复杂的网络技术,还有你可以管理你的网络流量,我们有各种网关,还有很多流量型的产品,比如说流量包还有动向贷款。而且还可以构建混合云,我们有高速通道,我们有VPN网关和智能接入网关,最后你可以用我们的云企业网和全球加速构建一个遍布全球的网络。所以当网络作为一个基础设施是最根本存在的时候,当网络又成为一个产品存在的时候,这个时候网络的复杂度其实是大大的提升了。

但是站在我们的眼里,我们看这一张网络,我们是希望网络变的非常非常简单,因为今天那么多的创业公司在云上开始他的创业的时候,刚开始他可能就几个程序员来编写它业务的程序,他可能不会去请网络架构师,那么这些程序员对网络最基础的理解就是一个IP和网关,我之前说过我认为网络的用户体验最好的因为大部分的程序员只知道你的IP地址和网关就可以把这个网乱起来的,而不需要这个网络背后那么复杂的各种各样的架构和各种各样的陆游协议,太多了。但是事实上我们希望能够把网络做的更简单给到我们的用户,事实上最近几年网络的发展是什么样的?网络的发展实际上是变的越来越复杂了,尤其是SDN出来之后,名词穷出,SD-WAN、SDN控制器,月多的名词出现,这个时候如果我们对我们的用户说那么多网络概念,我相信他们一定是蒙了,要理解的东西太多了。那么我们看这些网络技术的发展,无外乎追求的更大的规模在一个云上的网络架构,就是在一个数据中心或者是云上,这些用户能不能轻易的搭建出几万台服务器的网络,而不需要去理解那么多的东西。另外一个是更高的速率,这两年的速率从10G、25G,再往下是50G、100G,还有一个是更低的延迟,还有越来越多的功能,是更轻易的让所有用户在这一层搭建出一个复杂的需求。

    刚才需要嘉宾也说到了,现在的业务越来越往公共云上搬迁的时候,那么对公共云来讲的网络实际上带来的挑战也是越来越大的,我们的租户已经达到了百万规模,我们的服务器也达到了百万级别,那么我们的虚拟机更是在千万这个级别,因为每一台服务器都虚拟出很多的虚拟机。这个时候大家想一想,这么庞大的规模,这一张网络的运营,是不是意味着我人数要随着这个规模线性的去增加?而这个挑战对我们来说是非常大的。网络面临着越来越大的挑战。

首先网络还是一个服务,这个服务是给用户提供一个最基础的连通性服务,当网络作为一个基础设施存在的时候,我们总会增加一些新的功能,我们总会去升级我们的网络操作系统,这个因为他总会有BUG,这个时候能不能对用户来说,可以不关心你下面的升级。第二个网络总会产生故障,我们经过统计,50%的故障是因为我们去做变更而引起的故障,这意味着什么?意味着这个网络你放这不去动他事实上是最好的,但是发生故障一定是不可避免的,如果发生故障的时候,如何快速精整的去定位这个故障,也是给我们提出了很大的挑战,尤其是在这么大规模的情况下。还有一点,这个网络越来越复杂,架构越来越复杂,规模越来越大的时候,故障总会出现,但是这个时候你要去分析故障,去找到故障的原因,可能会消耗到你非常多的时间,甚至有可能今天人的链路已经是不够了。所以我们今天会说故障逃逸、故障隔离,大家经常说这个,但是大家有没有想过隔离到哪儿去?逃到哪儿去?有没有办法让我逃的更好?

好的,我们来想一下我们以前是怎么运营这一张网络的,最早的时代我们是在网络设备上登录上去,串口,然后敲各种命令行,后来我们升级了,我们升级成了脚本、工具,甚至今天我们说的SDN控制器,在我看来这些还是解决自动化的问题,在解决人的效率问题。因为在现在这个状态下你要去处理人的任何问题,这个系统并不是闭环的,因为它需要人的参与,需要人这个上帝存在的系统,不是闭环就意味着效率不是最高的,就意味着你的时间跨度是拉的很长的。所以我们就在思考,今天有没有可能不需要人这个上帝的存在,而让这个系统能够自循环,自己形成反馈联络能够自己去工作。我们知道网络设备最终还是要去执行人的动作的,执行一系列的转发动作,各种表象的路径决策,所以控制是一定无法避免的。但是从另外一个角度来讲,我们这么多年说SDN是打开这张网络,但是打开的怎么样?如果打的太开了,意味着数据量太大了,因为几个纳秒我们就要转发一个数据包,但是一定程度上数据一定是越来越大,量越来越多,看到的信息越来越多,我们判断问题的效率才会越来越高。这就是为什么你今天去医院,那个医生只是问你发生什么事情了,然后不会告诉你为什么,然后就给你一个化验单,说你去验血吧,一个道路,一堆的参数我们也看不明白,只有医生可以看得明白。所以我们觉得网络也是这样的,我们需要更好的判断问题所在,去把它的数据打开然后进行分析,有了数据之后我们就可以分析出各种策略,我们会提供个动策略来反馈到这个控制里面去,我们可以根据呵夺的模型来判断这个到底发生了什么问题。

所以基于前面的思考,基于前面我们涉及碰到的很多问题,我们阿里云网络这边做了一个平台,这个平台叫齐天平台,这个名字就是叫齐天大圣,为什么叫大圣呢?是因为我们这个里面有一个机器人,这个机器人我们给它起了一个名字叫大圣,所以我们把这个平台叫齐天大圣。大家看这个左下角,这个里面是也控制器的,里面所有网元的设备,实际上我们是在尽可能的去打开它,去生成各种流的数据,当这些配置发生变化的时候是不是可以留下。然后在右边,我刚才说网络作为商品存在的时候,他会有他的BSS系统,用户可以修改它,用户把它当成一个商品存在的时候去改变一些它的架构的因素,这些数据我们同时两边生成这个数据放到我们的实时计算和离线计算系统里面去,离线计算是我们对历史数据的建模,我们会根据我们的需求去产生一个模型,然后实时的数据产生的时候,我们会跟这个模型进行匹配,就是说这个策略是不是到了,比如说今天这个地方是不是产生故障了。那么这两个系统整合起来就对应着我们的很多平台,我们的智能变更平台、智能监控平台、诊断平台、运营平台、调度平台,所有这些平台按照它自己原先设定的一个策略来产生,甚至是闭环调用到我们下面的控制系统来改变这样的网络行为。然后这个上面有流,我们会通过这些流来给其他系统的定位,因为其他的系统也想通过网络事件的产品改变他们的运行方式。这个是我们讲的机器人,这个机器人今天我们已经在内部对我们所有的售后工程师和所有其他的产品提供这个支持,所以以前是什么?以前他们都来问我们,一个电话或者是这个内部的聊天工具问我们,那么今天他们只需要找这个机器人,这个机器人就可以回答他一些基础的东西。

但是就像我刚才讲的,什么叫智能?实际上我认为能够理解的人的语言的最基础的是智能,对网络的智能是我们要禁止和他说我们所有网络的专业名词才是真正的智能,但是今天做得到吗?说实话做不到,所以我接下来的介绍的一些场景我认为还没有达到很智能,还是在自动化和智能之间的一个尝试,所以接下来我会介绍一下我们内部的一些应用场景。

首先是一个变更,我们变更的所有诉求就是两个,一个是不要影响用户,第二个就是不要产生故障。这个时候对于网络来说一个很尴尬的事情是什么?因为对于一些生产其他业务的系统的时候,他可以是根据租户来划分它的资源的,而网络天生是什么?网络天生承载着所有的租户,这个租户里面有超级大用户,有一些小用户,有一些流量很大,有一些流量很小的,这个时候我要对一些网络设备,我要对一些控制升级的时候,我怎么样能够对用户尽可能的无感呢?所以我们做了一件事情,就是对用户进行打标评分,用户实际的场景和实际产生的数据进行评分。第二个我会根据我们设备的实际,一定周期内的实际运行情况进行打分,站在设备的角度,一定是希望每天的凌晨,因为那个时候是业务最低峰,但是一个业务的最低峰意味着用户业务最低峰吗?其实不是,因为有的用户是为另外一个时区的用户提供服务的,对他来说可能是高峰期,那么这个时候对我们来说,一天24小时就没有低峰期了,这个时候就很尴尬了,所以我们做了一个事情就是我们把用户的打分和这个设备的打分在我们这个平台上去构建出来,然或我们对一些关键用户的数据流进行迁移,把虚拟机迁到另外一个地方,就是把它的流量迁到另外一组设备商去,然后在一定限度的情况下我们对这个网络设备进行变更。后面我们才会评分,这个评分是离线的,然后在对这个数据进行实时的做这个东西。最后我们的效果实际上是说我们在变更上面全部已经做到了无人职守,我们有百万规模的服务器。以前我们发一个版本可能要很痛苦的发半年左右,但是今天我最高的效率是一个星期,我可以把全网升级掉,这个就是我们能力的提升。

还有回到当你发生问题的时候不要等到用户来告诉你问题,所以另外我们做的一个做法就是把一些网络设备的流量的运行数据,尽可能的去把它采集出来,然后放到我们这个平台里面,放到我们平台里面有两个纬度,第一个纬度,数据存下来之后我会根据离线的计算来运行这个模型,我有了这个模型之后,当实际数据实时数据过来的时候,我就跟这个模型去匹配,我去判断,这个时候有没有问题。实际上在网络里面,如果你的高峰或者是你的流量数据PPS数据或者是一些其他纬度的数据,如果发生了骤变,骤然的升高或者是降低,那一定是发生问题了。虽然有可能不是故障问题,有可能是有的人是在测试,就是你内部系统在测试,但是它一定是有问题的。还有一个就是我们会对一台网络设备在他未发生时间点标出它运行时间的区间,如果这台设备的指标超出了这个区间,那么我们会认为它一定是有问题的,还有一个如果一个设备承载的业务,比如说我发布的一些VIP,如果批量的VIP发生数据的骤减,但是不是全量的。我们以前看一台网络设备今天大家衡量这个的带宽是不是降低20%,一般都是这个纬度,但是这个纬度是不够的,因为可能你是部分影响的用户,那么我们做了一个事情,部分影响的用户发生批量波动检测,我们也会认为是一个问题。通过这个我可以很自豪的说,我们用了一年多的时间,这个都是非常快的发现系统故障的。不知道大家有没有用过阿里云的资源,今天阿里云的稳定运行能力提升的已经非常多了,相对几年之前。

还有一个,当你发生故障的时候你一定是希望是定位故障,定位故障的时候在这个庞大的网络系统下,怎么去定位故障,怎么去收敛故障的区间和范围,这也是一个很大的挑战。我们做了一个类似于一个什么东西呢?我不知道大家有没有看过那个电影没有,我忘了名字了,就是假设你有一个能力,你像孙悟空上,如果什么地方有一个问题,你就拔一根汗毛变成数据让它全部向外冲,这个时候发生故障的节点一定冲不过去,这个时候我们就知道了,我们知道那个汇聚成的交换机出问题了,所以我们研发出了这样一套系统,在发生问题的时候我们所有的虚拟机就开始发文,就知道谁没有过来,谁堵在路上,所以这个可以很大的提升我们的效率来定位问题。

但是最后总会存在你定位不到,无法实时分析的这种故障,这个时候我们希望做的是尽快的逃逸,尽可能的减少对用户的损失是我们一直以来的追求,所以我们内部在故障处理流程里面永远的第一条金科玉律是什么?就是首先第一个不要定位问题,而是怎么逃逸问题,隔离掉问题,这个时候如果你定位出来了,如果你发现问题了,如果你看到一台设备出问题了,这个时候我前面就讲到了,你逃到哪儿去?如果你逃的不好你有可能发生雪崩效应,一台一台的压过去,不是没有发生过这样的故障,至少我个人就经历过好几次这样的故障,发生了雪崩效应,然后你需要很长时间才能恢复。所以这个时候你选择一个逃逸路径也是一个很大的挑战,所以这个也是需要一定的策略,我们会进行一个策略判断,我们会有一个系统。就是我这个平台上在不停的算每一台设备当时的负载,然后打标评分,这个时候当我们发现问题的时候,我们会进行一个选择,然后逃逸过去。

还有一个,我们今天可以去做用户纬度的画像,因为事实上是什么?你总归会碰到一些用户有突发的流量,突发的数据,但是这个还好,因为它太突然了,他有可能用户会说我提前告诉你一下,但是有一种场景是最容易忽略的,这个场景叫什么?一个用户原来流量并不高,慢慢的但是它很陡的涨上来,但是其实也是耗时的,比如说一周的时间,我们是最容易忽略这种用户的,这种用户对我们是一个最大的挑战,因为你不易察觉它。那么我们事实上会把用户所有的运营数据,刚才我讲了两个纬度,一个纬度是网元的纬度,我们提供的一些设备的运行指标。第二个纬度,当网络变成一个商品的时候,他虚拟的路由器,虚拟的网关,虚拟的VPN,这些虚拟的指标我们也全部采集下来,然后根据每个用户来算,今天这个用户会是什么样的情况,我们会进行预测,来提前做一些准备。

这个是我们做的东西,也就是分享一下,但是这里我在想,还是刚才的话题,什么样的网络叫智能网络,未来的智能网络是什么样的,就我个人而言,我认为还是说能理解智能语言,不需要我们去细节了解到那么多专业的基础知识的网络才是智能网络。并且未来我们一定是两个纬度看网络的,第一个纬度是给用户,这个纬度是这个网络越来越简单,比如说我举一个例子,今天新浪微博是阿里云上,新浪微博和阿里云建立了几百G带宽的混合云,然后新浪微博在我们阿里云上一个字网下面的虚拟机已经有一万多台,一万多台的一个字网里面今天在之前我们想想看在物理网络这个能不能做到?一个二层的广播问题就把我们搞似了,大二层有多大?这个是前几年一直在讨论的问题,没有办法做大,但是今天在云上就可以做大了,一个子网就够了,你可以在阿里云上自己构建一个全球的网络,分布好几个地域的网络,这个用户不需要动陆游协议,所有的问题我们都可以帮你解决掉,所以对于用户来讲这个网络一定要变的越来越简单。但是反过来,你虽然对用户简单了,事实上你的背后一定是越来越复杂了,越来越复杂之后,我们畅想未来的网络,实际上就是在资源的供应链、部署方面,我们希望能够做到更加的智能,就是随用户而动而变化。以前的网络是什么?以前的网络是你建好了就放在那里了,你也扩不了带宽,另外一个就是弹性,给用户的弹性,今天我刚才讲到如果一个用户说我业务突增突降,突增之前他会告诉你,但是大家有没有想过,一个用户可以不可以不来告诉你,他实际上所有的服务器流量跑起来的时候,这个时候你可以观测到这个行为,不需要用户告诉你就可以对他进行扩容,是不是对用户来说又变的简单了?这个网络是不是又变的更加智能了?还有一个就是网络发生问题的时候是不是不是仅仅你自己知道,你是可以告诉用户的,告诉用户两个虚拟机之间通信的时候,以前是告诉你用户两个虚拟机之间PING是通的,我们只能做到这个,我们有没有可能告诉他今天你的TP连接一部分是通的,一部分是断的,可能是你的一个端口挂了,其他端口都是好的,我们能做到吗?一定能做到,因为所有的数据包都是经过我们的,但是为什么我们以前做不到?因为如果说我们看到流这个级别,就意味着数据量太大了,但是这不应该是我们要为用户去做的吗?这不应该是我们这个网络未来发展的一个方向吗?

    所以我们的愿景是什么?我们的愿景是打造一个灵动、可信的智能云网络。所以这是我们的愿景,我们还没有实现,所以回过头来讲,我刚才讲的介绍的东西也真的只能是我们在现在这个阶段的分享。我也希望各位如果有什么好的想法也可以和我们来交流,我们非常欢迎我们圈内的人士进行交流,能够共同的给我们的用户提供一个智能的网络。

我的分享就到这里。谢谢大家。