CDN服务质量监测系统设计与实现.docx
中图分类号:TP3 论文编号:10006GSxxxx专业硕士学位论文CDN服务质量监测系统设计与实现作者姓名 XXX学科专业 软件工程指导教师 林广艳 副教授培养院系 软件学院Design & Implementation of CDN Service Quality Monitoring System A Dissertation Submitted for the Degree of MasterCandidate: xxxSupervisor: Lin Guangyan School of Software Beihang University, Beijing, China中图分类号:TP3 论文编号:10006GSxxx硕 士 学 位 论 文CDN服务质量监测系统的设计与实现作者姓名:xxx 申请学位级别:软件工程硕士指导教师姓名:林广艳 职 称:副教授学科专业:软件工程 研究方向:软件工程与管理学习时间自 2010 年 9 月1日 起 至2011年6月20日止论文提交日期 2012 年 10月 22日 论文答辩日期 2012年 12 月 15 日学位授予单位 北京航空航天大学 学位授予日期 年 月 日关于学位论文的独创性声明本人郑重声明:所呈交的论文是本人在指导教师指导下独立进行研究工作所取得的成果,论文中有关资料和数据是实事求是的。尽我所知,除文中已经加以标注和致谢外,本论文不包含其他人已经发表或撰写的研究成果,也不包含本人或他人为获得北京航空航天大学或其它教育机构的学位或学历证书而使用过的材料。与我一同工作的同志对研究所做的任何贡献均已在论文中作出了明确的说明。 若有不实之处,本人愿意承担相关法律责任。学位论文作者签名: 日期: 年 月 日学位论文使用授权书本人完全同意北京航空航天大学有权使用本学位论文(包括但不限于其印刷版和电子版),使用方式包括但不限于:保留学位论文,按规定向国家有关部门(机构)送交学位论文,以学术交流为目的赠送和交换学位论文,允许学位论文被查阅、借阅和复印,将学位论文的全部或部分内容编入有关数据库进行检索,采用影印、缩印或其他复制手段保存学位论文。保密学位论文在解密后的使用授权同上。学位论文作者签名: 日期: 年 月 日指导教师签名: 日期: 年 月 日摘 要内容分发网络(Content Delivery Network,CDN)技术从上世纪90年代出现后,伴随着互联网的发展得到了广泛的应用。CDN行业作为互联网的一个重要组成部分也变的竞争日趋激烈,在这种情况下,CDN服务商如何评估提供给客户的服务质量,提高在市场的竞争力就成为了重要课题。怡飞网络作为一个有责任的CDN服务商推出了CDN服务质量的服务水平协议(Service Level Agreement,SLA)的概念。本文将怡飞网络的CDN服务质量的SLA作为基本需求,并结合公司内部相关部门的需求,进行了需求采集和分析提取。在这些需求下给出了CDN服务质量监测系统的设计和解决方案。本文将首先从CDN网络和CDN业务的相关知识出发,讲解怡飞网络的CDN服务质量SLA的定义,在这个基础之上,设计出了用于CDN服务质量监测的总体框架,并对系统需要解决的技术难点和解决方法进行了概述,这部分着重讲解了评估缓存节点的算法,流媒体的概念,探测方法和所用的开源项目;其中,评估算法用数学公式进行了描述,并对公式中各部分进行了解释和说明。在介绍了总体框架之后,详细说明了监测系统的子系统划分,子系统的作用,子系统各功能模块的划分和实现。除此之外,本文还详细说明了子系统交互的数据接口和各种数据规范以及数据库的表结构,并列出了关键类成员函数和函数代码。本文后面章节概要说明了CDN服务质量监测系统的部署方法,测试方法和测试结果;通过图的表现形式进行了直观的测试结果展现。在文章结尾总结了在实现CDN服务质量监测系统中的收获和对未来的展望。关键词:CDN,SLA ,监测,边缘缓存节点AbstractContent Delivery Network or CDN technology was developed in 1990s which has been extensively used accompany with the expanding of Internet. As an important component of Internet, CDN technology trends to be more competitive day by day. In this case, it becomes an important point that how CDN provider justify the service quality and increase the market competitiveness. As a responsible CDN provider, Yifei Networks putting forward a concept of Service Level Agreement or SLA for CDN service quality.This article will discuss CDN service quality monitoring system design and solution which is based on the requirement Yifei Networks CDN SLA. Firstly, I will introduce the definition of Yifei Network CDN SLA based on the knowledge of CDN technology and CDN related business. According to the SLA, we designed the architecture of CDN service quality monitoring system and defined the technical difficulty and solutions. Second, I will describe the subsystem partition of the monitoring system, subsystem features, partition and implementation of each functional module in detail. Besides, it described subsystem data interface and various data standards. At the end of the article, it concludes the benefits and future expectations of the CDN service quality monitoring system.Key words: CDN,SLA , Monitoring, Point of Presence目 录第一章 绪论11.1 研究背景11.2 研究现状21.2.1 CDN介绍21.2.2 国外相关领域现状31.2.3 国内相关领域现状41.3 论文研究的主要内容41.4 论文的组织4第二章 CDN监测系统需求分析62.1 怡飞网络SLA需求62.2 部门需求72.3 怡飞网络CDN特色需求82.4 非功能需求92.5 系统用例模型102.6 本章小结11第三章 CDN监测系统概要设计和关键问题123.1 CDN监测系统总体设计123.1.1 系统总体框架123.1.2 CDN监测系统子系统划分133.2 CDN监测系统的关键技术和解决方法163.2.1 HTML页面分析173.2.2 边缘缓存节点选优算法173.2.3 多协议支持183.2.4 大文件下载模拟193.3 本章小结20第四章 CDN监测系统详细设计与实现214.1 任务中心子系统设计与实现214.1.1 任务中心子系统的工作流程214.1.2 任务中心子系统功能模块设计224.1.3 任务中心子系统功能实现的关键类284.2 选点子系统设计与实现384.2.1 选点子系统的工作流程384.2.2 选点子系统功能模块设计394.2.3 选点子系统功能实现的关键类424.3 探测子系统设计与实现494.3.1 探测子系统工作流程494.3.2 探测子系统功能模块设计504.3.3 探测子系统功能实现的关键类544.4 实时监测子系统设计与实现574.4.1 实时监测子系统工作流程574.4.2 实时监测子系统功能实现584.5 数据库设计584.6 本章小结62第五章 CDN监测系统测试和部署635.1 CDN监测系统测试635.2 CDN监测系统部署65结 论67参考文献68致 谢70图 清 单图1 CDN网络组成图3图2 CDN监测系统用例图10图3 CDN监测系统工作流程图11图4 CDN监测系统网络拓扑图13图5 CDN监测系统逻辑层图15图6 CDN监测系统功能模块图16图7 任务中心子系统工作流程图22图8 CTaskService类图29图9 CFetcherUrl类图33图10 CHtmlParser类图37图11 选点子系统工作流程图39图12 CSelecterService类图43图13 CProbeMms类图47图 14 CProbeRtmp类图48图 15 探测子系统工作流程图50图 16 CTaskManager类图55图 17 CWebbench类图56图 18 实时监测子系统工作流程图57图 19 CSelecterDb类图59图 20 监测任务管理WEB页面64图 21 探测数据WEB页面65表 清 单表 1 边缘缓存节点列表字段表23表 2 监测页面任务列表字段表24表 3 定制任务字段表25表 4 监测任务字段表41表 5 SLA报告字段表52表 6 探测报告字段表53表 6 探测报告字段表(续)54表 7 Hostspeed_table表结构58第一章 绪论本章首先介绍CDN服务质量监测系统的研究意义与国内外研究现状,然后对本文的研究内容进行概述,最后介绍本文的组织结构。1.1 研究背景随着通信技术和计算机技术的飞速发展,网络在金融,商业,交通,制造业,服务业等社会生活的各个领域,发挥着越来越重要的作用,以TCP/IP体系结构和协议标准为基础组建的网络是目前国际上规模最大的计算机网络系统。在这个基础上,互联网得到了日新月异的发展,各种互联网商业模式层出不穷,给人们的工作和学习带来越来越的便利,也极大的提高了社会生产效率。随着互联网越来越多的深入到人类的日常生活中,互联网技术被誉为工业革命以来最伟大的技术革命。随着互联网用户的爆发式增长,日益拥挤的网络成为用户良好体验的瓶颈,在这种情况下,CDN技术应运而生,成为缓解网络拥堵的一项重要解决方案1。众多的互联网网站为了提高自身的用户粘度,提高用户体验,纷纷购买了CDN服务,从而实现了很好的社会和经济效益,CDN行业因此得到了快速发展,市场上涌现出了越来越多的CDN服务商。经过近20年的技术发展,CDN技术越来越成熟,CDN服务商的服务能力也有了长足的进步。但因为CDN服务是依托于互联网的一项增值服务,一直缺乏一个行业公认的服务标准,各CDN服务商的服务质量差异较大,从而给客户的CDN选型带来很多不必要的麻烦,而CDN服务商内部也因为这些标准的缺失而不能对自身的服务质量有量化的评估,从而不能及时发现潜在的故障,预先排除,避免给服务的客户造成无谓的损失。因此,评估CDN服务质量成了CDN服务商和客户需要必须跨越的一道鸿沟,在这一迫切的需求下,市场上出现了中立的第三方网络监测机构。国际上知名的第三方网络监测机构有Compuware2,Keynote3,Ip-label4;国内知名的有基调网络5,博睿科技6,监控宝等7。这些第三方网络监测机构因为监测节点众多,数据翔实,量化和直观的监测报告等多方面原因而受到了客户的认可。怡飞网络是2008年成立的高科技公司,致力于给中国客户提供先进的CDN服务,在CDN市场上凭借优异的客户服务,领先的技术实力,从而在竞争激烈的国内CDN市场上占有了一席之地。怡飞网络秉承先进的CDN理念,创造性的提出了CDN服务质量可视化,CDN流量可调度的概念。CDN服务质量监测系统(后面简称CDN监测系统)就是CDN服务质量可视化的体现,也是CDN流量调度管理(Content Delivery Traffic Management,CDTM)的基础。1.2 研究现状1.2.1 CDN介绍CDN技术是由美国麻省理工大学在1994年提出的概念,CDN是通过在现有的互联网中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,解决互联网网络拥塞状况,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因,造成的用户访问网站的响应速度慢的问题。 CDN是一种新型的网络构建方式,它是为能在传统的IP网发布宽带丰富媒体而特别优化的网络覆盖层;而从广义的角度,CDN代表了一种基于质量与秩序的网络服务模式。CDN是一个经策略性部署的整体系统,包括分布式存储、负载均衡、网络请求的重定向和内容管理四个要件,而内容管理和全局的网络流量管理(Traffic Management)是CDN的核心所在8。通过用户就近性和服务器负载的判断,CDN确保内容以一种极为高效的方式为用户的请求提供服务。CDN采用全局负载均衡技术,及时发现能够给访问者提供最快响应的边缘缓存节点,并将访问者的请求导向到该边缘缓存节点,由该边缘缓存节点提供内容服务。利用内容分发与复制机制,CDN客户不需要改动原来的网站结构,只需修改少量的域名系统(Domain Name System,DNS)配置,就可以享受CDN服务。 当用户访问了使用CDN服务的网站时,DNS域名服务器通过规范名(Canonical Name,CNAME)方式将最终域名请求重定向到CDN系统中的全局负载均衡系统。全局负载均衡系统通过一组预先定义好的策略,将当时能够最快响应用户的边缘缓存节点IP地址提供给用户,使用户可以得到快速的服务。 根据CDN的原理,搭建可靠稳定的CDN网络,需要由五部分组成,这五部分分别是源站服务,边缘缓存节点,网络管理系统,内容管理系统,全局负载均衡系统。在CDN网络内部,网络管理系统和内容管理系统合称为运营支撑系统(Operations Support System,OSS)。CDN网络组成部分可以用下图表示:图 1 CDN网络组成图1.2.2 国外相关领域现状随着互联网的蓬勃发展,CDN技术日臻完善,其应用价值得到越来越多的互联网用户认可。目前,美国市场上有大小四十多家CDN服务商,其中以Akamai和Limelight最为知名9,10;Akamai是世界上最大的CDN服务商,其可靠稳定高效的服务得到众多知名互联网企业赢得很高的赞誉,是这些互联网企业成功的助推器。伴随互联网繁荣发展而来的还有第三方网络监测机构,这些第三方网络监测机构根据客户需求,在众多的监测节点中模拟用户行为,获得监测数据,并生成监测报告。监测机构的客户可以根据这些监测报告,评估自身的网络服务水平。CDN作为互联网服务的一个重要分支,也得到了第三方网络监测机构的重视,各知名的第三方网络监测机构均推出了CDN选型服务,即CDN监测服务。这些知名的第三方网络监测机构有Gomez,Keynote,Ip-label等。除此之外,CDN服务商为了提高自身竞争力,在自己运营的CDN网络内部也会部署CDN监测系统。如Akamai的Network Performance Monitoring 系统;LimeLight的LimeLight Control系统。这些CDN监测系统监测的服务类型全面,监测点遍布全球,极大的提升了CDN服务商的竞争力;但这类系统的公开资料很少,也没有公开的论文涉计到这方面的系统设计。1.2.3 国内相关领域现状中国的CDN技术最早由蓝汛科技(ChinaCache)于2000年引入国内11,经过10余年的发展,蓝汛科技成为国内最大的CDN服务商。随着CDN技术在中国的普及,越来越多的互联网企业意识到CDN服务的重要性,纷纷购买这项服务,也因此吸引了很多的企业加入到这一市场的竞争中。在这些竞争中,网宿科技和帝联科技成为了继蓝汛科技之后12,13,市场占有份额排名第二和第三的CDN服务商。与国外的CDN服务商不同,国内的CDN服务商的技术水平相对落后,在CDN服务监测方面更多的注重边缘缓存节点服务器的网络性能;常见的监测手段是在边缘缓存服务器上部署Nagios软件,将监测数据收集到中心节点。这种方式的弊端是从网络内部进行监测,不能反映互联网用户真实的用户体验。另外,第三方网络监测机构作为CDN服务质量监测的主要提供商,国内的网络监测机构在技术实力方面与国外没有太大差距;相反,在本地化,成本和服务方面还具有较大的优势。基调网络是国内领先的第三方网络监测机构,它的CDN选型及监控服务得到了很多的互联网企业的认可,确保了企业投资价值最大化。1.3 论文研究的主要内容论文研究将围绕怡飞CDN网络的需求而展开,首先说明了怡飞网络的SLA内容,然后描述了怡飞网络的业务需求和部门内部需求。在此基础上,论文还研究了CDN网络业务的常用的网络协议,如HTTP协议,HTTPS协议,MMS协议,RTMP协议。通过这些研究分析,结合怡飞网络的CDN网络的特点,设计出了CDN服务质量监测系统方案。在方案中,通过基于评价的服务性能评估来筛选较优的边缘缓存节点,通过探测数据的数学公式运算来模拟超大文件的下载行为。最后根据设计方案,实现了CDN服务质量监测系统。1.4 论文的组织第1章 是绪论,介绍了论文的研究背景、CDN基础知识和国内外研究的现状,,概括了论文期间主要的研究内容。第2章 是CDN服务质量监测系统的需求综述,同时也介绍了CDN的网络组成和怡飞网络的CDN服务SLA内容。第3章 论述了CDN服务质量监测系统的概要设计方案,从网络架构,软件部署,功能模块划分等方面进行了阐述。本章对CDN服务质量监测中存在的一些难点进行了研究并提出了解决方案,最终设计出了符合需求的方案。第4章 讲解了CDN服务质量监测系统的设计与实现过程。通过对系统的关键子系统的主要功能模块的设计与实现来详细描述CDN服务监测的实现过程。第5章 是简要介绍CDN服务质量监测系统的测试和部署情况。文章最后对CDN服务质量监测系统进行了总结,得出了肯定的结论,也对未来的监测系统的发展进行了展望。第二章 CDN监测系统需求分析CDN服务作为互联网的基础服务,正在发挥越来越重要的作用;评估给客户提供的服务质量成为CDN服务提供商的基本需求。本章内容是根据怡飞网络的SLA需求,并结合公司客服部门和运维部门的需求,将这些需求进行抽象归纳,形成规范性需求。2.1 怡飞网络SLA需求SLA是服务提供者和客户之间的一个正式合同,用来保证可计量的网络性能达到所定义的品质。SLA 为服务提供者提供了一种在当今多变而又竞争激烈的市场中超越对手的方法。服务提供者可能是多种类型的服务提供者,比如:一个 IT 组织、一个应用软件服务提供者、一个网络服务提供者、一个互联网接入服务提供者等等14。CDN服务经过多年发展,技术已经成熟,但是一直没有形成一个标准的CDN服务SLA。国内的CDN服务商使用的SLA都是沿用IDC行业的SLA标准,在网络连通性上进行了明确承诺,但对服务质量没有说明。CDN的网络分布式特性决定了CDN服务商和IDC的主机托管有着很大的区别,网络的连通性能并不能反映用户的访问情况,因为中国网络环境复杂,一个区域的网络连通性不能保证在全网区域内所有边缘缓存节点的网络连通性能良好。怡飞网络通过技术研究,市场调研,以为用户提供最优质的服务为理念,提出了独有的CDN服务SLA。怡飞网络向客户承诺保证100%的内容分发服务可用,其服务性能优于源站。怡飞网络的SLA内容如下:(1)SLA衡量方法每间隔6分钟,SLA监测点分别向CDN网络的边缘缓存节点和客户源站,发起一次SLA测试对象的HTTP 协议的Get请求。(2)SLA测试对象 SLA的测试对象为TTL为2小时,大小为200K字节左右的文件。(3)性能测量如果怡飞网络的CDN服务的每小时平均网络速度低于客户源站每小时平均网络速度,则视为一次网络性能事故。(4)可用性测量在任何一个自然60分钟内,如果全网的10%的SLA监测节点连续三次到测试对象的HTTP请求失败,则视为一次网络可用性事故。从上面的内容可以看出,怡飞网络的SLA保证了客户得到优质的CDN服务;同时,也对怡飞网络的CDN服务能力形成了挑战。要满足SLA,必须部署一套稳定可到的CDN监测网络,这个CDN监测网络需要覆盖所有边缘缓存服务节点,能提供大量准确的探测数据,通过这些探测数据的分析来检查CDN服务是否达到SLA的承诺。对怡飞网络的SLA进行提取,可以抽取出这些需求:(1)每6分钟完成一轮探测 监测网络的每个监测节点需要在6分钟内,对所有服务的客户域名完成一次探测。(2) 需要对客户的源站进行探测监测网络的监测节点既需要对CDN网络的边缘缓存节点进行探测,也需要对客户的源服务器进行探测,这样才能形成对比,显现出使用CDN服务和不使用CDN服务的差别。(3) 实时监测在怡飞网络的SLA中,有可用性指标,因此监测网络需要对CDN网络的可用性进行实时不间断的监测。(4) 监测覆盖所有边缘缓存节点在怡飞网络的SLA中,监测网络需要覆盖所有的边缘缓存节点,只有得到了全面的探测数据,才能得到性能不好的边缘缓存节点占CDN网络的百分比,并判断出是否达到了SLA可用性指标。2.2 部门需求在CDN服务商中,运维部门和客服部门是很重要的部门。运维部门作为CDN网络的维护和调优部门,必须能时刻掌握CDN网络的运行情况,发现问题并及早的解决问题。客服部门是CDN服务商的窗口,也是对CDN网络的OSS系统使用最多的部门,他们需要对在OSS系统中进行客户管理,解答客户的咨询。CDN监测系统在需求的收集过程中,和这两个部门经过多次沟通,收集到了很多基本需求,将这两个部门的需求分别进行了整理、归纳和抽象。1. 运维部门需求(1) 监测多项指标监测系统中能得到多项监测数据,监测的数据项有:DNS解析时间,网络连接时间,第一个数据包时间,下载速度,下载的字节数,边缘缓存节点的IP地址,页面动态对象和静态对象的比例。(2) 服务质量可视化CDN监测系统会产生大量的探测数据,运维部门在排查网络故障时,需要首先定位,定位的依据就是探测数据的异常变化。如何能快速明了的查看服务质量的变化就成了关键。这个需求就是服务质量可视化,即能将探测数据在WEB界面上通过设置日期、监测节点、客户域名、区域等信息,就能将和这些信息相关的探测数据展现在WEB界面上。(3) 故障邮件报警运维部门是7×24工作的部门,在CDN网络发生故障时,CDN监测系统能第一时间将故障反映出来,并发出报警邮件。这就能为运维部门争取了主动,尽快的解决问题,将客户损失降到最小。2. 客服部门需求(1)一站式服务客服部门的职责决定了技术水平相对较低,这就要求CDN监测系统必须和客服人员经常使用的OSS系统进行关联,能让客服人员在管理好客户的域名时,能方便的对CDN监测系统进行管理。(2) 源服务不可用报警客服人员和客户沟通较多,对客户的情况比较了解,如果能帮客户及时发现客户自身的故障,并将这一信息及时通知给客户,将会给客户带来贴心的服务,为以后的服务争取主动。因此,客服部门希望能得到客户源服务不可用的邮件通知。(3) 监测对象列表根据规则自动生成CDN监测系统能根据客服人员设定的监测页面,自动分析HTML页面,并根据规则提取出符合要求的对象,生成监测任务。2.3 怡飞网络CDN特色需求怡飞网络作为中国CDN市场的后来者,如何在激烈竞争的CDN市场发展并壮大成了必需要解决的问题。随着公司规模的扩大,客户数量的增加,满足客户多样化的需求成为首要问题。怡飞网络基于自己的CDN技术积累,对国内客户的深入了解,提出了CDTM方案。方案的思想是通过在CDN网络之外部署监测网络,不间断的探测CDN网络内的边缘缓存节点,通过几次历史数据的分析,评估出服务质量优秀的边缘缓存节点,自动选择服务质量最优的边缘缓存节点为客户提供服务。CDN监测系统作为CDTM的基础,必须能对怡飞网络的CDN客户类型进行识别,对边缘缓存节点进行准确的探测,生成包含各种探测信息的监测报告。根据怡飞网络的CDTM方案,CDN监测系统需要满足下面的需求:(1) 边缘缓存节点的性能评估CDN监测系统的监测节点需要能到多个边缘缓存节点进行探测,评估边缘缓存节点的服务质量,并选择出质量较优的几个边缘缓存节点。 (2) 监测任务的变更快速生效 监测任务可以很方便的生成,变更,并能较快的反映到探测中。可以自定义任务类型,不同的任务使用不同的处理方法。(3)生成探测报告CDN监测系统需要生成监测报告,监测报告作为CDTM的基础。(4)支持多行业客户怡飞网络的客户类型多样化,分布在各个行业。有政府门户类,游戏类,视频网站类等等;因此要求监测系统能提供多元化的探测方式,除了主流的HTTP协议的探测15,16,对流媒体也需要提供探测方法,尤其是游戏类客户,其游戏客户端大多动辄几千兆字节,这种客户需要有专门的处理方式来评估CDN服务质量,减少无谓的带宽消耗。2.4 非功能需求CDN监测系统作为怡飞网络的CDTM系统的基础,必须稳定、可靠、高效,能科学的评估出服务质量优秀的一些缓存服务节点。除此之外,系统还必须满足易扩展,部署方便等需求。因为,随着客户的增加和竞争的需要,需要部署更多的边缘缓存服务节点,这就需要在增加边缘缓存服务节点的运营商区域快速的部署监测节点,因此,可灵活的扩展就成了基本需求,也是最重要的非功能需求。2.5 系统用例模型前面的章节已经对本系统的任务和需求做了详细的说明,接下来,将对系统的流程和各个参与者之间的相互作用进行说明,将以用例图对系统进行描述和构造。通过需求分析,可以确定CDN监测系统有三个角色参与到CDN监测系统的运行中来,分别是客服人员,运维人员,系统自身。客服人员负责对CDN监测系统的管理,运维人员查看系统产生的数据,系统负责处理监测任务。因此,CDN监测系统总的用例图可以用下图表示:图2 CDN监测系统用例图 通过用例图并结合系统需求17,可以得到CDN监测系统的工作流程,这个流程可以描述如下:(1)客服人员在OSS系统中操作,上线一个新的客户,设定监测对象,客户可以使用的边缘缓存节点列表。(2)监测任务中心自动从OSS系统接口中得到监测任务,对这些监测任务进行处理。监测任务中心接收监测节点的请求,生成监测节点专属的监测任务。(3)监测节点解析监测任务,向任务中的边缘缓存节点发起探测请求,生成探测报告。并将探测报告汇总到OSS。(5)OSS系统对汇总的探测报告进行分析,入库。(6)运维人员登录到OSS系统中,查看全网CDN服务质量情况,发现有性能降低的地方,做调优处理。监测流程可以用图示例: 图3 CDN监测系统工作流程图2.6 本章小结本章对CDN的相关知识进行了概述,并详细讲解了怡飞网络的SLA,通过对怡飞网络内部需求的进行了收集,重点对运维部门和客服部门的基本需求进行了归纳和总结,对怡飞网络的CDN解决方案的特色需求、非功能需求进行了详细说明,并给出了系统用例和工作流程。第三章 CDN监测系统概要设计和关键问题通过前面的CDN相关知识的了解和需求分析,可以看出CDN服务质量SLA的重要性对于CDN服务商是不言而喻的,如何判断是否达到SLA的质量标准,就成了必须解决的问题。本章将围绕这一问题进行CDN监测系统的概要设计,本章也是CDN监测系统详细设计和实现的基础。3.1 CDN监测系统总体设计CDN监测系统是怡飞网络的CDTM的基础,也是CDN服务SLA和CDN服务质量可视化的保证,因此,系统的总设计原则是可扩展,灵活性高,松耦合,维护和管理方便。3.1.1 系统总体框架CDN监测系统主要应用于CDN客户的服务质量监测,使用者是内部的客服人员和运维人员,因此系统需要将管理功能集成到OSS系统,通过OSS系统将监测任务下发到任务中心,再由任务中心分发到各监测节点,各监测节点将探测报告和SLA报告汇总到OSS系统,由OSS系统对探测数据进行分析,并呈现到WEB页面;另一方面,监测报告也保存在监测节点,监测报告中的探测数据将做为CDTM的流量调度的数据支撑。为了满足系统的设计目标,将系统设计为两层C/S结构;监测任务中心和OSS系统之间是客户端和服务器关系,监测节点和监测任务中心也是客户端服务器模式。网络拓扑图如下: 图 4 CDN监测系统网络拓扑图通过拓扑图,我们可以看出,监测系统的结构有下面几部分:(1)监测任务中心程序监测任务中心程序从OSS系统中得到监测任务,并生成各监测点的专属监测任务。(2)监测节点部分监测节点程序从监测任务中心得到自己的监测任务,解析监测任务,向边缘缓存节点发起探测请求,生成探测报告,上传到OSS系统。每个监测节点代表一个特定区域的用户。(3)OSS系统接口 OSS系统中提供监测任务,用户可以在OSS中配置监测任务,查看探测报告。3.1.2 CDN监测系统子系统划分CDN监测系统为了保证灵活性和可扩展性,使用组件的开发模型,将系统划分为多个子系统。子系统之间通过通讯协议或文件进行数据交互。在开发中,充分利用面向对象的开发思想,将共用的功能封装到类中,提高代码重用率。面向对象方法是采用对象、多态、继承等多种概念构造系统软件开发的方法18。系统根据功能将分为任务管理中心子系统,探测子系统,选点子系统,实时监测子系统。选点子系统是为了提高监测效率,从批量的可用边缘缓存节点中选择出服务质量较优的几个边缘缓存节点,将这几个边缘缓存节点集中到一个监测周期内;这类似于晋级赛,先海选再晋级,确保能选择出最优的边缘缓存节点提供缓存服务。OSS系统中的监测任务管理,探测数据数据持久化,探测数据呈现等因为是对OSS系统对监测任务和监测数据的处理,和CDN监测系统只是接口关系,在本文将只做粗略说明。在物理部署上,探测子系统,选点子系统,实时监测子系统将会部署到监测节点。这些监测节点会被部署到各宽带运营商的互联网数据中心(Internet Data Center,IDC)内。监测任务中心子系统将被部署到互联互通较好的IDC内。下面对这几个子系统的功能进行概要说明:(1)任务管理中心子系统任务管理中心子系统的功能是从OSS系统中得到监测任务信息;得到CDN网络的边缘缓存节点信息;得到客户的定制化需求,根据这些信息生成监测节点专属的监测任务文件。任务管理中心(后面简称任务中心)子系统解析监测任务,向CDN网络中的一个边缘缓存节点发起HTTP请求,下载页面后进行页面解析,选择出页面中符合SLA要求的对象。任务中心子系统接收监测节点的专属监测任务查询请求,如果专属监测任务发生变更,就重新生成这个监测节点相对应的专属监测任务,发送给监测节点。(2)选点子系统选点子系统的功能是向任务中心子系统发起请求,查询监测节点的专属监测任务信息。得到监测任务信息后,解析监测任务,向任务中设定的边缘缓存节点逐一请求任务中设定的监测对象,得到探测的详细信息,比如,连接时间,下载速度等信息,将探测数据保存到数据库。选点子系统结束一轮探测后,将从数据库提取出最近若干次这个域名可用的边缘缓存节点性能数据,对这些数据进行数学公式运算,得到每个域名的较优的5个边缘缓存节点信息,根据这些信息生成探测子系统使用的探测任务。选点子系统既支持WEB服务探测,也支持流媒体探测;支持的WEB服务有HTTP、HTTPS服务;支持的流媒体服务有MMS、RTMP服务。(3)探测子系统 探测子系统通过读取选点子系统生成的探测任务文件,解析探测任务,并向CDN网络的边缘缓存节点发起探测请求。探测子系统记录探测过程中的多项数据,这些数据有DNS解析时间,连接时间,第一包时间,下载耗时时间,下载速度等。探测子系统将生成两种报告,一种是探测报告,一种是SLA报告;探测报告记录的是探测的详细信息,SLA报告记录的是在监测节点所代表的这个区域,CDN网络的边缘缓存节点的服务性能和客户源站的服务性能的对比。 为了能够保证探测的数据稳定性和可靠性,这些探测任务必须得顺序执行,用单线程来进行探测。(4)实时监测子系统 实时监测子系统从探测任务中得到探测子系统所探测的CDN网络边缘缓存节点信息,每间隔2秒钟就向这些边缘缓存节点发起一个HTTP协议的HEAD请求,请求预先分发到边缘缓存节点上的几个测试文件,这几个测试文件会被预分发到边缘缓存节点所使用的缓存服务器上。当实时监测子系统发现边缘缓存节点中的缓存服务器连续三次不可用时,就发出报警邮件,并向CDN服务调度系统发出调度请求。根据CDN监测系统的功能描述,可以将监测系统的功能划分到三个逻辑层,分别是呈现层,业务层,数据持久层,本