算力流动的基石:边缘网络产品技术升级与实践探索
内容介绍:
一、云编一体的混合组网方案
二、基于边缘基础设施特点构建一网多态的边缘网络平台
三、以软硬一体的边缘网关技术实现多类型业务网络平面统一
本次分享的主题是算力流动的基石:边缘网络产品技术升级与实践探索,由阿里云智能集团CDN及边缘云高级产品专家金涛、阿里云智能集团CDN及边缘云资深技术专家张毅萍和阿里云智能集团CDN及边缘云高级技术专家彭磊分享。
一、云编一体的混合组网方案
刚才大家听过了esa安全,也听过了边缘云的算力,网络将他们连接在一起。所以在接下来的一段时间里,我将为大家介绍边缘网络如何为基础设施提供服务。
1.边缘云网的定位
今天的主题是云边一体的合作化方案。首先,在产品方案介绍中,我们分为三个章节,分别是边缘云网的定位。介绍什么是边缘云,什么是边缘网络,客户对网络的需求又在发生怎样的变化,我们为客户提供的服务在做怎样的升级,以及云边一体的边缘网络及其使用场景。这三个方面是我们首先要关注的重要环节:边缘云网的定位。在图中,我们可以看到从下往上有几个逐渐变大的圈圈。这四个圈圈依次为中心region、本地region、边缘和现场计算节点。每个圈圈的含义如下:处于中心位置的覆盖面相对较窄,但规模大且中心通常拥有强大的算力资源(拥有pass)。然而,由于规模大,它不能在所有地区做全面覆盖,一般集中在经济发达地区,比如北上广深杭。大家都知道阿里巴巴在北上广深杭有很丰富的资源。但对于北上广深杭不能覆盖的地区怎么办呢?在大型的通信云下面会有本地region,比如湖州会去建立一个相对中型的云。在中型的云覆盖一部分地区之后,到了最广泛的本地region之外的就是边缘节点,这也是今天要讨论的范围边缘节点的发展方向,而它与中心节点恰恰相反。中心节点力求大而全,在A类地区获取尽可能多的服务,将尽可能多的应用部署于其上。然而,边缘节点呈现出小而美、小而精的特点。例如在无锡、石家庄、东莞等地,当有算力服务需求时,可以使用边缘节点来替代,因为中心云在这些地方并未部署。倘若希望使用中型以上大而全的服务,同时又期望对一些边缘城市实现广泛覆盖,那么可以采用边缘节点进行覆盖,并借助边缘网络将边缘云与中心云连接起来。
2.客户需求
接下来探讨一下客户对网络的需求是什么样的,以及客户对边缘网络的需求又是什么样的。
2.1网络发展
首先谈谈网络的发展。若将其分为三个阶段,第一个阶段是连通性。在这个阶段,当我们需要网络时,首先要解决的是实现连通。作为服务商,我们需在资源方面具备一定能力,为客户提供联通服务。然而,随着客户数量不断增多,不同类型的客户也日益增加,此时便在连通性之外延伸出了诸如高可靠、数据私密、安全等需求。于是,我们在资源能力的基础上延伸出技术能力,例如对所有资源进行管控,明确何种资源为谁所用。但这还远远不够。
2.2客户需求
如今,客户对网络的要求越来越高。很久以前,网络断开一分钟可能大家都毫无察觉,但现在只要断开五秒,大家马上就能发觉。因此,除了连通性之外,还出现了可视化、成本低、弹性、高性能、足够快等诸多需求。对我们而言,需要解决可视化、成本低等问题,这不仅仅涉及资源和技术。我们从现有网络的时代进入到一个网络能够虚拟化的时代。刚才谈到了ess以及一些算力的虚拟化,实际上网络也是可以虚拟化的。这就使得我们在编排、服务以及快速适应新场景等方面都需要不断积累新的能力。
刚才提到了通用的需求,接下来是客户对边缘网络有什么样的特定需求。首先,在谈云边连接时,这里的“云”是指东京、瑞典等地,“边”指边缘。在比较早的时候,实现云边连接需要靠边缘的IDC与中心region直接互联。这个时候,客户是用IDC来做边缘端的覆盖。例如,无锡的IDC做无锡地区的覆盖,但它会连接到主站,连接到上海。石家庄做华北的覆盖,可能会连接到北京。这样就实现了在功能上能够使用主站上的很多功能,不过是通过边缘端来覆盖。如果从区域来看,往后会出现华北的石家庄、华东的无锡、华南的东莞、西北的西安等类似情况。
现在的情况是,当我们进入第二部分,即云边的连接,也就是区域性的云边混合连接。混合连接就是边缘和中心不一定只是IDC,IDC和云抽象出来就会变成IDC和云资源。最后会发现,即便是IDC和云资源,我们看到很多客户在选择时也会呈现出不同的特点。比如,他们会把不同的业务放在两个不同的云上,用边缘云去覆盖最终客户,但其核心业务会放在两种不同的共有云上。可以使用边缘网络把这两种不同的云连接起来。在这种情况下,客户可以在成本和可靠性上得到优化。这个时候,我们汇总了客户的通用需求和边缘的特定需求,来看一下整体的需求是什么样的。客户的需求整体分为通用属性和行业属性。通用属性包括刚才提到的连通性、稳定性、私密性、安全性、覆盖广等。但是不同的行业要求不一样。例如游戏行业,大家在玩游戏时,一定会要求时间尽可能短,玩王者荣耀时会关注FPS和时间。而音视频行业,对时间要求没有游戏加速那么高,但要求稳定且带宽大。办公网络对时间要求不高,主要运行OA以及IT类业务,主要要求连接稳定不中断。
3.云边一体的边缘网络及使用场景
当客户对网络的要求出现如此细分的需求之后,我们不用为每一个客户、每一个行业单独推荐不同的网络。我们将客户的所有需求归纳成三个通用的分类,这也是我们的解决方案。第一是客户要覆盖;第二是差异化的连接,音视频客户对网络有特定要求,游戏加速有特定要求,办公也有对网络的要求,但我们不能为每个行业建单独的网络,我们需要在一张网上有各种复杂的链路和网络,能够编排出不同的服务给到不同的行业;最后是到边缘网络。刚才提到了大家都听过ESA和NS,ENA和边缘网络是紧密相连的,我们会在一个账号上解决一站式服务以及其他启用问题,这是三个主要特点。如果想了解这三个主要特点的具体数值,我们往后看。
3.1全球覆盖
截止目前,边缘网络已经实现了全球性的覆盖。在业务的驱动下,我们也在不断开放新的节点。目前,在全球已经有150个以上的节点,而且这些节点预先连接了IDC和其他设施。每次需要连接时,如果不预连接,我们要去做很多事情。但只要一连接之后,大家都知道有一个叫SDN,我们可以及时快速地给客户开通弹性的带宽和预连接,预连接解决了交货速度问题。15T的带宽可以及时开通,单节点的带宽比较大,业务比较发达的地方,其上线带宽会更大,大家可以放心使用。边缘网络覆盖了80个左右的城市,这些城市并不局限于大城市,在东莞、常熟、郑州等地区也有很多节点,所以当大家需要覆盖周边城市时,可以考虑边缘网络,这体现了全球性的覆盖。
3.2差异化链接
我们再来看一下差异化的连接如何实现。刚才谈到了用一套资源、一套网络实现各种不同的差异化连接。首先看左图,从上到下分为三层,即业务、技术和资源。也就是说,我们通过对存量资源的灵活编排来满足不同客户的业务需求。
我们先来看业务层。以游戏行业为例,我们在玩在线游戏时,一般都会看到时延数值。不同游戏对时延的敏感度不一样,战斗类游戏对时延有特别高的要求。所以游戏运营商在发行和部署游戏时,对网络有特别高的要求。这意味着在我们的网络中,低时延的链路可以满足客户的端到端需求。比如游戏的时间敏感性、音视频的网络稳定性、企业办公的高联动性等,各行各业都会有这样的需求。
接着看下面的资源层。我们刚才提到不能为每一个行业的客户都去构建一张单独的网络,所以我们会有一张满足所有客户的复杂网络。这个复杂网络里面有端到端带宽大、时延时小的线路,也会有带宽小、时延低的线路等。当我们把这些线路用自研的网源连接起来时,我们的控制器就可以根据客户的需求进行调整和编排。中间的技术层需要特别关注。中间的技术层分为两层,往上是编排层,往下是控制器。也就是说,控制器实现对下面网络资源和链路的灵活控制,在良好的原子化设计基础上,编排层能够灵活地适应各种新业务。所以按照现在这样的设计,在编排和控制器不断地被客户需求推动的情况下,我们会拥有一张灵活、快速、弹性的网络,这就是我们的差异化连接能力。后面我们来看,边缘网络与边缘云实现了云边一体。为了实现客户能够在一个平台上方便操作,拥有同一个UI,在同一处通过一个UID出账单,给客户一致化的体验。实际上,边缘云和边缘网络在很多地方实现了共享。边缘网络可以为边缘云提供多样化的连接能力。
看这张图,在图中可以看到边缘网络处于正中间,上面是各种服务,如公有region、阿里云或其他公有云,中间是中心地域的IDC,右上角是边缘的IDC,这是中心的RegionIDC。下面是边缘云,从前面的介绍中可以知道,边缘云不仅仅有通用的算力,还有边缘推理和边缘容器。边缘推理和边缘容器与中心互联是通过边缘网络。所以,边缘云和边缘网络在控台上会实现一体化,在一个UID下可以统一控制。因此,边缘云和边缘网络会实现真正的云边一体。
3.3云边互联场景演进
前面我们讲了客户的需求以及边缘和中心的连接演变。现在详细介绍一下场景。早期客户需要做IDC时,网络连接服务是连接边缘的IDC和中心的IDC。往后,需要网络连接时,会连接边缘的IDC和中心的软件。因为那个时候边缘云还不够多,边缘云的覆盖还不够广。但是现在ENS在广度上已经有了很大提升。中心云的演进继续朝着功能复杂、大而全的方向发展,边缘云的覆盖也会不断扩大。边缘云与中心云的连接会不断演变,从分布式的IDC连接阿里云,到最右边演变成边缘云与中心云原生互联。对于很多客户来讲,原生互联可能采用多个供应商,比如网络是一个供应商,存储是一个供应商,计算是一个供应商,这会让客户非常痛苦。所以,边缘云和中心云在一个界面上实现互联会相当方便。
特别值得一提的是,当出现多个公有云中心region互联的时候,边缘网络也可以实现。来看最终产品,即原生互联的最终场景。在客户进行架构设计时,一般会分区域,如华东、华北、华南、西南、西北等。不同区域运用边缘云去解决覆盖问题,用就近的中心云解决功能问题。在图上分为两半,左边和右边各为一个区域。会发现云边互联,从左下角连左上角是一个区域,右边是复制的情况。可以用华北的石家庄覆盖周边地区并连接中心region,用华东的无锡覆盖周边并连接中心region。再往后演变,就会变成IDC多元与边缘全互联。
这是目前已经发生的很多最终场景。最后回顾一下,我们讲的内容。边缘网络首先是发生在边缘节点的网络连接,因为边缘出现了下沉,有些业务在边缘处理,边缘与中心产生了连接。其次,边缘网络的特点是全球覆盖、差异化连接、边缘云网融合。所以当客户有覆盖边缘的需求时,各个行业的各种需求都可以得到满足。
最后,边缘网络已支持通用场景中的云边互联、边缘间互联等,能够做到即开即用、云网一体。这些便是边缘网络目前已支持的场景。如今,随着客户不断增多,我们仍在不断尝试新的技术、支持新的特性。希望大家能够使用我们的边缘网络。今天我的分享就到这里,谢谢大家。
二、基于边缘基础设施特点构建一网多态的边缘网络平台
阿里云的边缘网络平台是基于边缘基础设施特点构建起来的,同时具备服务多种网络业务形态的统一技术,能够屏蔽差异化,最终实现多种业务共享资源。我的分享主要分为以下三个部分:首先是边缘基础设施的特点,然后是一网多态边缘网络平台的技术,最后是在技术研究过程中积累的边缘网络技术的特色。
1.边缘基础设施特点
首先来讲边缘网络基础设施的特点。实际上,整个边缘网络基础设施是基于CDN业务成长发展起来的。整个边缘网络基础设施的定义可分为两类资源和两类系统。在资源方面,有以强IO吞吐型业务为主且兼顾边缘EGO计算业务下沉的服务器资源;在网络技术支持上,基于运营商网络,以就近覆盖用户端访问为主,兼顾节点间连接。两个系统分别是边缘网关系统,它要解决二三层网络接入及四级网络加速Pass等接入能力,以及具备网络加速、跨度类服务的架构能力。
边缘基础设施具有三大优势:一是就近覆盖,能提供低时延、低成本及更大带宽的能力;二是就近服务和数据就近缓存计算,降低信息传输成本及中心负载;三是可控范围优势,对于边缘网络技术至关重要,可把控和调整的范围越大,把控和调整能力越强。但也存在明显不足,首先是网络系统复杂度提升,由于节点分布广泛、资源分散,带来了复杂度提升,相对中心资源,运维管控难度增大;其次是资源弹性受限,单个边缘节点资源有限,无法独立承担突发规模业务,需分布式系统协同应对,带来协同系统的复杂;最后是资源异构差异,相对于中心region,边缘网络技术面临的基础环境差异大,包括设备、机房、网络标准等差异。结合这些定义和优势差异可以看出,底层技术设施决定了上层建筑,基于此,边缘网络技术有独特的技术演进路径、侧重点和特色产品形态。
2.一网多态的边缘网络平台技术
接下来第二部分将展开介绍边缘网络平台的演进和关键技术实践。前面提到边缘网络平台是由CDN业务发展演变而来。快对于整个CDN而言,一直为客户提供核心价值。随着业务需求逐步升级,对网络服务能力的需求也在不断提高,从CDN内容加速的快到全面服务各种场景。面对通过CDN积累的离用户更近、离客户远站更近的资源,可以满足越来越全面的网络需求升级。从需求升级上看,从最开始大量CDN主要进行内容加速,升级到现在要加速整个应用的服务体验,同样也具备了从二三四七层全站的应用网络加速能力。
从场景方面来说,我们从最基础的CDN内容加速访问,扩展到了加速上云,从更多的CDN服务用户和企业之间的网络加速,拓展到了服务企业内部的网络加速。从原来单项侧重服务好用户端的网络能力,延伸到服务客户源站的网络能力,从而实现全链路从云端到端的应用加速服务能力。
2.1网络加速分层
为了支撑前面提到的这些需求升级,在演进过程中,逐步形成了当前比较清晰的网络加速分层。自上而下,可以划分为三个层次。
首先最上面一层是网络接入协议层,这一层核心要解决的问题是兼容性问题,即需要提供尽可能多的标准网络接入协议能力。因为能够接入的协议能力越多,就意味着可以接入到加速网络的业务范围就越大。第二层是网络传输通道,这一层核心解决的是复用问题。前面接入了各种各样不同的业务后,要在这个通道上尽可能用一个通道支持所有业务,屏蔽业务接入的多样性,统一传输数据格式,构建资源传输通道的通用通道,实现多业务复用和降本。第三层是流量调度,这一层核心解决的是融合适配问题,面对多种不同业务混在一个场景的情况,需要统一进行资源调度规划,保证整个平台的传输质量、稳定性和成本。
接下来对这三个层次展开说明。首先是第一层网络接入层,要面向不同业务场景,支持更多标准协议和业务拓展。从最传统的标准CDN业务切入,在常见的内容加速场景中,使用标准的七层HTTP协议以及音视频中常用的RTMP、HLS等协议。在面向应用层加速场景时,对于标准协议无法兼容的客户依赖的私有IP协议,提供私有TCP/UDP的接入方式。此外,在面向用户或企业的加速上云或企业内部网络加速场景中,提供最底层的二三层网络接入能力。由此可见,从七层到四层到三层到二层的全站网络覆盖场景,都能通过这个接入协议层全部兼容。对于网络接入协议层各种业务场景和业务差异化接入平台后,在整个通道复用方面,需要进行二次封装,形成统一的传输通道,屏蔽不同业务场景的差异。按照这个思路,对原来的CDN加速通道进行改进,对不同协议结构的数据进行二次封装和解封装。通过这种操作,在整个通道上实现了网络传输通道的虚拟化,不同的接入业务形态都可以利用虚拟化资源进行业务隔离和调度,从而实现对底层网络资源的多业务复用。第三层是全局业务调度的统一。要在不同业务上实现充分的资源互用,就需要在业务融合后对不同业务的差异进行融合调度。
2.2关键能力
(1)QOS差异化
这里有几个关键能力:一是不同业务的QoS差异化能力。在这一层,需要明确知道不同业务接入后属于可调度资源还是不可调度资源以及对应的优先级高低。在调度规划层面,不同业务有差异化属性,以便更好地进行调度决策。
(2)全局资源实时规划
二是全局资源实时规划能力。不同业务有不同的业务需求、QoS需求、业务时间需求和业务质量要求。要对不同业务进行实时动态规划,才能在同一份资源上满足不同业务的诉求。
(3)紧急容灾
三是异常实时紧急容灾能力。这与前面的实时调度能力相融合。需要实时感知不同业务的异常,结合不同业务的QoS需求进行差异化处理。左边图片是一个比较典型的业务混用举例。比如常见的CDN业务,其QoS要求容忍度较高,可以对CDN流量进行差异化调度。而企业网络加速相对来说可能是不可被调度的,因为其接入点受物理专线限制相对固定。当分别支持这两种业务时,需要不同的技术网络设施资源。但把它们放在一起进行全局流程调度时,可以发挥两种业务在统一资源上的融合调度优势。例如,当某一个混用节点出现网络负担偏高或爆满的情况,可以结合两类业务的差异,把可被调度的CDN业务流量调走,把剩余流量空间让给不可被调度的企业网络加速业务。通过这种场景的统一流量规划,能使底层网络资源的复用做到最大化。
3.边缘网络技术特色
以上是边缘网络平台演进过程中逐步形成的网络加速关键能力。结合第一张介绍的边缘网络技术设施特点,也形成了边缘网络的关键技术特色。这一部分重点对边缘网络的技术特色进行介绍。
谈到边缘网络,与中心网络有很大差别。在中心region之中,网络的Underlay和Overlay有着非常鲜明的分离分层结构,互不干涉,且分层解耦后技术演进路径也各有侧重。对于整个中心云而言,采用这样的架构有很多优势。因为中心region的网络规模非常大,无论是Underlay网络中的网络设备如交换机、路由器的规模,还是Overlay这一层各种机Gw网关的规模和类型都非常多。所以有非常多的资源规模让其进行各种复杂的演进和维护。而且这部分资源在整个中心region中公摊比例相对较低,也是可以被接受的。因此形成了各自的演进能力。在Overlay层面,看到的Underlay是一个黑盒,Underlay为Overlay解决点到点的连通性问题、设备异常容灾问题以及一系列网络异常逃逸问题,都由Underlay层面独立完成。而Overlay层面则更多地专注于将网络虚拟化、增强各种网络资源的功能,把网络隔离能力和不同客户的差异化特点做得更好。这是中心云网络Underlay与Overlay分离所带来的优势,也是其必然选择的路径。
但对于边缘网络而言,逻辑截然相反。边缘节点本身由于规模限制,每一个边缘节点规模都非常小,有的可能只有十台甚至是个位数的设备规模。但在这样的设备规模下,仍然需要做到功能齐全的服务能力,每个节点该有的网络LBNit或VBC等能力都要有,各种网络边缘连接、云上连接能力也都要有。在这样的设备规模下要做到功能齐全的服务能力,就造就了整个边缘网络在实际建设中需要将Underlay和Overlay进行融合的技术路径,这也形成了边缘网络技术路径上的特色。借助边缘交换机的能力,为我们提供了网络跨层和物联网跨层联动的技术条件。这种网络跨层联动带来了很多好处,解决了许多核心问题。例如,在规模和成本约束下,边缘基础设施的稳定性等方面明显低于中心云。在这种场景下,Overlay与Underlay在进行容灾和异常调度联动时,需要进行跨层联动,将每一层的异常容灾调度能力尽可能在一个层面收敛。
当Overlay、Underlay融合后,在Overlay网络层面可以直接感知每一条物理原子链路的通断情况、延时以及网络丢包情况。基于此信息,可以将Overlay和Underlay的网络路由调度和感知融合在一起,从两层的容灾调度变为一层调度。这样,当发生单线路异常时,在业务层面可以直接进行原子链路调度,实现100毫秒级别的电路切换。这种能力是中心云所不具备的。也正是因为具备这种能力,在边缘网络技术设施相对较低soa的情况下,也能够做到与中心云相对匹配的网络传输可靠性和稳定性。以上就是对边缘网络技术呈现和演进出来的技术特色的分享。在边缘网络创建过程中,形形色色的网络基础设施以及多种网络间的互联互通场景,给边缘网关技术带来了巨大挑战。接下来,有请CDN高级技术专家彭磊带来主题分享“以软硬一体的边缘网关技术,实现多类型业务网络普遍统一”。
三、以软硬一体的边缘网关技术实现多类型业务网络平面统一
我们将从以下三个方面进行介绍:首先,边缘网络与中心云网络有何区别;其次,软硬件一体网关的具体组织架构是怎样的;最后,这些网关如何提供各种功能以实现网络间的互联互通。
1.边缘云网络
首先谈谈边缘云网络。比较直观的一点感受是中心云节点的特点在于大且全,所以其基础设施投入可以很多,每个网关都可以用单独的设备。而边缘节点的特点是按区域分布且就近服务用户,即用户的业务在哪里,边缘节点就在哪里,以重点解决时延和就近服务问题,让用户能够就近“上车”。因此,边缘云节点数量一定非常多,同时不同区域用户的业务需求量不同,导致边缘云节点的规模有较大范围的变化,小的节点可能只有十几、二十几台设备规模,大的节点可能有几百台甚至能达到千台级别。在这种情况下,功能上还必须要求每个节点都具备完整的功能,比如小节点虽然小,但依然需要有负载均衡、安全防护等功能,不能因为节点小就省略这些功能。同时,我们要做到这一切,还必须考虑一个非常重要的因素——成本。大家都知道,如果只是提高性能,性能越高越好,但达到同样性能所付出的代价是必须综合考虑的。比如一个20G的节点,如果将其性能设置成100G,却没有得到额外收益,这就是一种浪费。
2.软硬件一体网关
(1)软硬件技术
基于此,这给软硬件一体网关带来了一些挑战。首先,从比较直观的规模角度来说,网关的性能要有较大跨度,这导致部署形式不一样。比如一个小节点总共才十台服务器,若额外拿两台服务器出来做网关,在成本上肯定不可接受。所以,一般来说第一种部署形态是虚机部署,因为现在对外售卖方式可能也是融合的方式,这样是一个一体化机制。
同时,我们也知道现在软硬件技术都在不断发展,包括可编程芯片、智能网卡等技术。在这些硬件技术发展过程中有很多技术红利,我们要如何享受这些技术红利这就意味着部署形态会根据性能又有X86形态部署以及结合可编程芯片和可变成交换机的形态。这三种不同的网关部署形态中,虚机部署比较适用于超小规模的节点。同时,这种网关流量相对小一点,但更需要能够灵活腾挪资源,随时从没有网关到马上创建一个网关。还有一种相对中规模或大规模的节点,可以有两种选择,一种是用X86部署,这种节点在常态情况下,网关所要经历的流量非常大,这种情况下,它可以常态占用相对大的资源,所以给它额外配置独立的服务器是完全值得的。另外,对于中规模或大规模节点来说,像可编程交换机这种方案在性价比上也是完全值得的。同时,可以充分运用现有的网络资源和硬件加速功能。
(2)具体作用
下面具体看一下这些软硬件技术在整个服务中是如何发挥作用。首先,随着技术的发展,现在基本上为我们提供了更有性价比的性能提升方案,比如硬件卸载就是一个比较通用的方案。通常来说,现在比较成熟的报文处理流程大体上可以分为:首先是收发包机制,不管是BPF(BerkeleyPacketFilter)还是X86,都有了像现在比较成熟的DPDK(DataPlaneDevelopmentKit)的分流收包,或者像BPF之类的。总的来说,像零拷贝这些技术都是比较成熟的技术。收到报文之后,第二步就是上送CPU之后在CPU上的报文处理。总体来说,基本上是基于新的筛选的快慢路转发以及命中筛选后的快路转发。这是现在比较通用的报文处理机制。
(3)面临挑战
这些机制在带来高性能的同时也存在问题。比如分流机制,在从网卡收包到上送CPU的时候采用分流方式,但在现实业务中难免会出现单个流流量非常大的情况。在前面同事提到的很多业务中都会出现,比如一些下载业务或游戏更新版本时,单条流可能就会非常大。如果按照正常的分流机制,流量就会分到同一个CPU核上,这会给这个CPU核带来很大的PPS(PacketsPerSecond)压力,而其他核可能还有很大的空闲。结果就是整体分布不均,从效果上看可能会有丢包。另外一种场景是可能GPS没有那么高,但是有很多大包。我们知道从网卡送CPU的通道与整个网卡接收报文的网口带宽相比要略小,所以CPU的这个通道也会成为带宽瓶颈。
在这两个问题在我们现有的机制里经常遇到。现在硬件技术的发展,像可编程芯片、EPU(EdgeProcessingUnit)或者智能网卡等硬件都提供了一些新功能,比如硬件卸载。以报文筛选卸载为例,从交换网络来说,交换机收到报文后会通过网卡上送。一旦引入智能设备,在硬件上就可以先匹配硬件会话,这里面的P4core逻辑可以引入一系列编程逻辑,包括安全处置和前面提到的NAtlt等功能都可以在这一层匹配对应的会话。如果在这个层面直接命中会话,那就比较好理解了,命题会话后直接在这个层面进行筛选快转,这种筛选快转的性能会远远高出CPU通道,而且因为没有上升到CPU,所以也不会存在单核瓶颈。
当然,它的管控机制往往是要上送CPU的,上送CPU之后,用传统的分流机制分送到不同核上。最终根据所有配置规则包括LB(LoadBalancing)、NAT等规则配置完后,会新建会话,我们可以根据需要决定是否把它卸载到硬件上去。这里提到卸载规则是因为在很长一段时间里,卸载是一个很尴尬的功能,原因在于硬件上的会话数一定是有限的,不像CPU上的内存那么多,所以会话数有限。而在现在的技术上,包括DPU(DataProcessingUnit)可以提供更大的内存,能解决筛选数量的问题。即便不是DPU这种设备,普通的智能网卡,它的会话数量也许不足以满足需求,但一旦加上自己的卸载规则做智能调配,控制卸载的数量,依然可以解决像大流和CPU通道的问题。而且现在成本除了体现在设备的报文处理上,同时也体现在运维和升级迭代上。在运维和升级迭代这两个事情上,特别是现在有多种形态的网关,如果针对每一种形态的网关都单独进行运维、升级和管控,会带来人力消耗,而这种人力消耗会间接给用户带来很多稳定性风险。
从实践来看,管控统一、把业务模块化可以较大地减少这方面的消耗。管控统一首先要求在对外管理层面提供统一的运维方式,即一个功能不应该因为部署在不同设备上就产生不同变化,而应该是统一的。在变更方面,所有做软件研发的同学都深有感触,业务发展快意味着功能开发快,功能开发快就需要不停地变更迭代,但每次变更迭代都是一次故障风险。所以减少变更风险非常重要。在实践中会发现,真正需要频繁变更的是业务模块,而像路由、哈希等核心模块基本上很少变化。
对于这种核心模块,基本上不需要升级,或者可以用另外的方式升级。对于持续演进的业务,要求能够快速变更、频繁变更甚至在线变更,因为每次变更对业务来说损失都比较大。因此,提出一种方式,即模块化区分,把核心模块作为固定模块,其变更升级很少,可以用传统方式变更。而像NAT、LB等业务上经常迭代变更的模块采用动态模块的方式变更升级,甚至可以做到在线升级,同时也可以在不同业务场景里按需进行动态加载。比如某个节点不需要负载均衡,那负载均衡模块就可以先不加载。
总结一下,现在的软硬件一体网关在硬件上主要有可编程网卡、可编程芯片、EPU等。通过用X86、融合或者在docor里部署。再往上一层是通用的核心模块,包括通用库、基础的hok架构。在此基础上,可以封装成各个业务场景需要的网关,如VPN网关、节点间串联的网关、ESG、SB等。之后在各个网关上可以按需开发属于这个网关所需的功能。
3.网络间的互联互通
(1)互联互通作用
接下来介绍网关如何在实际业务中发挥互联互通的作用。接下来看一下网关之间是如何协作的。从图中可以看到,网关在网络top中基本处于汇聚位置,这也比较好理解,因为网关本身就是为了打通不同的网络。通过网关能够连接不同网络的方式主要是提供大家熟知的NAT、LB、VPN以及安全防护等功能。根据功能划分,会分为不同的网关角色,定义好网关之间的交互方式,结合各个网关的功能,从而实现各个场景的互联互通。网关有三个方面的特点:功能需要统一;现在引流主要通过路由引流;部署方式根据网络规模灵活部署。
以第一个示例来看,ESG网关提供LB,NAT等功能,当外网需要访问内网时,需要NAT功能。有多个服务器共同提供相同服务时,通过负载均衡功能来完成相应能力提供。也就是说,NAT服务器网关主要提供跨网转发功能。
看右边第二个图,这里描述的主要是云和云之间的互联,即边缘云之间的互联。用户上车时,可以通过和VIP网关建立IPSec隧道就近上车。就近上车后,如果所需访问的资源不在本节点,可能在另外一个区域。这时通过EPGW引流到IDC,EPGW通过边缘云网络串联起用户在另外一个区域的资源。另外一个区域的下车点可能是另外一个区域的EPGV,也可能是用户的IDC。
(2)多云互通场景
最后介绍跨区域的多云互通场景。用户从上车点上车后,通过引流到EPG,如果用户要访问的目标可能在阿里云的边缘网络,也可能在第三方云。这时通过两个网关的协作,从EPGW和NAT服务器之间,通过VPN路由或者微服务路由等机制,把流量引入到第三方云,同时完成相互交互。
接下来介绍一个比较典型的产品,如CDN。CDN提供加速服务,主要是从边缘访问到用户源站之间的加速。现在随着技术发展,用户源站可以放在自己的私有网络里。在这个场景中,当客户端访问CDN的R1后,经过后续加速网络来到CDNR2,在CDNR2中通过UDP和EPG就近上车,进而通过边缘网络访问到用户源站。在这个过程中,用户源站不需要像以前一样对外暴露公网IP,完全可以用自己的私有IP对外提供服务。