唯品会IT运维数据处理技术实践深度分析

前言:

在it运维中我们会碰到各种各样的问题,但有些问题我们经常重复遇到,并且形成了一些提问范式,如:

“有问题或故障发生吗?”,这个提问转换成数学问题就是建立“异常检测”模型;

当我们确认有问题时,我们本能地会问“哪里出了问题”,这便是一个“根因分析”问题;

对于一家电商公司来说,促销前总是要对线上系统进行容量评估和扩容,这里便有一个“预测”模型需要被建立;

当我们每做完一个项目,需要对项目需要达成的目标进行定量的评估,这便是一个“绩效分析”的问题。

目前各类数学模型的输出在我们的具体工作中主要被用作辅助决策来使用,有两个原因使我们还不能直接把结果自动地用于决策:一是我们对数据的使用能力还不能做到面面俱到,很多业务知识还无法用算法描述;二是算法的输出结果一般都是有概率的,在很多需要“绝对正确”的场合只能作为参考。在实际工作中,算法和业务规则库都会进行建设,用来帮助it运维人员更容易和正确地做出决定。讲师介绍:

吴晓光,唯品会it运维部开发经理、20年一线奋斗经验,10年以上互联网企业it运维领域研发经验。曾在腾讯、卓望、唯品会等互联网公司任职,对数据在it运维领域的应用有着深刻的理解,现致力于唯品会智能化it运维平台的建设工作。

It运维数据处理技术应用

对于数据处理技术来说,我们主要是需要解决以下五个方面的问题:

数据的准确性、及时性

海量数据的实时计算

多维数据的实时监控

多维数据的展示

A/B测试实现方法

这里有些问题在行业里已有比较成熟的解决方案,有些可能就不是每个公司都会碰到。

看唯品会的数据采集,对唯品会来说,我们主要是两类数据,一类是日志数据,一类是数据库数据。

对于it运维日志数据来说,我们有两类采集,一类是客户端的日志采集,一类是服务器端的日志采集。对于服务器端的日志采集,实际上是比较简单的,一般来说就是落到本地盘之后,通过Flume传送到公司的Kafka集群,然后大家在上面消费。对于客户端行为的采集,分成两种,一种是Web端的采集,一般来说就是通过异步请求在Nginx上落日志;第二个是APP端的采集,一般是通过一个接口调用的方式,把这些数据落到服务端,再由服务端把这个数据收集起来。对于数据库的采集,实际上我们也是有两种方法的,一种是直接在从库上来做这种指标的计算,还有一种就是对于复杂的应用,我们会把DB的Binlog做一些解析,解析完了之后放到一个消息总线上,实际上就放到Kafka上,然后让大家来进行一个消费,每个应用都是根据自己的特点,重构自己的数据结构。有些会还原数据库,有些就直接用消息来计算指标,具体要根据情况进行分析。

It运维数据计算是比较重要的一环,实际上要兼顾性能和灵活性两个方面。对it运维日志的处理,会有一个日志解析程序来消费Kafka的消息,“日志解析”实现一个实时ETL的过程,我们会根据配置(基本配置也跟ETL差不多)去生成预定义的标准格式,后续就交给Spark做聚合。“日志解析”由于日志之间没有相关性,可以Map之后并行计算,吞吐量和资源的投入是成正比的,这样效率就没有什么太多的问题。

对于Spark的聚合配置,一般来说我们会把日志解析完的数据进行定义,定义各个字段是维度或是指标,然后会做一个全维度的聚合。这里面实际上也是有个要求的,我们要求所有的指标在各个维度上都具有累加性,如果不具备累加性(比如百分比这种指标),我们在Spark里是不做聚合的,只是在展现的时候重新计算。计算好的数据会放到一个OLAP和MOLAP的数据库里。

还有一种情况,是通过脚本在数据库从库上直接进行指标的计算,一般用于只有时间维度的指标计算,配置好的计算脚本,我们会用公司开源的一个产品Saturn来进行一个分布式调度。Saturn这个东西还是不错的,推荐大家去尝试一下。对于日志的详细查询,我们还是放到ES里,通过全文检索的方式来查询。

It运维数据展现是最终的结果输出,实际工作中,我们对结果数据的查询效率要求比较严苛。因为这些结果数据不仅用于前端,还用于告警输出等各个方面。对于告警的数据我们需要做到毫秒级响应,前端界面一般要求是在3秒内渲染完成。为了完成这个要求,我们构建了一个ROLAP数据库,还有一个MOLAP的数据库,在ROLAP的数据库里,一般只存当天的多维数据,而在MOLAP的数据库里,会存历史数据。对于MOLAP数据库的检索,由于应用主要是切片方面的需求,基本上都是K-value模式的一个检索,所以它比较快。MySQL里一般是存放单维度指标,应该这么讲,它不是多维数据。Redis缓冲里,一般会存放我们的秒级数据,还有一些配置信息。这个架构中,最后通过Application  Server进行一个数据的整合,来满足前端数据的一个展示要求。

以上就是我们对it运维数据应用在未来一个时期内的定义,也是想在未来大约半年到一年能够看到更多成果的一个实践。今天分享就到这里,谢谢大家!

文章来自: 同创双子

你可能感兴趣的:(it运维,it运维,数据库,服务器,技术,工作)