01 引子
CDN 服务了互联网的大部分场景,是互联网业务背后重要的基础组件。CDN 的访问异常有可能造成大面积的互联网业务影响,如何应对访问异常是衡量 CDN 服务质量好坏的一个重要标准。比如某某电信大楼着火事件造成了某些地区的网络不可访问,阿里云 CDN 通过技术手段,保障了客户业务的正常运转。这背后是如何做到的呢?
02 技术简介
阿里云 CDN 拥有 3 千个节点,支撑了全球的内容下载加速服务,可以看作是一个庞大分布式系统。节点众多可以服务更广范围的客户,但同时也带来了系统的极大复杂性。
某个节点可能因为各种原因不能服务客户,如运营商网络问题、节点设备问题、某个服务问题或者某个回源链路问题等等。CDN 解决问题的一个常用方法是——快速节点逃逸,即快速发现有问题的节点,然后切换掉这个节点的业务。快速发现问题成为解决 CDN 问题的关键一环。
如何快速发现 CDN 问题?如前所述节点访问问题会有各种各样的原因,那么需要针对每个场景去设计不同的的监控方式,但这会是一个异常复杂的探测监控系统。
有没有更高效的方式呢?分析可知,虽然出问题的场景多种多样,但是大部分的场景都会体现为业务网络访问问题。所以通过网络探测的方式去发现边缘云节点问题是一条便捷、快速的方式,即通过边缘网络感知快速发现问题。这里说的边缘网络感知,既包括基础的 3、4 层基础网络探测,如 ICMP ping、TCP Ping 等,也包括上层业务探测,http/https 等业务相关的探测。
通过网络探测发现节点问题,关键点是在有限的资源下如何更快地发现问题。在快的同时,也需要解决准和全的问题。
准和快通常是矛盾的两方,一个网络波动可能持续 10 秒,随后又恢复了正常,如果 10 秒就决策逃逸,那么就容易陷入来回波动的场景。需要快和准之间寻找最佳的平衡点。
覆盖全和资源有限又是一对矛盾,CDN 支撑全球几十亿的用户,各种场景很难全覆盖,或者需要极高的代价才能进行全面的覆盖。不断提升探测能力、扩大覆盖范围,也是边缘网络感知的必然之路。
03 边缘网络感知架构
对于网络探测来说,有三个基本组成部分,探测源、探测目标以及探测链路。
探测源是任务的发起方,通过发起多种探测方式探测整个链路。
探测目标是被探测方,它既可能是边缘云自有资源,也可能是业务方目标,还可能是第三方资源,如电信运营商基础资源。
探测链路随着不同场景,覆盖不同的链路,可能是基本的网络链路,也可能包含某个中间链路,还可能是一条端到端链路。针对不同链路进行探测数据分析,得到边缘网络质量的关键信息。
对于边缘网络感知,通常放在一个完整的业务逻辑,包括任务规划、网络探测、数据收集、数据处理,以及最终的业务消费。
04 阿里云的边缘网络感知经历的三个阶段
1.0 骨干网网络感知阶段
CDN 访问的典型场景是,客户访问就近的 CDN 节点,该节点对请求提供服务。当就近节点没有缓存内容的时候,就会向其他 CDN 节点请求或者向源站进行请求对应的资源。宏观上看,CDN 节点间构建了一张庞大的内容传输的骨干网。
骨干网网络感知就是基于边缘节点,针对节点间的网络质量进行感知,当出现问题及时进行逃逸。CDN 骨干网承载节点间中的大量重要数据,类比人体血管的话,就是人体的各个主动脉。骨干网访问出故障会出现全局性的问题,影响全国、全省或者几个地级市的业务。
阿里云 CDN 基于边缘云 3K+节点,针对节点间的网络质量,构建了全球骨干网网络感知系统。现在每分钟运行着几十亿的探测,保障着 CDN 业务的平稳运行。
2.0 全链路感知阶段
全链路感知由最后一公里探测、骨干网探测和源站探测构成。其中最后一公里探测,是客户经常关注的问题。骨干网网络感知解决了 CDN 大范围故障的问题,但是对于某个或某几个节点的问题,仍广泛存在。
随着阿里云 CDN 体量越来越大,小范围的问题也会造成较大的影响。一种典型问题就是,客户上报某某省访问有问题,但是 CDN 侧却不能发现。问题排查下来发现,最后一公里的链路影响了客户的访问。而最后一公里探测能够快速的发现客户测问题。
如何构建最后一公里探测:专用的端探测设备+节点反向网民探测。基于端探测设备,阿里云构建了与客户访问一致的网络感知能力,以此模拟客户的业务访问。端探测设备资源有限,有可能覆盖不全,与节点反向网民探测形成互补。
阿里云基于骨干网探测、端边探测技术以及回源探测能力,构建了全球覆盖的全链路网络感知系统。现在每分钟运行上亿次全链路探测,覆盖了 CDN 节点全量 VIP 网络质量监控。
3.0 智能分析网络感知阶段
构建网络拓扑,并基于网络拓扑进行网络问题的分析。
国内运营商的网络是相对简单的。三大运营商都是集团、省公司、市公司的结构,对应的网络也是分层的,国家骨干网、省级骨干网以及县市的网络。随着阿里云海外业务的不断拓展,网络感知也拓展到海外场景。
新场景新特点:运营商多,BGP IP 多,多线路宣告。什么意思呢?在国内 A 到 B 的访问,通常规划在同一个运营商,是一条规划好的路线,A 从 A 省,到国家层次骨干网,到 B 省,到 B 市,到 B。而在海外不同,A 到 B,有可能经历多个运营商,比如可能是:A->运营商 C->运营商 D->运营商 B->B,也可能是 A->运营商 E->运营商 B->B。不同运营商会设置不同的策略,造成网络访问的复杂度更高。
新问题新思路:在国内探测方法基础之上,增加多线路探测能力,构建海外网络拓扑图,感知所有可达线路的质量。在多条可达链路中进行最优选择,保障客户业务的服务质量。
CDN 节点逃逸效果:针对不同场景,边缘网络感知系统定制了相应的策略。对于重点链路,采用高强度探测,最高做到毫秒级探测,能够实现秒级逃逸;对于大规模问题节点,基于互联网网络波动的特点,实现分钟级逃逸;对于单 VIP 问题,实现十分钟级逃逸。
边缘网络感知一个重要场景是节点逃逸,这也会应用到到其他场景:
| 选路场景。全站加速、直播、组网等业务,都会基于网络状态进行最优路径的选择。网络感知作为选路的基础信息,提供了实时及历史数据,进行最优路径的选择。
| 节点质量分级场景。
| 协议栈优化场景等。
05 总结与展望
基于边缘网络感知的质量大图监控整个边缘云的运行状态,既有实时的问题发现与问题解决,又有长周期的资源质量评价、业务质量评价、技术指标基准等。这些保障着边缘云的健康发展。
全链路探测覆盖了大部分场景,但是还不能做到每个客户的业务都能有对等覆盖的监控。如何更有效的探测,是个值得思考的问题。把边缘网络感知想象成人体的神经系统,它既要无处不在、处处感知,又要能做到重大影响快速感知、快速反应,小的影响有效过滤。