简单cdn之二

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介:





作者:田逸(sery@163.com

7.1.4  cdn 的基本原理
 
Cdn的基本原理可概括为:内容缓存、就近访问以及以dns视图方式根据用户来源确定其访问位置。
 
      内容缓存:缓存服务器从源站取得所需数据,然后暂存在本地的硬盘或内存。使用这种缓存机制的好处是:(1)内容自动更新;(2)无多个服务器数据相互同步问题。
      就近访问:让用户的访问请求转向到离用户最近或最易于访问的缓存服务器。
      dns视图方式根据用户来源确定其访问位置:即让电信的用户访问电信的缓存服务器,网通用户访问网通的缓存服务器。
 
7.1.5   什么是简单 cdn
 
简单cdn这个概念,是相对于复杂cdn来定义的。因此,我们先来了解一下什么是复杂的cdn
 
笼统一点的讲,cdn服务提供商所运营的环境,就是复杂cdn。就缓存服务器而言,其结构是分层次的,一般可划分成核心节点和边缘节点。并且同一层级的相邻节点之间又可形成姐妹关系,亦即在同一个集群下的节点互为姐妹关系。为了保证最高的性能能和效率,不建议跨网或跨物理范围的节点形成姐妹关系。为了更直观的理解这个结构和由此产生的好处,我在这里以一个最长访问路径的图示来说明:
7-2  缓存服务器相互关系
1、   用户向某边缘服务器(边缘A)发起访问请求,所需内容没有被缓存。
2、   边缘服务器(边缘A)于是询问其邻居,是否缓存了用户所需的请求对象,邻居节点也没有缓存所需的对象。
3、   边缘服务器(边缘A)转而向某个父节点(核心A)请求文件,如果该父节点仍然无所需的文件,则该父节点询问其邻居;如果邻居也没有所需的文件,则把请求转给源站。
4、   源站返回数据给核心节点(核心A),并缓存数据在该节点。
5、   核心节点(核心A)返还数据给边缘节点(边缘A),并缓存数据在该节点。
6、   边缘节点返还数据给用户,一次最长路径的访问完成。
这种分层次的机制,既能保证最高的可用性,又能最大限度的减少向上一级节点的网络流量。
 
除了缓存服务器结构上的差异外,复杂cdn还具备以下一些特性:
(1)        缓存服务器布点范围广,服务器数量庞大。
(2)        复杂的日志处理系统。因为计费依赖于访问日志。
(3)        详细的视图划分。例如精确到每个省的ip地址段。
(4)        预加载机制。
 
当我们了解清楚复杂cdn以后,再来了解简单cdn就容易多了。所谓简单cdn,就是节点层次简单、服务器数量有限、能实现有限规模站点加速和发布的平台。通常情况下,我们不必为实现cdn带来的好处而部署复杂的cdn系统,这将花费巨大的人力物力。把复杂的cdn简化,使之符合我们的业务需求,是本章“简单cdn”撰写的用意所在。
 
 
7.2 简单 cdn 设计
 
先申明一下,本文所设计的简单cdn只是一个样例,并非适用于所有的场景。读者可根据我的思路,设计出更适合自己应用环境的简单cdn
 
7.2.1   简单 cdn 设计的基本原则
 
简单cdn设计主要考虑以下几点:
(1)        选点合理,能覆盖大部分网络用户。最起码得在电信和网通机房放置缓存服务器,如果经费充裕,把教育网也考虑进来。
(2)        系统本身具备很好的高可用特性。用户的访问主要集中在缓存服务器,缓存服务器之间使用集群技术就能得到比较高的系统可用性。
(3)        核算自建简单cdn的成本,使之有较好的性价比。如果自建一个cdn远比购买cdn服务商所花费的资金还高(目前国内商用cdn每兆带宽为50/月,基数是 1G ),基本上没必要自己建立cdn了。
(4)        系统应该具备很好的伸缩能力,以适应各种业务变化。如增加布点、增加设备、增加站点等等。
 
7.2.2   需求描述
 
欲对三个web服务进行加速,为了描述方便,使用域名来进行说明。这三个加速站点为图片站点 images.sery.cn、下载站点dl.sery.cn、主站 www.sery.cn3个站点全部是静态内容,其页面文件主要是.html(htm).execssjpegjs等,非常适合被缓存。
 
服务的主要目标用户包括电信线路的用户、网通线路的用户、教育网的用户,其他线路的用户(如科技网、长城宽带等)访问请求被转向到网通线路的缓存服务器。为了实现这个目标,我们可能需要放置4组服务器来做缓存,即电信一组,网通2组,教育网一组。
 
7.2.3   简单 cdn 设计
 
需求明确之后,接下来的设计工作包括:布点选择、工具选取、cdn结构设计等几部分。
 
      布点选取
布点包括源站、全局智能dns、缓存服务器集群。
(1)        源站及全局智能dns选择互联互通性较好的第三方bgp机房;因为使用cdn服务的站点数量有限,故在缓存服务器以主机名的方式寻址源站。
(2)        缓存服务器共4组,选择二线或三线城市的机房托管,能节省大量的资金北京、上海等城市带宽价格大概在300~400//月,而偏远一点二三线城市(如安阳) 1G 带宽的年总费用才8-10万。
 
      工具选取
工具包括操作系统、dns软件、缓存服务器软件、负载均衡软件、源站软件以及定制的脚本。
(1)        所有的服务器均使用32位的centos 5.x。曾经使用过64位的系统,但在执行缓存服务器的缓存清理操作时,有些小问题。
(2)        Dns使用bind- 9.4.0 。低于9的版本,可能不支持视图view,没有视图功能,智能dns就无法实现。不知道其他的dns软件有没有支持视图view的,愿知者告知。
(3)        缓存服务器有两种选择,一种是squid,另一种是varnishSquid多用在复杂cdn场景,它能实现缓存服务器间的层级关系(邻居形成姊妹、边缘节点与核心节点形成父子关系),功能强大而配置复杂;Varnish为后起之秀,配置简单而性能卓越,维护起来比较简单,因此本案选择varnish作为缓存工具【注1
(4)        负载均衡由ipvsadmkeepalived两部分组成。ipvsadm是核心,负责包转发和负载分摊;keepalived为框架,负责故障隔离和失败切换failover
(5)        可做web服务的软件比较多,因为站点为简单的静态文件,选择nginx比较省事。
(6)        定制脚本主要目的是自动刷新缓存服务,把这个脚本放在摸个服务器上,只需执行一次(也可使用crontab自动调用)就能实现所有缓存服务器的缓存清理。
 
      cdn结构设计
 
我们可根据cdn的角色来设计整个结构,这些角色包括:源站、智能dns及缓存服务器3大部分,根据布点选择和其他因素综合考虑,我们可绘出整个cdn的布局结构图。
7-3 cdn 服务器布局
从图中可以看出有2组缓存服务器放置在网通机房,这两组服务器不在同一个物理位置,这样做主要目的是:bind规划视图view时,能收集到的地址比较有限,不在收集列表的其他ip地址段,则统统转发给网通B机房的服务器;另外网通B机房的带宽比较便宜,机器数量也比较多,跟其他网段的互联互通还可以。
 
(1)        源站
源站为内容的原始发布,尽管采用cdn技术以后源站的负荷会变得很小,但为了有较高的可用性,可把它部署成负载均衡集群。
 
2)智能dns
智能dns是用来实现用户访问转向功能,即通过建立访问列表,判断用户的访问来源,确定其访问对象的位置。在本案中,我建立电信、网通、教育网三个ip地址列表,未在这三个列表的称为其他;每个列表关联一个bind的视图view,那么一共就有4个视图view。地址列表可以自己收集,也可以花钱购买,地址列表越大,dns定向准确性越高。在这里强调一下:ip地址列表为客户dns服务器所在网段的列表,而不是用户接入网络的ip段。客户端计算机所设定的dns,通常称为用户本地dns。同样,为了使其有较高的可用性,dns采用主从同步的架构。
 
以下内容省略.
简单Cdn实现
简单cdn功能测试
简单Cdn监控
简单cdn维护
其他
 













本文转自sery51CTO博客,原文链接:http://blog.51cto.com/sery/259635  ,如需转载请自行联系原作者

相关实践学习
Serverless极速搭建Hexo博客
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
相关文章
|
6月前
|
前端开发 JavaScript 数据中心
盘点经典CDN
盘点经典CDN
63 0
|
2天前
|
缓存 搜索推荐 调度
什么样的CDN才算是一个好的CDN
CDN,即内容分发网络,通过分布于各地的服务器节点加速静态资源的加载,如图片、视频及网页文件等。好的CDN应具备泛解析、自定义HTTPS、隐藏源IP、缓存加速、SEO优化、Gzip压缩、智能调度、全球加速及防盗链等功能,确保高效、安全、稳定的用户体验。
14 0
|
1月前
|
缓存 边缘计算 应用服务中间件
一篇文章让你搞懂到底什么是 CDN
一篇文章让你搞懂到底什么是 CDN
34 1
|
6月前
|
域名解析 网络协议 安全
CDN的基本概念介绍
CDN的基本概念介绍
175 0
|
4月前
|
域名解析 存储 网络协议
你知道CDN是什么吗?本文带你搞明白CDN
你知道CDN是什么吗?本文带你搞明白CDN
419 1
|
6月前
|
缓存 网络协议 Serverless
阿里云CDN简介和使用流程
本文档介绍了如何在阿里云上配置和使用CDN服务。首先,需要注册并实名认证阿里云账号,然后购买CDN服务。接着,添加要加速的域名,通过CDN控制台和阿里云云解析DNS进行配置,并验证CNAME设置是否生效。之后,配置源站信息,可以选择OSS域名、IP、源站域名或函数计算域名作为源站。最后,设置缓存规则,如缓存过期时间、状态码过期时间、自定义HTTP响应头等,以优化资源访问效率。
阿里云CDN简介和使用流程
|
域名解析 缓存 负载均衡
CDN实践配置+原理篇
CDN实践配置+原理篇 前几天配置了下自己在阿里云的对象存储中的CDN加速,这里记录写个教程为引入,来讲解一下CDN的相关原理及过程,希望对你有所帮助
865 0
|
域名解析 机器学习/深度学习 缓存
秒懂边缘云 | CDN基础入门:CDN原理及架构
本文将为您介绍「CDN 是什么」以及「CDN 在用户体验的提升中发挥了什么样的作用」。
5715 1
|
域名解析 边缘计算 缓存
CDN 概述|学习笔记
快速学习 CDN 概述
CDN 概述|学习笔记
|
缓存 监控 安全
CDN 服务功能介绍|学习笔记
快速学习 CDN 服务功能介绍
CDN 服务功能介绍|学习笔记
下一篇
无影云桌面