分享嘉宾:江鹤
阿里云资深技术专家,7次参与双11,负责阿里云网络类产品研发及阿里集团网络虚拟化、负载均衡等网关类产品研发。
这篇整理来自于阿里云网络虚拟化技术专家江鹤在2017阿里双11在线技术峰会中的分享,该分享整体由四个部分构成:
- 混合云技术的应用与挑战
- 网络虚拟化技术的背景及其实例
- 双11中的阿里云网络产品服务
- 五大技术破解混合云难点挑战
混合云技术的应用与挑战
与往年不同,2017年的双11活动应用了混合云的方案进行举办。在双11期间,阿里云的技术人员将华北、华东、华南地区三个既有的电商单元与阿里云进行同步链接,分别建设了对应的三个混合云方案。并利用这一混合云方案成功的承担了高达25.6W笔/秒的交易峰值,抗住了双11当天零点的订单与交易压力。而实际上,混合云的投入使用还潜藏着诸多的挑战。
首先,因为“云”上聚集着非常大量的用户,安全隔离的问题就会凸显出来:应当如何保证电商单元在公共云中形成有效的安全隔离,就成了亟待解决的问题。
第二个问题是网络的连通性,这既包括本地电商单元与本地云上电商单元的连通性问题,又包括三大不同区域电商单元之间的数据交互和连接。双11期间流量极高,往往要以T为单位计算,如何保证网络连通中极高的吞吐与低时延能够达到并行,这同样是一项巨大的挑战。
第三个挑战在于对超大规模的应对,混合云的网络规模很大,网络中涉及的虚拟机规模同样很大,且随着Docker技术的使用,以VM中Docker来进行计算,所涉及的规模还会更大。
最后的挑战来自于弹性扩容。如何尽可能缩短双11前的准备时间,在最短的时间内开出想要的资源,在双11洪峰结束后,同样在最短时间内把已经投入使用的资源释放回资源池中。 实际上,不同于看起来利用网络将两朵云(电商单元和公共云上单元)进行的简单链接,混合云的应用会涉及到诸多繁杂的问题。接下来的文段中,我们就来介绍双11运维中解决这些问题的方法。
网络虚拟化技术的背景与实例
首先要谈的就是网络虚拟化技术。什么是网络虚拟化技术呢?我们可能已经对网络的概念有一个基础的了解:一张网络交付使用前一定存在建设的周期与过程,但只要投入使用,网络就会变得趋近于固定,如果想进行大幅的的改动,则需要极大的成本和时间周期。这就带来一个问题,如果用户对网络的需求非常灵活,弹性很高的话,该用怎样的网络才能满足用户需要呢?
网络虚拟化技术由此应运而生。我们知道,虚拟机技术的原理就是把一台物理服务器虚拟成N个虚拟机,再把每台虚拟机提供给不同的租户。网络虚拟化也是类似的,它将一张物理层面的网络通过虚拟转换技术来虚拟成N张虚拟的网络,再将每张虚拟的网络分别给到不同的用户进行使用,来满足用户对网络环境的需要。
网络虚拟化技术并不仅仅是一个地址空间的虚拟化。网络首先是一个拓扑,拓扑虚拟化实现后,还需要涉及到网络承载流量过程中相关设备的虚拟化。每张虚拟网络中都要提供虚拟的路由器、交换机、Net网关、VPN设备等。用户拿着虚拟的地址空间和网络设备就能按照自己的需求组建出自己的虚拟网络,随后就可以将虚拟机、数据库、存储服务等内容放在虚拟网络上,组合成一个整体的解决方案。
前面提到了网络虚拟化技术的概念,接下来谈谈阿里云的网络虚拟化系统洛神,如图,中间是一个框,代表数据中心网络,由物理网络设备组成。但在这个框的周围,我们能看到Internet网关、LB网关、VPN网关、混合云网关、云服务网关、SDN控制器、网络分析平台 和vSwitch(装载在每台物理机上的虚拟交换机)等各种各样的内容,通过它们的联合把物理网络虚拟化,为每个租户都提供一张虚拟的网络,同时通过在网关中的实现与vSwitch进行配合,从而虚拟出各式各样的网络设备。
举个例子:虚拟路由器。路由器的常规概念是一种基于物理的网络设备。但在网络虚拟化系统中,虚拟路由器只承载功能,不存在实体。它分布式的存在于整张图的所有部分。阿里云的洛神系统就是通过类似的方式虚拟出各式各样的网络和网络设备提供给用户使用。
大家可能会对此存在疑问,这么多网关,它们是如何和我们接触到的虚拟网络设备进行链接的呢?这里应用了一个VXLAN隧道分端技术,通过分端的方式把用户的ID、网络编号和一些其他特征加以整合,在用户数据包从VM/VM Docker 开始流转并进入数据中心网络的同时,将其封装成一个VXLAN数据包,在数据中心进行流转,并通过唯一的ID来识别租户,区分用户与用户之间的流量。
前面介绍了利用VXLAN技术进行租户间的隔离,那么在封装之后,又该如何切实组建出一台虚拟路由呢?我们知道,路由器实现的功能主要包括对于数据包的接收、数据包路由查找、 修改、发送,以及针对路由表的管理,SDN控制器在这些功能上起到了关键性的作用。虚拟网络首先通过API串接虚拟路由,做到在使用期间对路由的添加、删除与查看。而路由表则通过SDN传递到洛神系统中每个相关网关和vSwitch里面,当用户的数据包开始流转时,对应的路由表和路由转发路径就已经确定。
刚刚介绍的是数据包的查找修改发送和用户自行管理接口的提供,但一张网络的运行不是简单地串接起来就高枕无忧了,实际过程中会出现各种各样的异常:比如数据中心的交换机或路由器、网卡出现故障。这时该怎样保障用户的数据包正常工作呢?洛神专门下辖了一个网络分析平台,用于对网络SLA进行保障,它从控制和转发两条路径提取各种运行状态和信息进行分析与加工,从而对网络的健康状态进行诊断,并指出问题的核心。
可以看出,阿里云的洛神网络虚拟化系统是一个整体化的解决方案,它包含众多的子系统,共同形成稳定而虚拟化的网络技术和服务。
双11中的阿里云网络产品服务
前面的文段中,我们详细介绍了网络虚拟化技术的构建。那么,在双11当天交付给电商单元的服务又是怎样的一种形式呢?接下来的部分里,我们将继续介绍网络服务作为产品提供给用户使用时的组成和状态。
我们可以看到,阿里云在双11期间的网络产品可以划分成三个部分,左右两侧分别是一个独立的VPC,是分属华东和华北云单元的两个虚拟网络,它们附带有EIP,用于提供弹性的公网IP,以实现对云服务器ECS 中VM资源的快速绑定和解绑,同时提供负载均衡的技术。访问请求直接在后端VM进行平衡,创造出优秀的容灾能力。后端ECS不能工作就会将请求和流量切换到其他ECS上面去,另一个重要的部分是NAT网关,它提供两种功能,第一是把后端的服务映射到Internet上,第二是为后端VM访问因特网或其它单元提供SNET。连接在VPC上的VPN则用于提供运维管控链路的能力,在Internet开放接口,让相关员工在出差办公时也能够管理云上的资源。
此外同样不难看出,图中左右两条VPC之间存在明显的连线,即为所谓的高通道VPC互联。通过高通道这一产品实现了华东和华北的两个单元之间的链接,使它们之间能够完成交易、通信功能并提供数据包访问。下侧还有一个专线的的接入点,它用来提供构成混合云的能力,让云上和非云单元能够共同组建形成混合云。
通常情况下,非云单元如果想访问一个云上单元时,最自然的方式就是与本地的混合云通信,而阿里云的一线接入能力则对这一路径进行了扩大化。只要对阿里云任何一个VPC进行接入,就能够和全部本地与异地的云单元通信。通过这种形式,既实现了云上单元间的通信,又丰富了云上和云下单元之间通信的能力
VPC中同样具备着虚拟的交换机和虚拟路由器,它们和物理世界中搭建网络的原理和组分上并没有什么区别,且得益于网络虚拟单元的优秀的承载能力和丰富的容量,对路由器、交换机、负载均衡等项目的需求可以显著压缩,避免资源浪费。
五大技术破解混合云难点挑战
用VPC实现租户间隔离
回到最初的混合云挑战中,第一个难点就是单元之间的隔离。可以看到,全部电商单元的VPC和公共云用户的VPC都集中在阿里云统一的大资源池中。对用户来说,要考虑自身的安全隔离是否充足,与其他租户的隔离是否充分,用户单元与阿里自身业务间的隔离是否充分,电商单元是否完全安全可信,交易和云上其他租户是否隔离等一大串的问题,这里就要用到VPC(专有网络)技术。
VPC是一项天然逻辑隔离的技术,它通过前文中的VXLAN技术来确保不同租户在阿里云上的流量处于不同的隧道,避免出现数据包串线的情况,为每个用户营造安全隔离的地址空间。如下图,同一个VPC上的几个ECS间可以进行通信,但两个不同的VPC之间则无法通信,这是VPC设计中的一项基本原则。
高速通道实现异地多活
第二个挑战在于网络连通,是否能做到云上各个单元间的通信的进行足够灵活,达到与同地址空间内通信相同的效率,是否能够满足不同地域业务之间的通信需要。对此,阿里云同样提供了虚拟的、不同地域间的VPC互通技术,利用高通道产品提供跨越MB至TB层级的逻辑电路,并依托于阿里底层强大的网络基础设施,创造出广阔的弹性。
事实上,云下单元在日常中同样存在多单元间通信的核心网络,双11当天的逻辑核心网络 可以拆分成两个部分,一个是非云上单元的核心网络,一个是云上单元间互相连接构成的核心网络。云上云下之间通过高通道产品进行通道连接,带宽同样可以提供到TB级别。这一能力充分的体现了阿里巴巴的底层资源能力和软件定义网络的灵活能力,充分满足灵动的定义,可以在极短的时间内将逻辑电路从2MB升到100GB,只需要一个API就可以完成。
NAT网关支撑峰值交易
双11当天,我们购买完对应的商品,支付时同样需要进行一次网络访问。订单组件需要面向交易系统进行数据交互,这一过程少不了NAT技术的保驾护航。
双11期间,NAT网关同样经受着极大的考验,它不像最基础的逻辑电路,只需要保证最基础的连通性,它还要在要连通的同时进行地址转换。所有需要NAT转换的设备都会具备链接表来反馈转换的状态。其中有两个非常关键的指标,第一是建立新链接的能力,高新建水平可以避免零点用户涌入带来的拥堵。事实上,双11当天的NAT新建能力已然超越百万级别。第二是维持大量而广泛的在线连接的能力,因为双11其间电商用户的来源广阔,数量庞大,在线连接的并发数也同样是一个天量,并考验着NAT网关的效能。
SLB承载双11的访问流量
面对双11的流量洪峰,首当其冲,最先接受挑战的就是SLB负载均衡系统。全部云上的业务都需要跨机房容灾,以及在多个虚拟机之间进行流量的负载分担,通过负载均衡压力后方可对外提供服务。
对负载均衡设备来说,双11同样充满着各式各样的考验 :在几十上百GB为单位的流量计量下能否提供足够的吞吐能力;数据包PPS转发能力是否充足;新建链接的能力是否足够 ;会话并发数是否足够;提前的压力测试无法准确预估零点高峰流量,负载均衡设备能否对突发压力进行承载;后端虚拟机需要紧急扩容时负载均衡的API效率是否足够,这些都是针对SLB的巨大考验。
最终的记录表明,双11当天的负载均衡完美的承受住了压力,它已经接受了很多年的双11流量考验,并在一次次的更新中越来越稳定,并具备越来越充足的经验。
基于API的灵活网络部署
前面的文段中,我们介绍了关于混合云的一些内容,而如何弹性的在公共云上拉出一张超大规模的网络,并快速的部署对应的网络设备,这一切的能力都是通过API进行操作的。
在常见的物理网络中,这类工作需要通过拓扑连的方式线进行,而虚拟网络则可以通过API的模式进行快速拉起。前文中提到的专有网络VPC,只需要通过一个API就能够完成创建,快速形成虚拟的交换机与下辖子网。包括负载均衡设备、NAT网关、各种弹性IP都能够通过API的模式进行。包括刚才叙述过的高通道产品,其快速从2MB提升到100GB的过程也都通过API完成操作。
这意味着如今阿里云云上提供的网络,全部是SDN的、由软件定义的网络,所有的操作用户都可以通过API进行对网络的部署、修改与消亡。事实上,双11当天内部的电商交易单元也是通过open API创建出VPC 负载均衡和NAT网关,从而加以实现的。
这里存在一个关键点:全链路API。全链路API的投入使用使得API拥有极高的效率,意味着串接一张网络时,其具备自动编排的功能,并支持将提供好的API主核写成程序,再对其提供触发式的动作,在需要时对网络进行串接、修改和扩容。 这里通过网络的创建、运行和消亡三个维度分别对其部署能力进行介绍。
网络创建阶段,起初可以通过API创建VPC,并进行IP地址分配,从而将一张完整的拓扑构建出来。接下来可以创建负载均衡、NAT网关等项目,并使用高速通道联系位于不同地域的VPC单元,进行混合云的创建与接入。
运行阶段,用户能够在网路存在期间内利用API进行任何配置的修改,并在运行过程中获取运行数据与分析,监控,告警等各各式各样的信息。以双11混合云为例,技术人员在双11前几天拉起网络,在投入使用的过程中对网络进行修改和适配以满足双11的实际需求 ,并在活动结束后进行对网络的消亡处理,将闲置出的资源返回公共资源池中,重新售卖给外界租户。
超大规模混合云
前面的文段中,我们介绍了双11的混合云技术,阐述了面向云上各种虚拟网络和虚拟网络单元的能力,那么接下来,我们可以通过这样一张图来详细的看到今年双11当天各大组件的具体数据指标。
可以这样进行概括,整个双11过程中,阿里云为双11提供了灵动、智能、和可信的网络服务,交出了一份近乎完美的答卷。
“灵动” 体现于从网络拉起、创建、到运行过程中的修改,乃至最终的消亡都十分灵活,并拥有API,控制台,甚至小程序等丰富的操作手段。
“智能” 体现在对网络提供了各种维度的数据指标,能够给用户和相关交易提供充足的数据参考来进行决策,并在后台提供多种智能监测,方便我们了解网络的运行状况,明确问题出在哪里,解决方案是什么。
“可信” 而安全是这一网络最终达到的效果,租户与租户之间隔离 SLA极高,为全部阿里云用户和双11活动都提供了优秀的SLA服务。
双11当天,阿里云的虚拟网络与其它产品一起,为整个阿里巴巴的活动提供了极好的底层基础设施支撑,我们有理由相信,在愈发扩大的双11规模下,阿里云能够持续为未来的每一个双11购物节都提供更为灵动,智能与可信的网络服务。
《2017阿里巴巴双11技术十二讲》全部讲师直播回顾&资料下载,请点击进入: