大数据时代下的CDN智能运维

近年来,短视频与直播业务的爆发,也让CDN行业迎来了新的发展机遇和挑战。这些挑战主要体现在运维上,可分为两方面:一是出现故障时的响应速度,这需要CDN服务商能够以最快的速度发现和处理故障。二是质量的提升,视频类客户的卡顿率往往是评判各家CDN厂商服务质量的首要标准,这要求服务方必须具备过硬的调优能力,因此,快速分析感知细微的质量变化、定位质量变化的原因就至关重要。

目前,金山视频云CDN的服务端天级日志量已近千亿条,数据量近百T级别,这些数据是解决运维效率、提升服务质量的关键。近日,在GOPS 2017全球运维大会上海站上,金山云大数据技术总监徐寅斐就如何利用数据进行CDN的智能运维这个话题,分享了金山云的做法和思考。

金山云大数据技术总监徐寅斐发表演讲

利用数据构建运维和服务质量支撑体系

工欲善其事,必先利其器。数据是解决运维效率、运维自动化甚至智能化的核心,而要想充分利用已有的数据资产,数据平台的支撑就显得至关重要。为了满足目前和未来的需求,首先需要对现有的数据和使用方式进行分类:

现有数据可以分为四类。包括基础监控数据、探测数据、服务端日志、客户端日志,这四类数据在接入难度、数据量级上各不相同,数据平台需要统筹考虑所有数据的接入、传输、计算和存储。

CDN数据分类及特点

运维对数据的使用,可以分为四个阶段:数据支撑、分析支撑、决策支撑和预测支撑,每个阶段对数据平台有着不同的需求:数据支撑要求平台能够满足对上述四类数据的计算和存储需求,确保运维人员能够及时获取准确的数据指标。分析支撑要求平台能够及时响应各类即席查询的需求,包括对原始日志的全链路分析,对于业务指标的多维分析等。决策支撑和预测支撑则要求平台具备数据的强大后处理能力,包括对已存储数据的建模、挖掘能力。

 

数据运维四个阶段

金山视频云大数据平台架构建设实践

先说大数据平台。基于以上数据需求,金山视频云大数据平台在实践中,通过不断演进,最终形成了目前以Hadoop和Spark生态产品为基础的架构。平台的数据传输采用的是Kafka,作为现今最主流的传输中间件,它出色的吞吐能力为第一层数据缓冲提供了保障。数据计算全部采用Spark,技术栈的精简能够保证开发效率和平台稳定性,而且Spark可提供足够丰富的数据挖掘和机器学习库保证数据的后处理。

在数据的前处理上,金山云采用的是实时流+离线流修补的经典架构,实时流在一定精度的前提下,保证了数据的及时性,离线流保证了数据的最终完整性。此外,平台还引入了边缘计算,作用是在充分利用CDN节点分布式天然优势的同时,可大大降低中心数据平台的压力,提升了平台的整体稳定性。

金山视频云大数据平台架构

对于一个数据平台来说,最复杂的是数据存储,不同的数据查询和获取需求决定了最终的存储选型:对于查询灵活性要求极大,数据量适中的数据,金山云使用ElasticSearch + Kibana提供灵活的数据存储与查询服务。对于查询模式相对固定、数据写入量巨大的数据,Druid是一个不错的选择。

CDN的全量原始日志,则会经过ETL后以列存储的方式存储在HDFS上,可以通过SQL、代码片段等多种方式对数据进行查询分析。此外,整个数据平台使用金山云自研的大数据产品KMR,它对金山云其他IaaS服务的天然支持提供了很多便利,如分布式对象存储KS3,可以作为平台存储空间的扩充,重要的数据以及长期不用的冷数据,都会定期自动备份到KS3中持久存储。

金山视频云大数据平台采用多种技术

大数据平台的运维实践

基于这个大数据平台,金山云开发了多套系统提升运维效率。第一个是报警系统,大数据平台承载了CDN所有业务报警数据的清洗、计算和决策生成,Spark对流式计算的支持保证了数据产生到报警整个过程能够在1分钟内完成,保证及时发现问题,系统本身良好的水平扩展能力,也能够满足视频云运维不断变化的业务需求。

CDN业务报警的特点是种类多、维度多、报警阈值因地区运营商而异。报警规则和报警阈值的管理工作很复杂,为此,金山云的报警平台中有一套专门用于阈值评估的离线分析系统,针对所有指标的历史数据、人为配置以及运维对报警的反馈信息,综合评估出不同区域运营商的合理阈值,极大地降低了报警管理的难度。

第二个系统是CDN服务质量的“观象台”——鹰眼平台,它提供了50+业务指标、5+维度的服务质量数据的查询能力,可满足日常运维和调优工作中80%以上的数据获取需求,并可场景化呈现故障处理、网络链路质量、大客户服务质量维护等多种常见运维工作。

鹰眼的数据需求繁杂,既提供全局服务质量信息,也需要满足不同域名、区域运营商、链路以及缓存状态的细粒度查询,甚至需要对这些维度进行任意组合。为了满足这样的查询需求,鹰眼的服务质量数据使用ElasticSearch作为底层存储,在中等规模数据的写入和聚合查询方面的速度都很理想,文档化的存储方式也能满足数据快速迭代更新的需求。同时,鹰眼数据的部分聚合被下放到节点上进行,这样可以降低平台的计算负载。

基于大数据平台和产生的数据,金山云CDN已能在包括调度、故障处理、质量调优在内的很多场景中实现自动化。除了大数据,接下来金山云还会在机器学习和人工智能领域进行运维智能化的探索。