OpenStack CDNaaS - Poppy介绍

作者: 赵怡


一、CDN简介

在介绍Openstack poppy组件前先介绍一下CDN。

CDN的全称是Content Delivery Network,即内容分发网络。其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络"边缘",使用户可以就近取得所需的内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因所造成的用户访问网站响应速度慢的问题。

 

CDN的技术原理

1. 传统访问方式

在描述CDN的实现原理,让我们先看传统的未加缓存服务的访问过程,以便了解CDN缓存访问方式与未加缓存访问方式的差别:

 

  由上图可见,用户访问未使用CDN缓存网站的过程为:

  1) 用户向浏览器提供要访问的域名;并把域名解析请求发往本地DNS服务器

  2) 本地DNS服务器将请求发往网站DNS服务器, 返回给本地DNS服务器源站点实际IP

  3) 本地DNS服务器将该IP地址返回给用户

  4) 用户直接访问源站点, 取回请求数据

  通过以上四个步骤,浏览器完成从用户处接收用户要访问的域名到从域名服务主机处获取数据的整个过程。

 

2.CDN访问方式

       CDN网络是在用户和服务器之间增加Cache层,如何将用户的请求引导到Cache上获得源服务器的数据,主要是通过接管DNS实现,下面让我们看看访问使用CDN缓存后的网站的过程:

 

  通过上图,我们可以了解到,使用了CDN缓存后的网站的访问过程变为:

  1) 用户向浏览器提供要访问的域名,域名解析请求被发往本地DNS服务器

  2) 本地DNS服务器将请求发往网站DNS服务器, 由于CDN对域名解析过程进行了调整,所以解析函数库一般得到的是该域名对应的CNAME记录,请求被指向CDN网络中的全球负载均衡集群。

  3) 本地DNS服务器将请求发往全球负载均衡器, 该集群对域名进行智能解析, 将响应速度最快的CDN边缘集群IP返回给本地DNS服务器。(比如 根据地理位置信息解析对应的IP地址,使得用户能就近访问。)

  4) 本地DNS服务器将该IP地址进行本地缓存并返回给用户;

  5) 用户向该CDN边缘集群发出访问请求

  6) CDN边缘集群收到访问请求后, 如果是第一次访问, 那么CDN边缘集群会向源站点取得数据, 并返回给用户, 并缓存

       7) 如果CDN边缘集群有缓存, 且未过期, 则直接把数据返回给用户

 

传统和CDN访问方式对ICP和CDN运营商的影响分析

       通过以上的分析我们可以得到,为了实现既要对普通用户透明(即加入缓存以后用户客户端无需进行任何设置,直接使用被加速网站原有的域名即可访问),又要在为指定的网站提供加速服务的同时降低对ICP的影响,只要修改整个访问过程中的域名解析部分,以实现透明的加速服务,下面是CDN网络实现的具体操作过程。

  1) 作为ICP,只需要把域名解释权交给CDN运营商,其他方面不需要进行任何的修改;操作时,ICP修改自己域名的解析记录,一般用cname方式指向CDN网络Cache服务器的地址。

  2) 作为CDN运营商,首先需要为ICP的域名提供公开的解析,为了实现sortlist,一般是把ICP的域名解释结果指向一个CNAME记录;

  3) 当需要进行sortlist时,CDN运营商可以利用DNS对CNAME指向的域名解析过程进行特殊处理,使DNS服务器在接收到客户端请求时可以根据客户端的IP地址,返回相同域名的不同IP地址;

  4) 由于从cname获得的IP地址,并且带有hostname信息,请求到达Cache之后,Cache必须知道源服务器的IP地址,所以在CDN运营商内部维护一个内部DNS服务器,用于解释用户所访问的域名的真实IP地址;

  5) 在维护内部DNS服务器时,还需要维护一台授权服务器,控制哪些域名可以进行缓存,而哪些又不进行缓存,以免发生开放代理的情况。

 

CDN的网络系统架构

       CDN网络架构主要由两大部分,分为中心边缘两部分,中心指CDN网管中心和DNS重定向解析中心,负责全局负载均衡,设备系统安装在管理中心机房,边缘主要指异地节点,CDN分发的载体,主要由Cache和负载均衡器等组成。

  当用户访问加入CDN服务的网站时,域名解析请求将最终交给全局负载均衡DNS进行处理。全局负载均衡DNS通过一组预先定义好的策略,将当时最接近用户的节点地址提供给用户,使用户能够得到快速的服务。同时,它还与分布在世界各地的所有CDNC节点保持通信,搜集各节点的通信状态,确保不将用户的请求分配到不可用的CDN节点上,实际上是通过DNS做全局负载均衡。

  对于普通的Internet用户来讲,每个CDN节点就相当于一个放置在它周围的WEB。通过全局负载均衡DNS的控制,用户的请求被透明地指向离他最近的节点,节点中CDN服务器会像网站的原始服务器一样,响应用户的请求。由于它离用户更近,因而响应时间必然更快。

  每个CDN节点由两部分组成:负载均衡设备高速缓存服务器

  负载均衡设备负责每个节点中各个Cache的负载均衡,保证节点的工作效率;同时,负载均衡设备还负责收集节点与周围环境的信息,保持与全局负载DNS的通信,实现整个系统的负载均衡。

  高速缓存服务器(Cache)负责存储客户网站的大量信息,就像一个靠近用户的网站服务器一样响应本地用户的访问请求。

  CDN的管理系统是整个系统能够正常运转的保证。它不仅能对系统中的各个子系统和设备进行实时监控,对各种故障产生相应的告警,还可以实时监测到系统中总的流量和各节点的流量,并保存在系统的数据库中,使网管人员能够方便地进行进一步分析。通过完善的网管系统,用户可以对系统配置进行修改。

  理论上,最简单的CDN网络有一个负责全局负载均衡的DNS和各节点一台Cache,即可运行。DNS支持根据用户源IP地址解析不同的IP,实现就近访问。为了保证高可用性等,需要监视各节点的流量、健康状况等。一个节点的单台Cache承载数量不够时,才需要多台Cache,多台Cache同时工作,才需要负载均衡器,使Cache群协同工作。

 

可用CDN商业服务

 

名称

链接

1

Amazon CloudFront

https://aws.amazon.com/tw/cloudfront/

2

Microsoft Ajax CDN

https://www.asp.net/ajax/cdn

3

Google Cloud CDN

https://cloud.google.com/cdn/

4

CloudFlare

https://www.cloudflare.com/cdn/

5

Akamai CDN

https://www.akamai.com/us/en/cdn/

6

Edgecast

https://www.verizondigitalmedia.com

7

fastly

https://www.fastly.com/

8

ChinaCache CDN

http://en.chinacache.com/products/mobile-cdn

9

maxcdn

https://www.maxcdn.com/open-source/

 

可用CDN开源软件

 

名称

链接

1

Nginx

https://www.nginx.com/

2

varnish

https://varnish-cache.org/

2

LuManager

http://www.zijidelu.org/

3

Fikker CDN

http://www.fikker.com/</

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值