阿里云CDN架构技术(一)

news/2024/8/26 17:27:50 标签: 阿里云, 架构, 云计算

CDN补充

cdn内容分发网络(content delivery network,cdn)
构建在互联网TCP/IP四层模型之上对用户透明的覆盖网。

该网络通过全球范围内分布式部署边缘服务器,将互联网内容从互联网中心缓存到靠近用户的边缘服务器上,降低用户访问时延长减少穿越互联网核心网的流量:优化互联网流量分布,提升用户终端服务质量

电商,金融交易动态业务加速崛起,以及新冠高校突然暴增线上(网课),cdn起到了巨大的作用,也是2018年至现在最重要的一个企业架构部署环节!

cdn通过动态路由规划,协议传输等技术进行传输加速,DDOS(Distributed denial of service,分布式拒绝攻击)网络攻击事件不断涌现,cdn基于其广泛的边缘节点,结合智能攻击流量检测及流量清洗技术(避免攻击流量把内容源站打垮,保证互联网公司业务运行)

cdn基本原理

互联网超过50%流量通过cdn进行加速,今年暴增业务:门户网站,短视频,长剧,购物,在线学习,cdn支撑上亿学生学习(新冠疫情突发,各高校线下课转到了线上课,钉钉软件突然出现系统崩溃,随后官方也是加急修复,原因:平时用户业务访问流量没有超过该公司所预期,突然全部转为线上,用户访问流量从原来几倍直接突变为几十倍速率,对该软件后台数据库,带宽,加速业务带来了巨大挑战,也是因为新冠事情,现中型企业更加更加重视cdn服务)

CDN相对于底层IP网,提供动态加速,静态加速,安全访问三个核心能力
在这里插入图片描述

动态内容加速原理

动态:对于不能缓存内容(电商实时推荐,账号密码认证–用户通过前后端,数据库进行交互),可以通过优化路由进行加速

静态:可缓存内容(图片,短视频,大文件)进一步通过缓存来实现以存储空间换带宽目的,大幅度降低传输时延

动态内容加速示意图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
CDN服务端:调度系统,节点系统,支撑系统—解决各类用户 请求与cdn边缘节点的适配问题

(1.缩短互联网用户的访问时间延长问题 2.保证CDN边缘节点之间的负载均衡 )

调度系统:解决用户请求CDN边缘节点之间的负载均衡

节点系统:被动缓存、主动预取技术-》大部分互联网用户请求实现边缘响应(实行加速)(同时通过多级缓存减少回用户源站流量)

CDN动态内容加速的应用场景

电子商务、互动论坛博客为代表的互联网业务存在大量不能缓存、需要实时回源的动态内容加速场景。例如,电商平台涉及了用户注册、登录、在线支付、秒杀等需要动态加速的场景

CDN维护:实时路由探测系统,实时链路质量信息,考虑路由优选与链路负载均衡因素(计算出最佳线路)
在这里插入图片描述

CDN的静态内容加速

静态内容加速特点:高性能,灵活度高;

大型CDN厂商:上千万级别边缘节点+高性能缓存软件=热点内容90%以上的边缘hit(命中率),缩短响应时间,提升用户体验

大文件、图片以及在线点播业务的本质:通过互联网,将静态文件内容从内容生产者分发给终端用户

在这里插入图片描述

安全防护

政府,金融,游戏加速:需要保障防止遭受DDOS,CC(Challengecollapsar)攻击;互联网金融业务,金融数据是恶意爬虫攻击的首要对象,其站点性能、网站安全以及内容安全需要同时兼顾
在这里插入图片描述

CDN技术为什么很厉害

  1. CDN在原有互联网技术上构建:分布式覆盖网(弥补原有互联网在内容加速及安全访问方面的不足–提升电商,游戏,短视频等)
  2. 互联网设计理念:
    网络互联:通过一套标准的网络协议把异构的各类自治域网络连接在一起
    在这里插入图片描述

尽力而为:互联网具有与电信网不一样的运行机制,通过“存储转发”而不是链路独享的方式向互联网用户提供尽量可靠的服务质量

CDN出现之前:出现问题

  1. 自制域网络之间随用户与内容服务器之间的距离增加,服务质量不断下降
  2. 跨自制域流量传输遭遇质量降级,传输失败
  3. 出现大量冗余互联网流量不断·穿越基于BGP(边界网关协议,造成核心网络链路拥塞—降低服务质量级)
    4.技术出现之前都是端到端的,不能减少互联网内容在跨域骨干网上的重复传输

需要解决:

减少跨区域核心流量网的冗余传输,提升用户的体验性能,核心的诉求是:更高的可靠性,可扩展性

解决方式:

  1. 重新设计并部署新的互联网协议
  2. 在已有的协议基础上构建一个覆盖网,弥补设计不足
    CDN技术应用而生

CDN系统架构概述

CDN整体框架

在这里插入图片描述

CDN调度系统

DNS、HTTPDNS调度解析服务,节点资源调度服务,调度策略维护,直播、点播、动态加速等产品线提供核心调度能力,资源状况实时调整调度策略

CDN节点系统

缓存服务、安全防护、日志收集、状态检查、内容管理等

节点点播架构采用Tengine+Swift模式,包括业务逻辑控制、缓存控制等功能;
直播架构采用Tengine+live模式:提供直播边缘推流及播放端拉流等相关服务

CDN运维支撑系统

提供数据交换,中心服务,
提供日志分析、天眼监控、域名配置管理、节点配置管理、内容管理及对外的API服务,与节点系统、调度系统、用户控制台之间建立数据交换通道

用户控制台

用户提供自助接入CDN服务的便捷窗口,包括CDN接入域名配置、实时/离线监控数据、日志下载、资源刷新与预热,以及直播、点播业务配置。

CDN业务场景

  • 直播对时延和卡顿:网络抖动的忍受度很低
  • 点播仅对卡顿有严苛的要求,可通过调控视频播放器缓冲器(buffer)的大小在一定程度上抵消网络抖动的影响
  • 电商、微服务接口、交易类业务,内容请求都通过HTTPS来保护内容传输安全,且用户请求的QPS(Query Per Second,每秒请求数)高度并发,属于算力密集型业务。其对CPU算力的需求很大
  • 点播、下载类业务,单文件的大小比较大,呈现出流量CDN平台上,节点资源呈现出集群数量庞大、单集群规模小、广域分布、异构构成[网络、存储、计算的容量规格和QoS(Quality of Service,服务质量)都有差异]等特征密集型的特征,CPU算力的需求较小

阿里云cdn调度系统架构
在这里插入图片描述
全局负载均衡模块:在成本规划模块给定成本线与资源调度模块划定业务节点集合,生成全局调度策略。

调度执行器是执行全局负载均衡调度策略的调度服务器组件,包含DNS执行器、HTTPDNS执行器、302执行器等。这三种组件对应三种不同的用户请求调度牵引方式,即LDNS(Local DNS,本地域名服务器)牵引、App端绕过DNS自行解析牵引、302跳转牵引

节点软件

节点软件在CDN系统中作为用户数据流的核心通道,包括从最开始用户流量的接入,到资源的缓存,再到未命中资源的回源拉取

  • 提供高性能、稳定的接入网关
  • 提供高性能、稳定的缓存服务,在NVMe(Non-VolatileMemoryexpress)、SSD(Solid State Disk)、SATA(Serial Advanced Technology Attachment)盘等不同硬件上实现不同的淘汰算法,最大限度地挖掘软件性能。
  • 提供高性能、稳定的回源服务,在不同网络状况下保证回源的稳定性

稳定和高性能是提供大规模服务能力的前提,丰富的产品化功能是满足海量用户需求的基础,可编程能力扩展是阿里云CDN节点软件的优势

阿里云CDN给出的节点软件示意图,主要分成接入网关、缓存组件、回源组件三大部分。
在这里插入图片描述

网络传输

网络传输是影响CDN传输性能的关键系统。基于优质的节点资源和良好的调度策略,网络传输优化技术可在原基础上再大幅提升传输速率、缩短首屏时间、降低卡顿率,给用户带来更顺畅的体验。

在这里插入图片描述
网络传输优化不仅影响用户与L1边缘点之间的传输性能,也影响L1、L2内部的传输。而如果开启回源加速,则还能提升到源站的传输性能。通常用户与L1之间的网络传输基于TCP等传输协议,此时L1节点开启单边加速,即优化只在服务器侧进行。而如果用户接入了CDN的SDK(Software Development Kit)或其他支持双边加速的私有协议,则优化同时在服务器和客户端两侧生效。与单边加速相比,双边加速通常对性能的提升空间更大、更加灵活。在CDN内部,例如L1、L2之间,单边/双边加速同时存在,可灵活切换。而在L2与源站之间,CDN可以基于链路质量探测、动态路由等技术选择一条连接源站最快、最稳定的线路,从而实现回源加速。

CDN还支持扁平化的结构。在此结构中,不再严格区分L1、L2、L3等,而是基于链路质量、节点容量、节点负载等动态选择一条路径。这条路径可以只处于CDN节点间,也可以直达源站。

网络传输优化的重点在三个方面:拥塞控制、传输协议与选路方式。拥塞控制与传输协议互相配合,可以最大化利用链路带宽或最小化传输时延等,而选路可改善链路质量,提升传输能力的上限。阿里云CDN网络传输优化的架构示意图。不同类型的业务对网络传输的需求侧重点不同,比如静态下载类业务需要提升下载速率,而点播、直播类业务需要降低卡顿率。为了对不同业务做有针对性的优化,节点软件会根据配置中心的配置,将业务特征的相关信息下发到传输层,供传输层进行决策。不同节点、不同时间段,链路质量也存在差异,通过链路质量探测等手段,将链路质量的变化及时通知传输层,可使网络传输优化策略更适应多变的网络环境。传输层最终根据业务特征和当前链路质量,从加速策略库中选择最合适的加速策略,从而达到具有针对性优化的效果。加速策略的内容包括拥塞控制算法及其参数、选择传输协议及是否使用动态选路等。而每次传输结束后,将记录相关信息和决策,并记录日志。离线的机器学习平台将分析传输层日志,自动优化加速策略库,从而形成闭环。

在这里插入图片描述


http://www.niftyadmin.cn/n/5558320.html

相关文章

Dart语法问答到实践

语法问答 Dart语法输出调试信息的方法叫? print Dart语言里定义抽象类的关键字是? abstract Dart语言里String转Int的方法是? int.parse Dart语言的数据类型String是首字母大写,而int是首字母小写? 受c/c和java的影响&…

蓝桥杯14小白月赛题解

直接输出pi/ti,for遍历 #include <iostream> using namespace std; #define int long long int a,b,c ; double t1.00; signed main() {cin>>a;int an0;for(int i1;i<a;i){cin>>b>>c;if(t>c*1.00/b){tc*1.00/b;ani;} }cout<<an<<e…

导航专业入门,高考/考研假期预习指南

导航专业入门&#xff0c;高考/考研假期预习指南 七月来临&#xff0c;各省高考分数已揭榜完成。而高考的完结并不意味着学习的结束&#xff0c;而是新旅程的开始。对于有志于踏入IT领域的高考少年们&#xff0c;这个假期是开启探索IT世界的绝佳时机。作为该领域的前行者和经验…

swiper插件轮播图使用方法(保姆级)

一、swiper下载 swiper官网 可以按自己的需求来下载 一般都是下载最新版本 二、swiper使用方法 1. 解压找到这两个文件&#xff0c;放到vscode对应的文件夹里面&#xff0c;记得在代码中应用这两个文件(我使用的是vscode) 这些轮播图样式都可以自己选择 也可以在官网的在线演…

ArkUI组件——循环控制/List

循环控制 class Item{name: stringprice:number}private items:Array<Item> [new Item("A0",2399),new Item("BE",1999),new Item("Ro",2799)] ForEach(this.items,(item:Item) > {})List组件 列表List是一种复杂的容器&#xff0c;…

字典树实现

一、字典树 字典树&#xff08;Trie树&#xff09;是一种多叉树结构&#xff0c;每条边代表一个字符&#xff0c;从根节点到其它节点的路径构成一个单词。其具有较好的查询性能&#xff0c;可以用于有效地存储大量字符串&#xff0c;并支持高效的查找、插入和删除操作。 二、…

Python项目部署到Linux生产环境(uwsgi+python+flask+nginx服务器)

1.安装python 我这里是3.9.5版本 安装依赖&#xff1a; yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make -y 根据自己的需要下载对应的python版本&#xff1a; cd local wget https://www.python.org/ftp…

YOLO--置信度(超详细解读)

YOLO&#xff08;You Only Look Once&#xff09;算法中的置信度&#xff08;Confidence&#xff09;是一个关键概念&#xff0c;用于评估模型对预测框内存在目标对象的信心程度以及预测框对目标对象位置的准确性。 一、置信度的定义 数值范围&#xff1a;置信度是一个介于0和…