2.1 CDN的系统架构
2.2 CDN系统分类
2.3 小结
CDN基于这样的原理:1.挑选最优设备为用户提供服务;2.如果某个内容被很多用户所需要,它就被缓存到距离用户最近的节点中。
CDN公司在整个互联网上部署数以百计的CDN服务器(Cache),这些服务器通常在运营商的IDC中,尽量靠近接入网络和用户。CDN在Cache中复制内容,当内容的提供者更新内容时,CDN向Cache重新分发这些被刷新的内容。CDN提供一种机制,当用户请求内容时,该内容能够由以最快速度交付的Cache来向用户提供,这个挑选"最优"的过程就叫做负载均衡。被选中的最优Cache可能最靠近用户,或者有一条与用户之间条件最好的路径。
在本章中,将一一讲述CDN是如何完成内容缓存、负载均衡、流媒体加速、动态内容加速等任务的,以及完成这些任务涉及的各种关键技术。
2.1 CDN的系统架构
2.1.1 功能架构(1)
CDN技术自1998年诞生以来,伴随着互联网的高速发展,其技术一直在持续演进和完善,但基本的CDN功能架构在2003年左右就已基本形成和稳定下来。从功能上划分,典型的CDN系统架构由分发服务系统、负载均衡系统和运营管理系统三大部分组成,如图2-1所示。
首先,来看看分发服务系统。该系统的主要作用是实现将内容从内容源中心向边缘的推送和存储,承担实际的内容数据流的全网分发工作和面向最终用户的数据请求服务。分发服务系统最基本的工作单元就是许许多多的Cache设备(缓存服务器),Cache负责直接响应最终用户的访问请求,把缓存在本地的内容快速地提供给用户。同时Cache还负责与源站点进行内容同步,把更新的内容以及本地没有的内容从源站点获取并保存在本地。
一般来说,根据承载内容类型和服务种类的不同,分发服务系统会分为多个子服务系统,如网页加速子系统、流媒体加速子系统、应用加速子系统等。每个子服务系统都是一个分布式服务集群,由一群功能近似的、在地理位置上分布部署的Cache或Cache集群组成,彼此间相互独立。每个子服务系统设备集群的数量根据业务发展和市场需要的不同,少则几十台,多则可达上万台,对外形成一个整体,共同承担分发服务工作。Cache设备的数量、规模、总服务能力是衡量一个CDN系统服务能力的最基本的指标。
对于分发服务系统,在承担内容的更新、同步和响应用户需求的同时,还需要向上层的调度控制系统提供每个Cache设备的健康状况信息、响应情况,有时还需要提供内容分布信息,以便调度控制系统根据设定的策略决定由哪个Cache(组)来响应用户的请求最优。
负载均衡系统是一个CDN系统的神经中枢,主要功能是负责对所有发起服务请求的用户进行访问调度,确定提供给用户的最终实际访问地址。大多数CDN系统的负载均衡系统是分级实现的,这里以最基本的两级调度体系进行简要说明。一般而言,两级调度体系分为全局负载均衡(GSLB)和本地负载均衡(SLB)。其中,全局负载均衡(GSLB)主要根据用户就近性原则,通过对每个服务节点进行"最优"判断,确定向用户提供服务的Cache的物理位置。最通用的GSLB实现方法是基于DNS解析的方式实现,也有一些系统采用了应用层重定向等方式来解决,关于GSLB的原理和实现方法将在本书第5章进行讲解。本地负载均衡(SLB)主要负责节点内部的设备负载均衡,当用户请求从GSLB调度到SLB时,SLB会根据节点内各Cache设备的实际能力或内容分布等因素对用户进行重定向,常用的本地负载均衡方法有基于4层调度、基于7层调度、链路负载调度等,具体的内容在本书第4章进行讲解
CDN的运营管理系统与一般的电信运营管理系统类似,分为运营管理和网络管理两个子系统。运营管理子系统是CDN系统的业务管理功能实体,负责处理业务层面的与外界系统交互所必需的一些收集、整理、交付工作,包含客户管理、产品管理、计费管理、统计分析等功能。其中客户管理指对使用CDN业务的客户进行基本信息和业务规则信息的管理,作为CDN服务提供的依据。产品管理,指CDN对外提供的具体产品包属性描述、产品生命周期管理、产品审核、客户产品状态变更等。计费管理,指在对客户使用CDN资源情况的记录的基础上,按照预先设定的计费规则完成计费并输出账单。统计分析模块负责从服务模块收集日常运营分析和客户报表所需数据,包括资源使用情况、内容访问情况、各种排名、用户在线情况等数据统计和分析,形成报表提供给网管人员和CDN产品使用者。网络管理子系统实现对CDN系统的网络设备管理、拓扑管理、链路监控和故障管理,为管理员提供对全网资源进行集中化管理操作的界面,通常是基于Web方式实现的。
图2-2是国内第一家CDN服务商--蓝汛(ChinaCache)公司在2005年发布的《CDN技术白皮书》中描述的CDN系统架构,是一套实际的、运行良好的商用CDN系统。我们以该架构为例,与图2-1展示的CDN系统功能架构进行对照分析,帮助读者理解CDN系统的组成。
在蓝汛CDN架构中,CCN(ChinaCache Nod)模块对应于图2-1中的分发服务系统,是CDN 的基本服务模块,由分布于各个城市、各个运营商网络中的Cache设备和辅助设备组成。
GAC(Global Access Controller)模块对应于图2-1中的负载均衡系统,主要采用了智能DNS解析方案,负责通过域名解析应答实现将用户请求调度到最优服务节点的目的。
NOC(Network Operating Center)模块对应图2-1中的网络管理系统,负责对全网进行7×24小时的监控和管理。NOC可以监控ChinaCache CDN中的链路状况、节点响应速度、设备运行状态,也可以监控到客户的源站点运行状况等信息,一旦发现异常马上采取相应措施予以解决,是保障CDN服务安全可靠性的重要系统。值得一提的是,蓝汛的NOC中设置了源站点监控功能,对客户源站进行可达性监控,从而减轻或者避免由于源站故障造成的服务中断。
OSS(Operating Support System)模块对应图2-1中的运营管理子系统,负责采集和汇总各个CCN 的日志记录信息,然后由中央处理软件加以整理和分析,最后通过客户服务门户进行发布。蓝汛的客户可以通过OSS提供的查询界面来查询加速页面或频道的实时流量、流量分布、点击数量、访问日志等信息