对于当前日益丰富的动态内容加速,需要在CDN系统上复制和缓存业务逻辑层和后台数据访问层。其中,业务逻辑层在CDN Cache上的复制使之能够承担用户请求处理、应用数据计算、动态内容生成等工作,因此这类方法也被称为“边缘计算”。将Web应用程序或应用组件直接安装在CDN Cache中,目的是在最接近用户的位置完成应用处理,同时也分担了源站的计算压力。
在某些应用场景中,动态内容的生成需要大量的数据支持,比如目录服务、交易数据等,仅仅将业务逻辑复制到边缘服务器中还不足以解决从源站获取其生成动态内容所需的数据而造成的传输性能瓶颈,因此还需要对数据访问层进行必要的复制,即除了在Cache上完成业务逻辑的运算工作,还复制了源站后台数据访问层的内容,用以加速动态内容的生成。
这个过程的关键在于合理解决系统中多个数据副本间的一致性问题。另外,还有一些网站的动态内容是基于具体用户的个性化数据定制生成的,需要在数据访问层对用户数据进行特别的关注。用户数据本身也是依托于数据访问层的存储介质和管理系统存在的,但在访问模式等方面具有独特性,因此CDN需要制订相应的复制和缓存策略,并解决相关的隐私和安全问题。也许这样的讲解仍然有些令人困惑,没关系,在本书的第7章还将深入讲解动态内容的生成和加速技术,更多相关知识:http://www.zhengdaole.com/。
CDN系统从不同的角度去看,有不同的分解方式。我们总结了一个CDN系统的三维模型,从逻辑上将CDN系统分成三个维度,希望能够帮助读者更全面地理解CDN系统。如图2-6所示,其中水平X轴方向按照不同类型业务能力进行划分,垂直Y轴方向按照中心、区域和边缘三级网络结构进行划分(根据网络规模情况,区域一级可选);Z轴方向按照数据平面、管理平面和控制平面进行划分,如果开展SP业务,需要了解云存储。
X轴方向是贯穿系统头端到终端的垂直系统,每一种业务能力都可以有自己的中心、区域、边缘层设备,有自己独立的管理系统、负载均衡系统、分发服务系统。因此,在X轴方向上,每一个CDN服务能力都可以是一套相对独立的子系统。
Y轴方向的分级划分是依据CDN系统逐级缓存、分级调度、分级服务的要求。CDN系统的管理功能、调度功能、缓存功能、服务功能都是分级部署的,不同层级的相同功能实体之间相互配合。从控制功能上看,往往下一级控制实体是上一级控制实体的执行者;从缓存功能上看,上一级缓存是下一级缓存实体的内容提供者;从服务功能上看,上一级服务实体是下一级服务实体的能力补充和备份。
Z轴方向上,管理层主要完成CDN网络管理和业务逻辑处理。网络管理提供IP网络层面的配置管理、故障管理、网络性能管理以及网络安全管理等,负责对整个CDN系统的网络和设备资源进行抽象,提取其业务能力,提供给上层业务平台。
业务逻辑处理指CDN系统辅助其服务的业务平台完成部分应用层功能的实现,完成和其他系统之间的接口适配,负责系统的认证、计费、统计分析、系统管理、用户管理、SP管理等功能。控制平面负责对整个CDN网络的内容分布情况进行管理,对内容分发和访问路由策略进行控制,它是整个内容分发系统内容数据流向的控制点。数据平面承担实际的内容分发工作,根据Z轴方向与X轴、Y轴相交点的具体要求,数据平面设备具备不同的应用服务提供能力。