30
京东网上商城
阿里云SDN、NFV技术揭秘
摘要:阿里云的网络产品,为海量的客户提供了私密、灵活、高效、可靠、安全的基础服务,在由云栖社区和阿里云网络团队联合主办的2017阿里云网络技术在线高峰论坛上,阿里云高级技术专家仙侠就为大家揭开了阿里云的网络产品背后技术架构,并且分享了阿里云网络团队对SDN和NFV相关技术的理解和实践。本文内容根据演讲嘉宾分享视频以及PPT整理而成。
公有云客户的需求:“既要”、“又要”、“还要”
SDN、NFV的概念对于很多同学而言是比较陌生的,其实在阿里云网络团队最开始设计SDN和NFV的时候对于这两个概念也并没有非常深刻的理解。其实在最开始,阿里云是一切以客户的需求作为出发点来做的。那么问题来了,阿里云是一家面向公有云用户的云计算公司,而做云计算,客户到底需要什么样的功能呢?经过阿里云长期对于客户的调研和分析发现,阿里云所提供的公有云需要能够满足客户们各种各样的诉求,这些需求可以使用三个词形象地概括:“既要”、“又要”、“还要”。

- 海量租户;对于阿里云而言,首先需要解决的问题就是海量租户的问题。海量租户会对于阿里云的系统容量造成巨大的挑战,那么对于用户或者租户而言,他们首先需要考虑的问题就是自己能否与其他人隔离起来。
- 隔离;所以对于公有云用户,首先需要提供的功能就是隔离。
- 互联;在实现了隔离之后,用户又会提出新的需求,就是需要实现互联。因为每个租户自己的资源不是一个完全孤立的岛屿,彼此之间必然会存在资源的互联互通,除此之外还需要满足和公网流量进行互通,甚至需要跨机房、跨地区以及出海等各种各样的互联互通需求。
- 安全;对于公有云用户而言,在云上往往会非常关注的一件事情就是自身产品以及数据的安全,而且用户对于云上安全的需求是非常强烈的。
- 高性能;当用户上云之后,其所接到的需求也会递增,所以也会期望能够获取性能更高的产品来满足提供更高的PPS以及BPS的需求。
- 可靠;看似用户的一系列问题都已经满足了,但是实际上还会有更多的需求出现。比如虚拟机一定是存活于某一个宿主物理机上的,那么如果宿主物理机宕机了应该怎样处理,如果整个机房都挂掉了又应该怎么处理,这就是客户对于阿里云的可靠性诉求。
- 私密;除此之外,客户还会产生一些保护私密性的诉求。比如想要和自己的办公网互通的时候并不会将办公网暴露在公网上,那么就需要将自己的办公网与阿里云的VPC打通,并使得两者能够互联互通而且还能够保护客户的私密性。
先把网络隔开
阿里云首先需要去满足公有云用户对于网络的第一个需求:隔离。如果对于整个网络进行抽象,那么先隔离开就是为每个租户提供一个完全属于自己的网络空间。在这个网络空间里,用户可以自行购买计算、存储等一系列资源,这样网络对于用户而言称为虚拟网络,而虚拟网络最终是由物理网络承载的。

而在另外一个层面的隔开是这样的理念:阿里云希望用户与用户的流量可以完全隔开,并且采用通用的Overlay技术方案。Overlay并不是一个新的概念,其有很多的实现方案比如IPONIP、XLAN等,阿里云采用的是XLAN方案。在XLAN方案中,为每个用户提供了一个具有XLAN地址空间的VPC网络,在这个网络里面实现了虚拟网络隔开和物理网络隔开。在物理网络隔开方面,普通的组网里面有一个核心交换机、一个接入交换机以及最下面的物理服务器,这是物理网络接入的基本情况。如果在传统的网络里面,路由以及流量的交换等一系列功能实际上是由传统的交换设备来实现的,那么如果想使用Overlay的技术把这些功能分开,把路由以及交换的功能做到虚拟网络里面之后就会发现物理网络变得非常简单,这也就意味着物理网络的可靠性以及稳定性会更好,这也是阿里云网络团队多年以来得出的经验。所以对于物理网络的需求就是只要物理网络达到2层或者3层互通即可,而一系列复杂的逻辑会在虚拟网络中完成,如此就能够形成上下完全隔离的一张网络。这样的做法会带来非常多的好处,比如对于物理网络而言,它并不知道虚拟网络的流量是如何转发的,而只知道将虚拟流量包装成为XLAN之后在物理网络中去跑,这是一个非常简单的拓扑关系。在虚拟网络中的虚拟路由器、虚拟交换机等实际上都是虚拟的网络设备,这也就是NFV的概念。
光隔离不够,还要互通

- 私网互通。私网互通不仅包括VPC内部的私网互通,还需要包括同一用户的两张网络之间的互通。
- 公网互通。公网互通属于必备的功能之一,它也是混合云接入的一种方案。ECS搭配公网IP来联通公网是其中的一种方式,除此之外,用户还会需要另外的方式。举个例子现在每个家庭中都会有自己的无线网络,自己的手机等设备连接上无线网络之后就可以连接到公网,也就能够享受到SNAT服务。所以对于用户网络而言,是具有联通公网的需求的,也就是用户网络会具有SNAT和DNAT的一系列需求。
- 用户IDC。对于普通用户而言,私网互通和公网互通这两种形态已经能够满足绝大部分的需求了,但是实际中还会有一些用户具有特殊的需求,比如这些用户的线下机房是属于IDC的,线下机房扛起平时的流量已经足够了,但是会有一些流量的高峰出现,比如举办活动或者新闻热点出现的时候,所以需要有一个弹性扩展的机房空间。对于这样的场景,阿里云提供了专线接入方案,最后得到的效果就是把用户的IDC就近接入一个阿里云的POP点,这样就可以实现IDC和阿里云VPC之间的互联互通。就阿里云对于用户的了解来看,对于上述这样的方案,用户会存在两种诉求:第一种诉求就是用户需要非常可靠的接入,不仅可靠还需要延迟比较低,这是一种硬专线的接入方式。还有一种诉求就是需要较为灵活的接入方式,也就是软专线的接入。
- 跨地域互通。除了能够用上述三种方案满足需求的用户之外,阿里云还有一些用户的业务分散在全国各地甚至世界各地,这样的用户往往就会产生跨地区甚至全球互通的需求。
如下图所示的是阿里云设计的整体网络拓扑图。阿里云在为用户提供网络解决方案的时候也会考虑几套方案,其中第一种方案就是使用交换设备来解决问题,而这种方案会带来两个问题,第一个问题就是包括交换设备在内的硬件的研发周期往往会比较长,这样就容易跟不上用户需求发展的节奏,可能导致当用户的需求提出之后,却迟迟无法实现,所以这样的方案就会受制于硬件。而依赖于硬件也会带来另外一个问题,因为像交换设备这些硬件设备的升级都是需要重启的,而设备重启会对于用户的业务产生时间点不可精确控制的影响。所以从整体层面上来看,阿里云认为通过硬件方式实现解决用户网络的问题会存在很多弊端,因此阿里云选择了软件的方式,通过自研一些网络设备解决了上述的问题。

自研节点可靠吗?
这里可能有同学会产生疑问:这么多自研的东西是否靠谱呢?对于这个问题,阿里云网络团队在研发的时候也经常自问,这些设计真的靠谱吗?真的能够解决问题吗?当发生故障的时候真的能够把对于用户的影响降到最低吗?所以在阿里云网络团队设计整个产品的时候就已经把产品的可靠性考虑在内了。阿里云网络团队思考了很多,认为冗余容灾仍旧是最重要的手段。在如下图所示的拓扑图中,自研的网络设备是集群化的,而集群是由多台设备组成的,也就是说首先这个集群是可以水平扩展的,当流量达到水位之后就可以通过水平扩展来抗住更多的流量。第二点,设备之间实际上是没有关系的,也就是说当集群中某台设备宕机了,流量可以自动被其他的正常的设备承担,这样就可以做到对于用户没有影响,用户无感知热升级也是阿里云的技术优势所在。

安全、安全、还是安全
安全永远是公有云用户排在第一位的诉求。这里的安全特指公网层面的安全,公网其实是一个非常脆弱的地方,如果用户将自己的服务暴露在公网上,往往会有黑客进行攻击或者破坏。接下来就分享阿里云对于公网安全的处理逻辑和采取的方案。

控制器抽象出虚拟的网络组件

阿里云的云市场
在介绍了这么多阿里云官方提供的NFV之后,其实用户可能还不过瘾,因为用户的需求层出不穷,所以还可以去阿里云的云市场上去搜寻相应的功能。

二、什么是SDN
上面主要介绍了NFV以及虚拟网路组件以及NFV如何去满足用户的互联互通、安全、隔离等等一系列的需求,那么问题又来了,究竟什么是SDN呢?
阿里云的SDN架构
阿里云网络团队在最初设计网络产品的时候对于SDN这个概念也不是十分理解的,但是随着产品以及技术架构的逐渐演化,发现所做的东西就是SDN的产品。阿里云的SDN架构图如下所示,最下面一层是硬件层,这一层包括服务器、网卡、交换机、路由器、物理网络以及光纤等硬件设备。在硬件层之上是数据层,数据层则包括了之前所提到的边界网关、虚拟网关以及虚拟交换机等转发层面的东西。在数据层之上是两个管控层——控制层和自治层,控制层主要负责生产虚拟机以及IP等,而自治层主要负责对于整个SDN系统的部署、运维、自制以及整个运维故障的发现和自愈这样一系列的管控。在自制层中有很多个模块对于业务进行监控、信息采集以及流量采样,之后会根据这些信息进行趋势的预判和预测,并且根据采集的数据来判断是否报警或者进行故障的自愈。在管控层面之上是产品层,这里包括了VPC、负载均衡以及公网IP等云产品。

对于SDN的一点浅见:运维自动化
其实阿里云网络团队对于SDN的理解中最重要的一点就是自治和自愈,SDN需要能够管理得了这个网络、治理网络并且发现问题之后需要让网络能够自愈,将故障修复。也就是说运维的自动化是对于SDN最核心的一点理解。

用户看得到也摸得着的SDN
除此之外,阿里云还希望开放整个SDN的功能给用户,赋能用户来管理自己的这张网络,让用户能够看得见并且摸得着还能用得了。比如在网络层面,阿里云希望能够使得用户想要怎么连接就能够怎样连接,想要怎样控制就怎样控制,按照用户自己的需求去跑。阿里云还希望赋能用户网络的弹性伸缩以及迁移的能力,当用户的业务流量压力上来之后,可以实现整体业务的扩展来抵抗业务的高峰,当高峰过去之后,希望能够自动地缩回去。并且阿里云希望能够为用户提供自动热迁移这样的一系列功能,帮助用户能够更快速地解决自己业务中的问题。对于弹性公网IP而言,阿里云为用户提供了一系列的方案,弹性公网IP既可以绑定给ECS也可以绑定给SLB,还可以绑定给HIVIP等,总而言之就是公网IP可以随意绑定,并且可以随意变配,并且通过Open API 、混合云产品以及可选择的计费方式来为用户提供更多的网络管理方式。

三、NFV与SDN实践
新浪微博的实践案例
对于微博而言,每当出现新闻热点、大型活动或者除夕、春晚等节日的时候往往会有突发的流量上来。实际上,微博选择基于阿里云构建混合云平台,微博自己的IDC机房和阿里云之间拉了一根专线,那么这就相当于微博在阿里云上获得了一个弹性的机房,在这个弹性机房VPC里面,微博系统可以非常快速地扩展自己的计算资源,某一年的除夕当天,微博日活跃用户首次突破1亿,同比上一年同期大幅增长了近50%。通常大家的印象是当用户量上来之后,成本也会随之上升,但是实际情况是即使微博的业务量上升了那么多,但是其成本却降低了很多,这就是阿里云的VPC以及ECS所带来的一系列技术红利。阿里云可以实现在10分钟的时间内为微博提供数千台ECS,可以让微博系统的计算资源规模翻倍,提供更高的计算能力。

四、如何面对飞速发展的未来

- NFV。从产品形态层面而言,阿里云会加大对NFV以及相关云产品的研发。包括为用户提供智能DNS私网定制,为用户提供VPC内部的一套域名解析方案,能够帮助用户很容易地实现两地三中心的网络架构,从而使得用户能够快速地应对突发情况。IPSEC接入网关属于VPN网关,这个目前已经实现了,并且目前已经处于公测期了,未来VPN除了支持IPSEC之外,还会支持SSL2协议。除此之外,还会有GRE接入网关和子网路由,让用户在子网中自己定义路由来控制更细粒度的流量的转发。
- 拥抱大数据。由于目前用户的反馈是认为VPC像是一个黑盒子,用户看不到整个VPC的流量是如何走的,也看不到每个包是怎样流动的。所以阿里云网络产品未来会在数据方面进行一系列的加强,会采集数据并对于数据进行分析,为用户提供数据流动的解决方案,让用户能够看到每个数据包在网络中是如何流动的。
- 增强用户体验。当实现了数据采集以及数据分析以后就可以为用户做更多优化用户体验的事情,比如实现网络可视化,可以实现所见即所得,使得业务可视化。除此之外,还需要实现能力的拓展,比如实现全球加速和接入的能力,让更多的用户能够找到最近的接入点能够将自己的IDC机房或者资源与阿里云进行打通,这也是阿里云努力的方向。最后,因为用户的需求是层出不穷的,没有办法满足所有用户的需求,所以阿里云也会开放第三方开发者云生态平台,提供一系列的API让用户调用,形成第三方的市场来让更多的开发者为用户提供NFV的服务。
最后更新:2017-10-09 22:34:51