CDN技术架构
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

前言

内容分发网络(Content Delivery Network,CDN)是构建在现有互联网基础架构之上的覆盖网(Overlay Network),一方面通过边缘节点缓存减轻骨干网的拥塞情况,另一方面通过边缘节点协同提升网络的抗攻击能力,从而为互联网上的各类App和Web站点等提供动/静态内容加速、实时流媒体加速以及网络安全防护等功能。在2020年,国内各大、中、小学因疫情原因线下停课,转而采用线上课堂的形式继续开展教学活动,CDN平台凭借其遍布全球的边缘加速节点、全面的内容加速能力以及智能的流量实时调度系统,成功支撑了在线课堂网络流量几十倍地迅猛增长,助力实现了“停课不停学”的目标,创造了巨大的社会价值。

阿里云CDN起源于自有电商业务的图片加速,经过阿里巴巴集团历届“双11”高并发场景的不断打磨,其技术能力显著提升、网络规模快速扩大,逐渐发展为节点遍布全球的大型CDN平台。当前,CDN已经融入我们日常生活的方方面面,不管是网上购物、观看短视频或直播、听在线音乐,还是浏览网页,后台往往由CDN在提供加速及安全能力支撑。我在服务海内外客户及进行人才招聘的过程中,发现不管是CDN的客户、合作伙伴,还是希望进入CDN行业工作的应届毕业生或社招技术人员,对CDN的体系架构、核心模块、产品功能、应用场景等往往存在着或多或少的疑问或者理解不透彻的地方。其原因大致可分为两个方面:一方面是因为CDN作为一个大规模的分布式系统,其技术非常复杂,不易理解;另一方面是因为市面上能体系化阐述CDN前沿技术、最佳实践的书籍太少,学习资料缺乏。为此,阿里云CDN团队组织了几十名一线技术和产品专家合力撰写了《CDN技术架构》这本书,从CDN的基础技术、核心产品、最佳实践场景及未来边缘计算平台演进四个方面总结了阿里云CDN在过去十余年中取得的技术和产品化进展,希望能增进大家对于CDN技术和产品的理解,通过交流和分享共同推动CDN行业的发展与技术进步。

本书共包含14章,具体可划分为4个部分:第1部分由第1章组成,简要介绍了CDN核心产品(动态加速、静态加速及安全防护等)的技术原理及应用场景,以及CDN在互联网架构中的定位和CDN的发展历史;第2部分由第2~6章组成,主要从调度系统、节点系统、网络传输以及运营支撑4个方面对CDN平台的核心技术进行介绍;第3部分由第7~12章组成,详细阐述了CDN四大产品(视频点播、实时流媒体、动态加速以及安全防护)的产品架构设计及功能详解,以及CDN产品的场景化优化最佳实践;第4部分由第13~14章组成,主要阐述阿里云CDN平台的技术演进策略,包括CDN核心技术的演进方向,以及CDN向边缘计算平台的演进策略等。

各章内容的具体介绍如下。

● 第1章 引言

本章主要围绕“什么是CDN”“CDN能做什么”“互联网为什么需要CDN”这三个问题展开论述。CDN是构建在已有互联网基础设施之上的大规模分布式“覆盖网”,为各类互联网数字内容(包括视频、文本及实时流媒体等)提供动/静态加速及安全防护能力。在互联网中心侧,CDN通过减少数字内容的冗余传输来缓解骨干网的拥塞;在互联网边缘侧,CDN通过数字内容前置及就近调度来加速边缘下载速度。本章首先简述CDN三大核心能力(动态加速、静态加速及安全防护能力)的工作原理及应用场景,然后介绍CDN在互联网技术架构中的定位及作用,最后简述了CDN的发展历史。

● 第2章 CDN系统架构概述

本章介绍CDN系统的整体技术架构及四大核心子系统,包括流量调度系统、节点软件系统、网络传输系统及运营支撑系统。调度系统主要解决海量用户与CDN节点的匹配问题,既加速边缘下载速度又保持CDN节点在各个维度(带宽、CPU、存储、I/O等)的负载均衡。节点软件系统主要解决互联网业务的高并发接入及产品功能的灵活实现问题,提供高性能、高可靠的CDN服务。网络传输系统主要解决互联网内容的快速分发问题,通过优化TCP/IP协议栈来提升下载速度。运营支撑系统为CDN平台提供计费结算、运营分析、客户服务及决策支持等功能。

● 第3章 调度系统

本章详细介绍阿里云调度系统的关键组件与核心算法。首先介绍资源规划模块,该模块通过资源画像与业务画像来实现资源与业务的最佳适配。接着介绍负载均衡模块,其通过DNS、HTTPDNS以及302跳转三种流量牵引方式实现节点资源(带宽、CPU、存储和I/O等)的综合负载均衡。然后,对DNS和IP调度服务器的系统架构和关键模块进行详细介绍。最后,对全局感知系统进行阐述,包括CDN服务可用性及实时覆盖质量的感知。

● 第4章 CDN节点系统

本章详细阐述CDN节点系统的核心软件,包括接入域网关及缓存系统等。首先阐述了节点架构的演进过程,当前阿里云CDN采用多级缓存架构,具备异构资源接入及流量网状转发能力,能灵活、高效地支撑业务功能定制、成本与质量优化等。接下来阐述接入域网关组件,从HTTP/2、HTTPS等方面进行详细介绍。然后介绍回源域组件。最后重点介绍CDN缓存系统,包括架构设计及高性能软、硬件一体化缓存算法的设计与实现。

● 第5章 CDN网络优化

本章介绍TCP/IP传输层优化技术。首先介绍网络传输优化面临的挑战,然后以BBR算法为代表阐述网络拥塞控制的原理,接着以DUPACK、SACK、FACK等技术为例介绍网络丢包恢复原理,最后介绍网络旁路干扰技术,包括旁路干扰设备的部署、干扰原理及具体案例等。

● 第6章 CDN运营支撑

本章介绍CDN运营支撑系统,包括管控系统、配置管理系统、内容管理系统、监控系统、日志系统等。首先从用户管理、域名管理及CDN控制台三个方面介绍管控系统;接着从用户配置、软件配置两个方面介绍配置管理系统;然后从基础能力、内容刷新、内容预热、内容封禁四个方面介绍内容管理系统;接下来是监控系统介绍,重点介绍智能化监控技术方案;最后是日志系统,介绍日志系统面临的挑战、常见数据交付场景及边缘分析加速等。

● 第7章 CDN产品概述

本章主要对CDN的四大核心产品进行概述。7.1节介绍视频点播产品功能及发展历史;7.2节从直播发展的四个阶段、直播全链路七大环节及五种主流的流媒体协议等不同角度对CDN直播产品进行详细介绍;7.3节介绍动态加速产品的业务场景及产品能力;7.4节从常见的安全风险类型及CDN安全防护体系构建两大角度对安全防护产品进行简要介绍。

● 第8章 CDN视频点播

本章详细介绍CDN点播产品。首先介绍视频点播的应用场景,包括视频拖曳、动态转封装、试看试听、听视频等;接着介绍视频点播的核心技术,包括自适应限速、节点限流、点播防盗链、点播封禁等。

● 第9章 CDN实时流媒体

本章详细介绍实时流媒体产品功能、应用场景及技术架构。首先介绍三大主流实时流媒体协议——RTMP、HTTP-FLV、HLS;接着介绍实时流媒体的典型应用场景,包括实时音视频(例如连麦、云会议)及视频直播(包括P2P直播);然后对实时流媒体的系统架构进行详细介绍,包括传统的三层树状结构及最新的网状结构;最后介绍实时流媒体创新技术,包括QUIC传输协议、GRTN新一代传输网等。

● 第10章 CDN动态加速

本章详细介绍动态加速这款产品的加速原理、应用场景及技术架构。首先从传输组网、协议栈优化的角度介绍动态加速的原理;接下来介绍动态加速的典型使用场景,包括电商、社交、政企、游戏、金融等;然后介绍动态加速的技术架构,紧接着阐述动态加速的核心技术,包括网络探测、智能选路、流量规划等;最后,分别对四层加速、七层加速的软件组件进行详细介绍。

● 第11章 CDN安全防护

本章详细介绍安全防护产品的技术架构、使用场景。首先从中心安全大脑、边缘智能防御两方面介绍安全防护整体架构;然后介绍四层负载均衡及DDoS防护,四层负载均衡设备具备SYN Flood防御、分片攻击防御、会话检测、畸形报文检测及协议合规检测等安全功能,DDoS防护的核心技术包括边缘加速、智能调度、大流量防御;最后介绍应用层安全,涵盖精准访问控制、区域封禁、IP频次控制、机器流量管理等。

● 第12章 CDN场景化最佳实践

本章主要介绍典型的CDN场景化最佳实践案例。12.1节介绍CDN命中率优化实践,对共享缓存、刷新和预热、分片缓存及调度流量收敛等各类命中率优化手段进行详细介绍。12.2节介绍应用市场下载加速最佳实践,对资源池化与逻辑隔离、302调度、HTTPDNS调度、一致性Hash(哈希)回源等手段进行详细介绍。12.3节介绍超低延时互动课堂及点播加速最佳实践,基于教学视频点播、大班课/公开课直播及小班课实时音视频直接交流的场景进行详细阐述。12.4节介绍动态加速最佳实践,针对新闻媒体类客户具有的传播广、用户杂、实时性要求高、突发性高的特点介绍动态加速的优化措施。

● 第13章 CDN未来技术演进

本章主要介绍CDN核心技术的演进方向。5G高带宽、低延迟边缘接入技术的发展对CDN提出了更高的要求,为此,首先从传统架构存在的问题、技术架构选型和云原生CDN架构设计三个方面介绍节点技术架构的演进思路,接着分别从调度系统、中台技术及边缘可编程三个方面对CDN的核心技术演进进行详细介绍。

● 第14章 CDN与边缘计算

本章探讨边缘计算的内涵与外延,以及CDN与边缘计算的融合进展。14.1节详细讨论边缘计算的具体定义、技术架构、核心能力、运维管控、核心技术及应用场景等;14.2节介绍阿里云CDN基于ENS(Edge Node Service,边缘节点服务)构建vCDN节点的技术方案及工程实践,vCDN节点与物理节点相比,具有弹性扩/缩容、快速交付等优点。

本书是阿里云CDN团队集体创作的结晶,鉴于本书作者水平有限,书中错误和疏漏之处在所难免,恳请广大读者批评指正。

邓光青

2021年12月31日于北京