【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

从 0 到 1 建立基于大数据的质量平台

  • 2018-03-08
  • 本文字数:3316 字

    阅读完需:约 11 分钟

随着互联网的快速发展,大数据与软件质量的关系越来越密切,从源码撰写、持续集成、测试调试、发布运营,整个流程中大数据无所不在。每个数据关联起来对软件质量中的发现、度量、定位都有着重要的价值。如何从 0 到 1 建立基于大数据的质量平台,利用大数据来改善软件质量?

来自阿里巴巴优酷事业部技术专家万传奇老师将在 4 月 20 ~ 22 日召开的 QCon 全球软件开发大会上分享优酷大数据质量平台建设及线上质量闭环解决方案实践。在大会开始前,我们有幸采访了万传奇老师,提前了解一下优酷大数据质量平台建设背后的技术故事。

受访嘉宾介绍

万传奇(花名“万众”),阿里巴巴优酷事业部技术专家。2014 年进入阿里,负责阿里集团持续集成平台 CISE 、AONE 实验室等开发工作,支撑集团所有事业部的测试任务。并通过整合集团测试工具插件化,中间件 Docker 化等核心工作,积累了丰富的测试经验。

2017 年开始,全面负责优酷质量部平台建设工作,建立起以大数据为基础的视频质量保障体系,高效结合了实时度量、监控、灰度、告警、定位、分析等多项功能,形成一套完整质量保障解决方案,成为优酷业务线以及阿里相关多媒体质量唯一标准。

平台搭建背景

随着优酷技术栈和阿里不断整合,各客户端埋点数据参照集团的方式全部上报,但对于数据的使用,大家多是写个离线 SQL ,或者部分数据对接集团各个横向服务平台来使用。从优酷业务线角度看,没有一个垂直的大数据平台来支撑各业务线,严重影响开发的效率以及数据对业务本应有的强力支持。基于这个背景,团队临危受命,开始了大数据平台的开发工作。

平台搭建过程中“坑”

从技术角度来说,优酷大数据质量平台搭建分为三大部分:实时、离线、检索。

  • 实时框架我们选择了 Blink( Flink )和 Spark Streaming ,两个框架都能很好处理实时需求,我们在 ETL 层面选用了 Blink ,数据计算部分选用了 Spark;
  • 离线部分依托 ODPS 平台,这个平台相对功能强大,适合新人上手,简单的 SQL 就能满足业务需求;
  • 检索部分我们主要依赖 ELK 技术,并将数据存储在 OTS ( HBase )和 ElasticSearch 中用来进行实时离线度量数据查询,也包括了上面说的聚合查询、全文检索等。

在平台搭建过程中遇到不少“坑”,我们也总结了一些经验,主要分为以下两点:

  1. 成本

在开发之前,需要考虑两个成本问题:费用成本和人力成本。

大数据是特别耗费资源的,如果这方面不加以控制,产品的性价比就大打折扣,结合优酷大数据平台的经验,这块一定要强关联业务,比如说在数据预计算处理的时候,需要考虑可选维度或必选维度,亦或是哪些维护可以合并处理,这样在存储上能够极大节省空间。在离线计算过程中,如何抽象出中间表,降低计算复杂程度,节省计算资源。

再说人力成本,这个在中后期表现特别明显,随着平台发展,业务方的需求源源不断涌入,从链路上要对接数据、数据计算、存储、后端接口封装、前端展现等一系列开发工作,这就需要我们明确数据格式规范、对各环节的计算逻辑抽象,支持灵活的配置化工作等,有了通用化作为前提,大数据平台同学就可以专注链路架构上的优化,业务同学深度参与进来,这样非常有利于平台的迭代。

  1. 盲目调参

常规的参数调优,这是大数据工程师必须经历的。对于初次进行大数据平台开发的同学,建议大家不要盲目调参,要看是哪个环节出现了瓶颈,是网络问题,计算资源问题,还是数据倾斜问题等,针对性的进行参数调整,效率会更快。

平台线上质量保证

测试领域有过几个明显阶段,手工测试、自动化测试、再到持续集成,其实不外乎在追求更高的质量,更快的研发效率。但随着移动互联网高速发展,对于质量的要求要远远高于 PC 时代,测试人员的能力也需要随之提升,不仅要对接常规的开发测试需求,还要关注产品效果、线上运维情况等,也就是说测试领域未来需要复合型人才。

我们都知道现在的移动互联网产品迭代速度很快,各类设备的测试都要涵盖到,单从通用的测试角度来说,就要考虑 APP 启动时间、页面响应时间、页面滑动流畅度、崩溃、卡顿、功耗 等等,测试成本非常高,甚至大多数时候又回到了手工测试去验证。那么大数据能为测试带来哪些帮助?

首先,我们将业务关注的数据进行埋点,可以是功能、性能、用户体验、用户行为等等,这样就保证了我们测试的结果和用户感受基本一致,释放了大部分的常规测试手段,如 UI 、性能、接口等。

其次,我们将数据流程分成:线下、灰度、线上三个阶段进行保障,逐级利用真实设备的数据来保证质量,间接释放了多机型测试不充分的问题。拿优酷播放卡顿指标问题来说,用户观看视频出现一个等待圆圈开始到结束,就是一次卡顿,此时数据埋点纪录这个卡顿时长并上报到大数据平台。这样大数据平台就可以对这一指标做出各类质量方面的工作,比如:

  • 一次播放中出现了多少次卡顿、卡顿平均时长是多少
  • 卡顿超过多少的时候会导致用户退出 App
  • 卡顿分布在哪个网络是否有故障
  • 新上线的版本卡顿是否有增加

对应大数据质量平台的功能,就大致分为实时度量、监控告警、数据分析、定位排查、灰度验证等几大部分。

监控告警

传统的监控手段,对于服务器性能指标、调用链路等已经相对成熟,一般发现异常就能够确定原因。在移动互联网时代,质量这个词涵盖的不单单是线上的故障,更多的是体验。如果让用户感知的问题发现不及时或者没有发现,所有的努力都会付之东流。

所以我们的重头放在了客户端埋点数据上,把播放体验相关的埋点数据(卡顿、播放成功率)、性能指标数据(启动时间、 Crash )、关键服务返回数据( CDN 节点数据)、用户行为数据(点击行为、停留行为)等进行分类计算抽象形成 CUBE ,把能够反应在现象上的问题做成监控,来衡量我们的质量到底好还是坏。

在大数据质量平台,涉及到多维度计算,比如一次播放成功率下跌,具体是发生在安卓还是 iOS ?是全国范围还是具体某一个省?是所有移动用户还是联通用户出的问题?这就涉及到了我们如何对维度切片、钻取,维度大了发现了问题也不好定位出原因,粒度小了对于存储计算都是极大浪费。

这就需要结合业务来看,定义必选监控维度,然后将错误数据流通过 ETL 单独切分,落盘到有聚合功能 ElasticSearch 、Druid 中,做到维度进一步细化,把告警从“大面”缩减到“小面”。比如说北京市联通出现了播放成功率下跌,通过聚合发现,出错 CDN IP 高度集中,告警层面就可以直接交给网络服务定位系统去处理了。此外,监控从实时性、准确性、告警条件模型都有一些探索,我们将在 QCon 的分享中和大家做进一步交流。

智能分析

现在各大公司都在做 Trace 相关工作,阿里优酷大数据平台也不例外。在原有的服务端日志收集的基础上,融合了客户端埋点日志、客户端远程 Debug 日志、服务变更操作、以及规范了第三方服务日志( CDN 等)。这样操作有利于统一收集已发现问题的数据;当数据在手,被明确告知是有问题的,我们该如何分析?

首先,如果是错误码,我们一层一层看下去也能解决,但是有一些问题,不是错误导致的。举个例子,某天,我们这收到一个客诉反馈说看视频特别卡,突然出现的,我们查了日志没有任何报错,最后是一位细心的同学发现,用户网络 IP 在北京,CDN IP 被打到了广州。对于这类问题,就是两个 IP 字符串提取并作地域解析匹配即可。

其次,我们结合数据,要建立起一个定位知识库,把历史故障、线上 Bug 、badcase 抽象成我们的定位诊断库。

第三,也是我们现在正在做的一些事情,知识库是人建立起来的,其实这就好比监督学习,但我们想能不能用无监督学习的方式把问题定位出来呢?再举个例子,我们会做一些大型活动,但是有时发现从第一个页面跳转到第二个页面的用户转化率发出警报(只有 10% ),我们会把这一类的用户进行全链路数据检索(不只是服务端日志),然后将各类特征做聚类分析,就会惊奇的发现,绝大部份用户会有共同的特征被聚类出来,问题可能是可能关联一个服务来自于同一台服务器超时引起,也有可能是来自于同样的客户端设备因为页面加载适配问题等。所以说,未来的方向重点在于数据和算法结合起来,挖掘更大的价值。

InfoQ:感谢万传奇老师接受我们的采访,更多精彩内容请锁定 4 月 20~ 22 日的 QCon 北京站。目前 8 折报名倒计时 5 天,立减 1360 元,访问「QCon 官网」查看大会日程安排,与国内外一线技术大咖碰撞思维火花。

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2018-03-08 18:004129

评论

发布
暂无评论
发现更多内容

Spring永远的神,这绝对是目前最全面的spring全家桶学习笔记

Geek_Yin

spring 编程 程序员 Java、 跳槽季

系统故障工程师居然可以不背锅?看看几家大厂是怎么做到的!(内附复盘模板)

TakinTalks稳定性社区

SRE 故障 定责

实时数仓Workshop · 广州站 9.15 邀您参加!

Apache Flink

大数据 flink 流计算 实时计算 实时数仓

制造业专家黄培博士:沃丰科技ServiceGo 智能售后服务成就高绩效企业

科技怪咖

明势资本黄明明:创新与世界,下一代基础软件的中国突围之路

TDengine

数据库 tdengine 时序数据库

再谈回声消除测评丨Dev for Dev 专栏

声网

音频 Dev for Dev 实时互动

页面切换转场动画,英雄救场更有趣!

岛上码农

flutter ios 前端 移动端开发 8月月更

01_Linux基础-部署-VMware-Xshell-Xftp-内核-安迪比尔定理

mycpen

Linux

多路混流实操流程

ZEGO即构

央企数智化转型实践沃丰科技AI助招采平台打造全新客服体系

科技怪咖

EMQX + PolarDB-X 一站式 IoT 数据解决方案

阿里云数据库开源

数据库 阿里云 开源 :MySQL 数据库 PolarDB-X

华为云“828 B2B企业节”,积木易搭云速3D云展与您不见不散

sofiya

AI加持沃丰科技ServiceGo智能售后,让制造业服务提升“肉眼可见

sofiya

项目经理如何推进项目进度?

PingCode

中国掀起数字化浪潮|沃丰科技AI外呼机器人助家电企业潜客筛选自动化

科技怪咖

区块链合约安全系列(四):如何认识及预防公链合约中的算术溢出攻击

BSN研习社

区块链 智能合约

“外卖式”售后服务体验来袭 沃丰科技ServiceGo让售后服务更智能

sofiya

芒果TV创新研究院联合腾讯云发布“虚拟人直播互动平台”,支持千人沉浸式体验

科技热闻

如何进行企业数字化转型?数字化转型的3大核心规律

优秀

企业数字化转型

信息化赋能,移动办公系统WorkPlus助推智慧检务工作安全高效发展

WorkPlus

新定位人工智能+营销服务 沃丰科技入选国家级专精特新“小巨人”

科技怪咖

客户案例|雅森帮携手观测云,保障海量在线用户服务体验

观测云

Python 教程之数据分析(1)—— 使用 Bokeh 进行数据可视化

海拥(haiyong.site)

Python Bokeh 8月月更

iOS端如何实现MobLink的场景还原功能

MobTech袤博科技

ios sdk moblink

HR拥抱人工智能 沃丰科技AI助力星巴克、泰康保险打造智慧HR中心

sofiya

夯实中国智能制造软实力沃丰科技ServiceGo让物流机器人龙头企业售后无忧

科技怪咖

TDengine 的存储引擎升级之路

TDengine

数据库 tdengine 时序数据库

阿里云实时计算 Flink 版 x Hologres: 构建企业级一站式实时数仓

Apache Flink

大数据 flink 流计算 实时计算 实时数仓

Salesforce解散中国团队,国产SaaS软件如何完美替代

sofiya

兆骑科创创投平台,赛事活动承办,高层次人才引进

兆骑科创凤阁

对话HR专家崔晓燕 沃丰科技AI+HRSSC如何提升企业人效

科技怪咖

从0到1建立基于大数据的质量平台_大数据_万传奇_InfoQ精选文章