京东云资深产品经理 张宝权:服务监控-严守CDN质量命脉

2017-08-03 09:51:47 来源:IDC圈 热度:

大家下午好,今天很荣幸能够代表京东云跟大家分享一下我们在CDN质量监控管理方面所做的事情和一些思考。CDN是云计算里面最大的一个战场,硝烟战火非常浓烈,大家都知道价格战非常激烈,从2015年视频业务井喷式增长开始,众多云服务商跻身这个市场,大家共同颠覆传统的CDN15年以来寡头垄断的市场格局,价格也非常透明,价格战成为似乎最有效的竞争手段,目前只是一个视频业务的爆发,未来还有物联网、AR、VR一系列的云计算的需求,接下来CDN怎么发展,今天我重点谈一下质量方面的思考。
 
对于客户来讲我们如何选CDN的服务,CDN本质是IT服务型的产品,选型这种产品的时候,首先考虑功能。是否具备全站的分发能力,是否有全域覆盖能力,是否具备安全防护及灵活配置的能力。考察完功能之后,大家会开始关注价格,目前市场上价格很便宜了,大家都可以看得到。本质上CDN是一个服务,功能、价格其实并不是本质的需求,本质需求是什么?是加速的效果。里面包含服务的能力,因为它是一种IT的服务,不止是产品本身的服务,包含未来售后服务、运维的服务、以后异常的处理。
 
我们核心在哪?核心就是我们的质量。我所理解CDN产业未来发展有这样几个特点,目前是价格战,价格战是短期的,未来一定是以服务透明以质量为核心的竞争态势,众多CDN服务提供商拼的是服务质量和成本效率,只有服务质量上去才能赢得更多的客户,关于质量、稳定性、服务能力等等这些都是依赖于CDN厂商,云厂商也好,自己能够自治,出现问题可以自愈。对于CDN来讲目前产品变得没有太大的差异化了,未来肯定形成很多细分市场,我们现在只是做分发,未来可能有信息采集上传,编辑计算转发等等一系列的功能特性,我们把质量做进去,把稳定性做强,这样才能做更多的功能特性。
 
对于CDN的服务质量我们如何评测?其实围绕一个核心就是用户的体验。对于不同的业务,我们有不同的要求。比如说页面,我们更关心是可用性,页面加载的时间,业界比较通用的做法就是统计建连的耗时,对于文件下载,在此基础上包含下载的速度、命中率,回源占比。
 
影响CDN质量的因素大家可以从这个图可以看起,这是典型CDN服务的场景,我不多讲了,大家都比较了解。我们最终目标保证客户下载成功下载耗时最短,这是我们核心的目标,这个核心目标多方面因素建造起来的,分解每一个环节,包含用户建连的时间,边缘节点的下载速度,上层回源站的情况,有多个环节,形成很多影响质量和稳定性的因素, 用户DNS配置错误都导致异常。我们整个用户接入宽带,移动网络性能和稳定性的问题。调度机制,一个服务商把CDN做好,调度很重要,映客的薛宁也在围绕这方面在讲,这里面有很大优化的空间。另外作为CDN边缘节点链路的质量和稳定性,同时还有CDN缓存的性能、回源的机制,回上层的链路,甚至上层回源的机制,上层回源站的链路,包括源站的问题。诸多问题中大家发现这里面真正是CDN厂商自己能够控制或者把握的只是我标绿的这些,其他都是CDN厂商没法把控的。对于CDN服务质量管理,我理解两个字就是容错,容错能力越强服务质量才会越好。
 
怎么去容错,怎么监控,怎么评测CDN的服务?我总结下来有两种方法,一种是白盒监控,一种是黑盒监控。白盒包含CDN自身各个模块是否存活、负载情况、服务性能,但这不能代表用户的感知。另外黑盒是从用户角度去看服务是不是可用,响应反映速度是否够快,服务是否稳定。
 
这里面存在一些差异,对于CDN服务商的白盒监测,可以实现问题根源可追溯,事前预警、事后分析。但无法真正感知网民的实际体验,对终端服务的实际效果不敏感,同事会产生大量的告警事件,导致重要告警无法甄别,甚至被淹没。对于缓存、卡顿、流畅度等视频播放指标也无法感知,用户出现投诉时才发现问题,解决问题,很被动。
 
引入第三方监控,最大的好处是相对公正,但同事也引入新的问题,大家知道所有第三方的探测都是利用招募来的CMA探测终端模拟网民的请求行为,而终端的负载、接入网络的质量无法保证,甚至一些终端可能会在玩游戏的同时跑监测任务,终端探测频度也不够,大多在一小时探测一次的频率。这里面其实存在很多的问题,即使第三方提供数据报告,也需要依托CDN服务商自己排查问题。
 
还有一种方案我们客户自己干,在它的终端进行分析,无论是探测也好还是日志分析也好,都是真实采样的真实数据,不像第三方采样的模拟探测数据,但也存在诸多问题,包含需要技术的投入,对终端资源的损耗,过频的探测会影响用户体验。只能做事后分析,发现问题时还是需要反馈给CDN服务商,由CDN服务商解决。    
 
下面我说一下我们京东云CDN产品的情况。京东云CDN的前身是京东自建的CDN的网络,这个网络最早服务于京东商城,我们这个网络服务商城有四五年的时间了,去年开始我们把这部分资源开放出来给我们客户,面向客户的云CDN服务跟我们自建是两套网络。我们6.18大促,双十一大促的时候整个CDN云平台也会承担京东商城的量,平时量是自建解决的。我们整个服务产品的稳定性和性能是经过京东商城严苛要求所历练、打磨炼出来的一个产品。
 
质量是我们一直追求的核心目标,目前京东云CDN的整体负载很低,大家知道CDN服务的一个很重要指标——拼命中率,每个CDN节点的存储资源是有限的,储量过高就很难缓存,但我们可以做到很高的命中率,稳定性和可靠性也是由我们专业的运维团队保障的,这些运维团队本身就是CDN客户,他们最了解客户什么问题最着急,什么问题需要最及时处理,质量透明化是我们一项很重要的服务理念,我们会把所有CDN监测数据开放给我们客户,我们共同使用这些数据,共同保障客户的服务质量。
 
下面介绍一下我们的CDN服务质量监控体系,最下面的是数据采集层,一方面基于部署在cache点和京东配送站的探针,京东物流在我们全国各地都遍布非常广泛,我们充分利用配送站资源做整个数据的采集。另外就是日志,我们基于访问日志和系统日志,结合探针和日志上传进行数据的处理。上层我们做四种监测和分析。设备层监控,网络层监控,刚才提到网络质量是影响CDN服务质量的重要因素,我们对于网络方面包含连通性、丢包、带宽、网络负载的监测、分析,基于我们日志得到相关数据进行告警。再往上就是应用层,这个应用层CDN本身服务内部自身模块的应用本身的状态、能力、性能,这里面有很多的指标。再往上大家最关注的业务层,业务层其实很多的CDN服务商现在已经把这个数据开放出来了,比如状态码、命中率、可用性,对于解析时间、建连时间、卡顿率、慢速比,却很难呈现。慢速比由CDN厂商自己通过视频码率和下载数据结合算下来,跟真实用户体验还是有差异的。我们业务层可以完整覆盖从用户角度看到服务质量的指标。
 
再往右边是我们整个数据的呈现,包含实时监控和实时告警。
 
下面说一下配送站的情况,京东全国有两万多个配送站点,所有配送站点都有一台主机电脑,基本任务就是提交一些报表,这些设备CPU和存储利用率非常低,我们利用这些资源把我们探针部署在配送站上,我们做到实时的探测,我们基于配置任务调度进行我们目标任务探测。拿到这样数据之后我们做什么?用户体验感知,通过配送站可以真实反映用户体验。我们对于直播点播可以通过客户端进行模拟监测。第二个网络劫持。我们通过配送站能够发现集中性的哪些区域有劫持情况。第三个调度决策支撑。正常CDN的调度结合我们网民所处运营商所处的地域,整个负载,链路情况,有的厂商考虑成本效率问题,大家都是比较通用的办法。但是有了配送站这样一个节点,我们可以基于具体的任务进行任务分发和探测,它所采集的数据可以实时注入到我们调度系统里面,形成实时调度的优化。
 
第四个链路质量的评测,我们整个链路选型,运营商网络选型还是调度时也好,都会参考整个配送站的数据进行评测。
 
还有网络质量调优参考以及过程信息拆解,把CDN和网民到我们服务端到源站整个全链条数据都可以拿到进行全面分析。
 
下面看一下我们的监控,第一个设备监控,围绕磁盘等整个网络负载等我们都有很清晰的监测,设备进程、端口等一系列的应用。
 
第二个网络层监控,包括网络丢包和网络延迟,我们从用户到节点之间的探测,以往情况下大家用第三方做的,我们用我们配送站的节点,实现模拟网民到我们边缘的探测。节点之间的探测,节点回源站的探测。我们可以结合不同区域不同运营商之间的互探形成链路的访问。我们目前基本上可以达到每分钟级数据采集和分钟级结果呈现。
 
第二个应用层监测,包括ATS、NGINX等命中指标都可以进行告警。
 
第三个节点级监控,两个层面,一个是节点本身的健康度,我们结合节点自身负载、带宽、设备存活情况、节点命中、节点历史服务质量,对每一个节点进行评分,基于这些进行实时调度。
 
第二个节点质量的图,下面象限表示是质量,左边纵线表示访问量,我们可以对调度进行实时的参考,对于访问质量好,访问量不高的节点我们加大调度,实现最优的用户体验。
 
再往上业务层监控,传统基于第三方监控的DNS解析时间建连时间,首包时间我们可以进行实时监控和管理,进行多维度的控制,我们针对某一域名监控,某一地区监控,可以多维灵活进行监控。
 
第二个视频卡顿率、流畅率等等一系列的分析,这是我们面向最终用户实际体验的。左边是我们命中率右边是状态码,我们达到秒级上传分钟级统计。
 
下面挑几点重要的质量优化技术进行阐述。第一个图片压缩技术,京东商城里面有很多图片,我们多年来其实对于图片如何快速的呈现下了很大功夫,我们采用Webp的图片,我可以压缩到webp格式压缩给网民,整个速度快了很多。
 
第二高性能三级缓存,低延时、高命中。我整个存储分为三层,最热文件存在内存,次热我们到SSD+NVME缓存。对于冷文件我们存储在磁盘里面,通过这种机制我们实现快速命中、快速分发。
 
这里面有几个重要技术我可以大概提一下,对于电商来讲其实所有内容的刷新是非常重要的指标,我们这里面下了很大功夫,目前我们整个CDN的内容刷新实现秒级刷新,把这个任务分发出去下一秒不会让客户看到这个内容,我们做了DNS容错,我们服务过程当中发现有很多网民DNS配置错误,这样访问异常,我们通过技术评估和研发,我们实现了DNS容错的方案,即使用户DNS的配置错误我们可以引导你到我们正确内容上,还有协议优化等问题,我不详细说了。
 
最后说一下我们服务质量体系,我们整个京东云运维体系原来服务于京东商城的,我们历经多年的大促考验,从技术来讲和服务能力来讲有很专业的服务能力,我们提供7乘24小时服务,对客户有需求促销服务要求,我们可以提供专属资源。我们目前做到80%的问题在客户之前发现,80%的问题在5分钟之内定位原因。
 
最后对整个服务运营保障的技术能力盖有规范流程,一系列的制度保障我们更好服务客户,把我们服务商城大促的这种能力复制到我们客户身上。从今年6.18的数据来看,最大量是常量四到五倍,我们整个资源非常充足的,客户在我们这服务实际上可以得到充分的保障的。最后公布我们新的促销的消息,我们目前在六个月内,向新用户提供300GB的CDN国内免费流量,大家感兴趣可以扫描二维码关注。 

责任编辑:王良地