秒懂边缘云 | CDN基础入门:CDN原理及架构

简介: 本文将为您介绍「CDN 是什么」以及「CDN 在用户体验的提升中发挥了什么样的作用」。

背景


互联网业务的繁荣让各类门户网站、短视频、剧集观看、在线教育等内容生态快速发展,互联网流量呈现爆发式增长,自然也面临着海量内容分发效率上的挑战,那么作为终端用户,我们获取资源的体验是否有提升呢?


答案是肯定的。持续改善用户体验的过程中,不仅受益于网络基础设施的建设,云计算产品也肩负着特有的使命。


当前,全球互联网流量一半以上通过 CDN 进行接入,CDN 帮助用户更快速、更安全地消费互联网内容,不管是浏览门户网站、观看短视频和长剧, 还是网上购物、在线学习,背后都有 CDN 在后台加速的身影。尤其在 2020 年春夏新冠肺炎疫情期间,CDN 支撑了上亿个学生的在线课堂学习,成功应对了在线课堂流量相较之前几十倍的增长,使得各级学校实现了停课不停学的目标,实现了巨大的社会价值。


本文将为您介绍「CDN 是什么」以及「CDN 在用户体验的提升中发挥了什么样的作用」


传统网络分发面临的瓶颈与挑战


CDN 并不是互联网诞生之初就一直存在的,而是在支撑各类互联网业务高速发展的过程中应运而生并不断发展壮大的。未使用 CDN 加速时,大量用户请求需要穿越互联网骨干网才能获取源站内容,内容分发常面临着以下几项挑战:


  1. 用户距离源站距离较远,网络链路易拥塞,长距离传输对终端体验并不友好,易出现卡顿、慢速问题。
  2. 源站部署在单线(单个运营商)机房时,跨运营商访问质量差。
  3. 源站部署在 BGP /多线机房时,带宽的成本昂贵,且固定出口带宽时易成为服务瓶颈,突发活动需要扩容。
  4. 内容分发业务需要投入高成本进行服务器配置扩容,并且伴随高并发业务维护的人力成本。



而在业务使用 CDN 加速后,用户可以就近在边缘 IDC 节点下载到所需内容,极大地提升了用户体验,不仅让业务内容分发效率提升,也分担了源站的负载压力,使得源站服务聚焦于对非静态内容的业务处理,能够更加从容地面对突发业务带宽。通过智能回源出口选择,也能够避免单线机房跨运营商访问造成的不稳定性。



同时,相比 BGP 机房的带宽单价,CDN 将分发内容产生的流量成本降低到极致,您也可以通过选购 CDN 资源包享受更多优惠折扣。


CDN 是什么


互联网内容的分发模式与传统商品货物的分发模式有许多共通之处,在介绍 CDN 是什么之前,我们不妨思考一下是哪些因素让日常生活的购买效率更高,时效性更强?


  • 首先,交通工具的便利及道路基建能力的提升,运输效率提升,让货物运输速度更快。
  • 其次,仓储物流能力的建设,货物在多地仓库分布式仓储,位于同地区的多个超市便利店可选择从本地仓库直接进货,而顾客也可以直接在家门口的超市便利店购买所需商品,无需用户和源头生产厂商直接完成订单交易。
  • 最后,售卖点的数量、覆盖范围的扩张也都为购买过程带来了体验上的改善,每个小区门口甚至单元楼都已经覆盖了便民超市,如今最近距离商品交易只需从身边的自动贩卖机就能够完成。


如何更通俗地去理解 CDN 是什么呢,我们也不妨尝试用购买效率提升的思路来帮助理解:CDN 在网络上的作用就像现实中用户身边的自动贩卖机、家门口的超市、各地的集中仓储,让用户可以最近距离很快捷的获取所需商品。


从技术视角出发,CDN 通过多级代理服务器对源站内容(例如 js/css/html/mp4 等)进行缓存,让静态内容缓存在距离用户更近的 IDC 机房节点上,实现用户获取资源的网络距离大幅度缩减,进而提升终端用户体验和传输效率。



CDN 架构及访问流程


如果要实现对全球业务的分发加速,自然需要海量节点储备用于给终端用户提供服务,而作为一个全球化的分布式系统,CDN 对系统性能和稳定性有非常高的要求,当前阿里云 CDN 主要由调度系统、链路质量系统、缓存系统、支撑系统等子系统组成,这些子系统共同构成了 CDN 大脑神经网络来保证 CDN 的日常服务。


  • 调度系统:支持策略中心、DNS、HTTPDNS和302调度模式。当终端用户发起访问请求时,用户的访问请求会先进行域名DNS解析,调度系统将根据用户解析请求中携带的 IP 地址判断其区域、运营商,为用户选择并返回最佳接入节点 IP (DNS 未携带客户端 IP 时,调度根据DNS IP决策)。
  • 链路质量系统:实时监测缓存系统中所有节点和链路的实时负载以及健康状况。调度系统在决策最优节点时,也会综合链路质量、实时负载等因素来为用户分配服务节点。
  • 缓存系统:用户通过收到的最佳接入节点 IP 访问对应的缓存节点,如果节点已经缓存了用户请求的资源,会直接将资源返回给用户。
  • 支撑系统:支撑服务系统包括天眼、数据智能和配置管理系统,分别具备了资源监测、数据分析和配置管理能力。



创建 CDN 加速域名后,CDN 将为您的加速域名分配 CNAME 记录值,您需要将域名解析至 CNAME 记录后才能接入CDN的智能调度系统。在正式接入 CDN 后,终端用户访问时经过的流程大致如下:


  1. 本机 DNS 发起对访问域名的解析查询,加速域名权威DNS将响应您所配置的 CNAME 地址,DNS 继续对CNAME 记录发起查询后,解析结果将根据阿里云调度系统决策,从权威 DNS 中返回最优节点 IP 地址。
  2. 用户本地发起和节点 IP 的建联,建联后开始发送 HTTP 请求,此时访问节点为边缘节点(L1),如果 L1 节点已缓存了用户请求的文件,L1 将直接返回缓存内容给用户,此时请求结束。
  3. 如果边缘节点(L1)没有该文件的缓存,将回源至上层节点(L2)获取资源,如果 L2 节点已缓存用户请求的文件,将直接返回缓存内容给L1,L1响应给用户并将文件缓存到本地,此时请求结束。
  4. 如果 L2 节点也没有用户所请求的文件,L2 节点将根据您在CDN控制台上的配置,回源到您的业务源站拉取资源返回给 L1 ,并将文件缓存到 L2 本地,此时请求结束。

阿里云在全球拥有2800+节点。中国内地(大陆)拥有2300+节点,覆盖31个省级区域;中国香港、中国澳门、中国台湾、其他国家和地区拥有500+节点,覆盖70多个国家和地区。全网带宽输出能力达150 Tbps。阿里云CDN产品通过广泛的地域覆盖和深厚的带宽储备,在全球范围为用户提供安全、稳定、可靠的内容分发服务。



更多边缘云产品资讯欢迎访问【阿里云边缘云】或扫码关注【阿里云Edge Plus】

qrcode_for_gh_0cf3488f3334_258.jpg

边缘云 开启分布式云网融合新时代

相关实践学习
Serverless极速搭建Hexo博客
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
目录
相关文章
|
7天前
|
SQL Java 数据库连接
Mybatis架构原理和机制,图文详解版,超详细!
MyBatis 是 Java 生态中非常著名的一款 ORM 框架,在一线互联网大厂中应用广泛,Mybatis已经成为了一个必会框架。本文详细解析了MyBatis的架构原理与机制,帮助读者全面提升对MyBatis的理解和应用能力。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
Mybatis架构原理和机制,图文详解版,超详细!
|
21天前
|
开发者 容器
Flutter&鸿蒙next 布局架构原理详解
本文详细介绍了 Flutter 中的主要布局方式,包括 Row、Column、Stack、Container、ListView 和 GridView 等布局组件的架构原理及使用场景。通过了解这些布局 Widget 的基本概念、关键属性和布局原理,开发者可以更高效地构建复杂的用户界面。此外,文章还提供了布局优化技巧,帮助提升应用性能。
80 4
|
21天前
|
存储 Dart 前端开发
flutter鸿蒙版本mvvm架构思想原理
在Flutter中实现MVVM架构,旨在将UI与业务逻辑分离,提升代码可维护性和可读性。本文介绍了MVVM的整体架构,包括Model、View和ViewModel的职责,以及各文件的详细实现。通过`main.dart`、`CounterViewModel.dart`、`MyHomePage.dart`和`Model.dart`的具体代码,展示了如何使用Provider进行状态管理,实现数据绑定和响应式设计。MVVM架构的分离关注点、数据绑定和可维护性特点,使得开发更加高效和整洁。
147 3
|
21天前
|
Kubernetes 关系型数据库 MySQL
Kubernetes入门:搭建高可用微服务架构
【10月更文挑战第25天】在快速发展的云计算时代,微服务架构因其灵活性和可扩展性备受青睐。本文通过一个案例分析,展示了如何使用Kubernetes将传统Java Web应用迁移到Kubernetes平台并改造成微服务架构。通过定义Kubernetes服务、创建MySQL的Deployment/RC、改造Web应用以及部署Web应用,最终实现了高可用的微服务架构。Kubernetes不仅提供了服务发现和负载均衡的能力,还通过各种资源管理工具,提升了系统的可扩展性和容错性。
62 3
|
27天前
|
存储 前端开发 测试技术
Android kotlin MVVM 架构简单示例入门
Android kotlin MVVM 架构简单示例入门
28 1
|
1月前
|
消息中间件 关系型数据库 Java
‘分布式事务‘ 圣经:从入门到精通,架构师尼恩最新、最全详解 (50+图文4万字全面总结 )
本文 是 基于尼恩之前写的一篇 分布式事务的文章 升级而来 , 尼恩之前写的 分布式事务的文章, 在全网阅读量 100万次以上 , 被很多培训机构 作为 顶级教程。 此文修改了 老版本的 一个大bug , 大家不要再看老版本啦。
|
1月前
|
容器
Flutter&鸿蒙next 布局架构原理详解
Flutter&鸿蒙next 布局架构原理详解
|
1月前
|
缓存 负载均衡 网络协议
|
1月前
|
存储 分布式计算 druid
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
53 3
|
20天前
|
监控 API 持续交付
后端开发中的微服务架构:从入门到精通
【10月更文挑战第26天】 在当今的软件开发领域,微服务架构已经成为了众多企业和开发者的首选。本文将深入探讨微服务架构的核心概念、优势以及实施过程中可能遇到的挑战。我们将从基础开始,逐步深入了解如何构建、部署和管理微服务。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和实用的建议。
35 0
下一篇
无影云桌面