前言
腾讯公司从2012年开始,通过对服务器运营流程、工具系统的建设,服务器从一线到三线的运营基本转入线上自动化。在服务器静态配置、动态的运行状态和生命周期各个节点的运营这几个方面,产生了大量的运营数据,这些信息像滚雪球一样,以几何量级快速增长。数据越来越多,该如何着手处理呢?这就像刚入门的厨子一样,在农贸市场里面对堆积如小山般的食材,无从下手。到2013年,建立网平的大数据平台,把所有的基础架构运营数据统一接入和管理,从此,我们开始了在数据矿山中挖掘金矿的历程。
大数据的处理
经过长时间的实践和总结,我们发现服务器运营的大数据有以下四个特点,由浅入深,分别是:1)Volume数据体量巨大,特别是腾讯有海量的服务器,综合起来,数据量可以到PB级别,需要大容量、高性能的存储技术,分析的算法也需要最优化;2)Variety数据类型众多,涉及大量的运行日志、部件状态、生产链运营、环境变量等,经常要抽丝剥茧,才能找到有用的数据;3)Value 价值巨大,但并不是每个数据都有价值,需要经过清洗和加工处理后,其产生的效果才能显现,以机房环境温度告警为例,数百万条温度的信息,经过分析对比后,才有可能发现温度异常;4)Velocity数据需要快速处理,特别是告警类的应用,时效性是非常重要的。
下面讲讲我们是怎么收集和存储服务器运营数据的,给我三分钟,给你一个帅气又有营养的答案!
1、运营系统架构
对于海量服务器的管理,我们建立了一套功能强大的运营分析系统,从服务器的带内和带外收集了全面的静态属性和动态运行数据,对服务器的每个关节进行的全方位的数据采集和监控。犹如我们平时体检,把心、肝、脾、肺、肾,甚至每个毛孔,都进行了检查。系统架构如下图所示。
2、存储和分析
数据收集起来后,除了一部分实时的数据存在本地数据库,几乎全部的历史数据都会存储在公司级的数据平台中。这个数据平台提供了丰富的工具系统,功能全面,涵盖了数据存储、分析、实时计算等。例如,TPG是基于postgreSQL的数据库,用于存放TDW(Tencent distributed Data Warehouse腾讯分布式数据仓库)离线分析后的结果数据,便于系统调用(如服务器利用率分析,故障分析、服务器生命周期等生产数据);Hbase基于No SQL,万亿级的分布式、有序数据存储,用于存放分析后的结果数据(如温度功耗分析结果数据)。整体的架构如下图所示。