写点什么

优酷大剧全链路技术保障探索和实践

  • 2020-02-19
  • 本文字数:2081 字

    阅读完需:约 7 分钟

优酷大剧全链路技术保障探索和实践

优酷大剧全链路技术保障探索和实践

一、什么是大剧保障?

优酷大剧保障主要是对大剧、大综等节目视频上线前和上线后进行质量保障。大剧视频上线所涉及方很多:比如播放(类似报错、卡住、黑屏、声音等问题)、付费权益、运营配置、用户舆情反馈是否正常等。


总的来说,优酷大剧保障主要是在大剧大综开播前、开播后对视频进行质量保障,及时发现问题并解决,避免资损和客诉,使用户有更好的观影体验。

二、 如何保障?

大剧保障基本涵盖了大剧生命周期的全链路各个阶段保障,其中核心环节包括以下方面:



针对图中的各阶段,我们建设了大剧上线流程中需要保障的环节以及能力:


  1. 视频生产

  2. 视频生产环节保障包括片源质量、上传转码质量等维度,主要以视频质量检测为主。

  3. 1) 介质到位时间,在上线前 24 小时检查介质是否到位。

  4. 2) 介质质量,采用机检和人工检查两种方式进行,保证片源正常。

  5. 3) 上传转码耗时评估,重点关注开播前转码完成情况。

  6. 4) 转码完成的流会自动进入视频质量检测,检测其声音、画质、数据等。

  7. 5) 直播流生产场景,主要检测源流规格、流稳定性等源流质量,录制过程中关注负载、排队、耗时、画质等。

  8. 运营管理

  9. 1) 视频、节目播控策略检测及实时监控。

  10. 2) 媒资数据检查,如广告点位、编目、其他重要字段,实时变化通知。

  11. 权益管理

  12. 付费会员是视频网站的重要上帝用户,保证会员权益重中之重:

  13. 1) 会员可看视频的会员权益正确。

  14. 2) 付费点播的交易、权益正确。

  15. 3) 视频相关付费属性的校验和实时监控。

  16. 播放环节

  17. 播放环节是最主要的环节。以前有个痛点:视频在开播前是屏蔽状态,无法提前通过前端播放,只能等开播后到线上观看,如果有问题则为时已晚。为了解决这个问题,我们建设了播放预览能力:

  18. 1) 播放提供预览环境,可以播放未上线的视频,同时与线上真实场景保持一致的会员权益、广告、播放策略等,保证上线前可以模拟上线后的真实数据。

  19. 2) 同时优酷提供 APP、PC 等客户端预览环境,得以在各端验证播放效果。

  20. 另外,我们也将播放自动化测试能力赋能在播放环节,比如接口自动化测试、播放器自动化测试。

  21. 线上监控

  22. 1) 上线之后,除了有全量的播放监控,也有针对大剧建立了相应指标监控和报警,如播放成功率、卡顿率等。

  23. 2) 对弹幕评论、客诉反馈、社会舆情中的信息,建立了实时监控,发现问题及时响应排查。

三、大剧保障平台

围绕以上各环节,我们建立了大剧保障平台,提供自动或人工的检测机制,并有相关变更和事件的通知触达能力。


下图是我们覆盖到的业务以及相关的功能。



  1. 大剧管理

  2. 我们会将重要级别的剧集自动或手动方式录入到大剧保障平台,平台将自动拉取节目下的正片视频、介质,上线时间等信息,大剧保障将围绕上线时间展开一系列的保障。


  3. 服务管控

  4. 大剧上线期间,相关信息第一时间同步给各环节服务方,核心应用避免在大剧上线期间发布,如有服务发布或变更出现问题,第一时间回滚,避免问题扩大化。为了避免大剧上线期间因服务发布产生的问题,我们制定了服务管控规则:

  5. 1) 大剧上线期间禁止相关业务发布变更,会在开播前机器人通知所有人。

  6. 2) 热度比较高的剧,实施封网管控。

  7. 问题触达

  8. 建立大剧保障钉钉群,将所有相关业务方技术、产品、运营等同学集中到一起,并配置机器人用于发送报警通知。系统支持订阅大剧重要字段的变更通知,实时监听正片的各个字段变化,有异常则报警通知。同时将各个业务方已有的保障和报警能力接入进来。

  9. 检测预警消息接入后,各环节消息非常多,重要消息有可能会被忽略,那如何优化消息触达,不错过重要异常信息呢?通过持续建立和优化机器判断的能力,重要异常情况发送报警并精准触达到指定人。同时我们会存储以上所有操作变更记录和时间点,用于快速排查问题。

  10. 机器和人工保障

  11. 1) 系统自动执行各个环节的机器检测,并提供人工 check 机制,双重保障。


  12. 2) 上线前实时的检测以及结果直观的展示。


  13. 3) 上线前 24 小时播报检测情况,比如在上线前的 12 小时、4 小时、1 小时播报当前检测状态。这样不仅让各方知晓即将上线剧集,也了解各个业务的检查状况。

  14. 线上监控

  15. 1) 上线后的实时弹幕评论预警,客诉预警。其中我们在弹幕评论这块做到了自动化过滤关键字来实时报警,这也是比较准确和及时的舆情来源。

  16. 2) 上线后的播放质量监控。监控各端播放卡顿、成功率、错误数等情况,及时关注各端播放情况。

  17. 应急预案

  18. 大剧建设了发现问题的能力,也要有应对快速止血的机制。我们确定了出现问题时的预案项以及相关人员,保证问题第一时间准确的传达和快速止血,保证及时止损和问题快速修复,减少对用户的影响。

四、总结

通过以上大剧保障能力的建设,我们在一个平台上可以直观的看到每部大剧在上线前各个环节的健康状态,异常变动有预警通知,有线上的稳定性监控以及舆情监控,线上问题有相对应的快速止血策略,整个保障链路形成闭环。目前平台相关能力仍在持续建设中,横向我们将覆盖更多的相关联业务方,纵向将持续细化和加强每个业务方的保障能力。我们的目标是向着自动化、智能化发展,无人值守,做到上线前“心里有底”,上线后“心里不慌”。


作者介绍


党高锋,阿里文娱高级测试开发工程师。


相关阅读


优酷播放测试体系构建及平台化整合方案


优酷如何构建覆盖全网的播放白盒测试体系


2020-02-19 14:232164

评论

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

Vue进阶(二十七):Vuex 之 getters, mapGetters, ...mapGetters详解

No Silver Bullet

Vue vuex 8月日更

Prometheus监控的4个黄金指标

Rubble

Prometheus 8月日更

Hive企业级性能优化

五分钟学大数据

hive hive性能优化

这几个棘手的面试常见问题,如何高情商的回答?

架构精进之路

情商 8月日更

LeetCode题解:781. 森林中的兔子,贪心,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

在openEuler上做开发?这个大赛拿出30万寻找开源的yyds

华为云开发者联盟

开源 操作系统 服务器 openEuler 鲲鹏

如果面试官问你 JVM,额外回答逃逸分析技术会让你加分!

陈皮的JavaLib

Java 面试 JVM 逃逸分析 8月日更

从0开始的TypeScriptの五:webpack打包typescript

空城机

JavaScript typescript 大前端 8月日更

送你两个神器,关系数据库数据入湖轻松应对

华为云开发者联盟

数据库 数据湖 数据迁移 关系数据库 实时数据

【Vue2.x 源码学习】第三十三篇 - diff算法-收尾+阶段性总结

Brave

源码 vue2 8月日更

失败的小项目-外卖cps

箭上有毒

8月日更

手撸二叉树之将有序数组转换为二叉搜索树

HelloWorld杰少

数据结构与算法 8月日更

【Flutter 专题】70 图解自定义 ACEStepper 步进器

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

Mybatis自定义拦截器与插件开发

码农参上

8月日更

Django 做个小后台,细节在完善一点点,滚雪球学 Python 第三阶段

梦想橡皮擦

8月日更

Rust从0到1-模式-相关语法

rust 语法 模式 Patterns Syntax

【LeetCode】从上到下打印二叉树Java题解

Albert

算法 LeetCode 8月日更

small-spring 代码贡献者3个月,敢说精通Spring了,分享我的总结!

小傅哥

spring 小傅哥 cglib aware BeanPost

金融级IT架构:网商银行是如何进行数字化落地的

博文视点Broadview

全球增长最快的对象存储开源系统MinIO

liuzhen007

8月日更

JavaScript Array 方法详解

程序员海军

JavaScript 方法 大前端 array 引航计划

七夕赶上服务器架构升级,女朋友的约会怎么办

华为云开发者联盟

华为云 FunctionGraph DevStar Serverless架构 服务器架构

命令行操作Java程序的那些事~

Bob

Java 命令行 8月日更

一文带你了解 TreeMap ,LinkedHashMap 的主要特点

4ye

Java 后端 hashmap LinkedHashMap 8月日更

netty系列之:自动重连

程序那些事

Java Netty 程序那些事 响应式系统

Go语言那些事儿之管道的关闭

Regan Yue

Go 语言 8月日更 管道

Android开发:引入重复包报错Error:Execution failed for task ‘:app:transform...’解决方法

三掌柜

8月日更 8月

Linux之netstat命令

入门小站

Linux

oeasy教您玩转vim - 14 - # 行头行尾

o

在线年龄计算器

入门小站

工具

Android开发:获取安卓App版本号的方法步骤

三掌柜

8月日更

优酷大剧全链路技术保障探索和实践_软件工程_阿里巴巴文娱技术_InfoQ精选文章