CDN系统设计的首要目标是尽量减少用户的访问响应时间,为达到这一目标,CDN系统应该尽量将用户所需要的内容存放在距离用户最近的位置。也就是说,负责为用户提供内容服务的Cache设备应部署在物理上的网络边缘位置,我们称这一层为CDN边缘层。CDN系统中负责全局性管理和控制的设备组成中心层,中心层同时保存着最多的内容副本,当边缘层设备未命中时,会向中心层请求,如果在中心层仍未命中,则需要中心层向源站回源。不同CDN系统设计之间存在差异,中心层可能具备用户服务能力,也可能不直接提供服务,只向下级节点提供内容。如果CDN网络规模较大,边缘层设备直接向中心层请求内容或服务会造成中心层设备压力过大,就要考虑在边缘层和中心层之间部署一个区域层,负责一个区域的管理和控制,也保存部分内容副本供边缘层访问。
图2-3是一个典型的CDN系统三级部署示意图。
节点是CDN系统中最基本的部署单元,一个CDN系统由大量的、地理位置上分散的POP节点组成,为用户提供就近的内容访问服务。CDN节点网络主要包含CDN骨干点和POP点。CDN骨干点和CDN POP点在功能上不同,中心和区域节点一般称为骨干点,主要作为内容分发和边缘未命中时的服务点;边缘节点又被称为POP(point-of-presence)节点,CDN POP点主要作为直接向用户提供服务的节点。但是,从节点构成上来说,无论是CDN骨干点还是CDN POP点,都由Cache设备和本地负载均衡设备构成。
在旁路方式下,有两种SLB实现方式。在早期,这种SLB一般由软件实现。SLB和Cache设备都具有公共的IP地址,SLB和Cache构成并联关系。用户需要先访问SLB设备,然后再以重定向的方式访问特定的Cache。这种实现方式简单灵活,扩展性好,缺点是安全性较差,而且需要依赖于应用层重定向。随着技术的发展,L4-7交换机也可采用旁路部署方式,旁挂在路由交换设备上,数据流量通过三角传输方式进行。关于SLB的实现方式,在本书第4章还将深入讲解。
在CDN系统中,不仅分发服务系统和调度控制系统是分布式部署的,运营管理系统也是分级分布式部署的,每个节点都是运营管理数据的生成点和采集点,通过日志和网管代理等方式上报数据。可以说,CDN本身就是一个大型的具有中央控制能力的分布式服务系统