写点什么

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

  • 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:232396

评论

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

重磅!算能公司算丰SG2042斩获第六届数字中国建设峰会“十大硬核科技”

极客天地

算法题每日一练:螺旋矩阵 II

知心宝贝

数据结构 算法 前端 后端 三周年连更

为什么说:Linux中一切皆文件?

wljslmz

Linux 三周年连更

技术分享:如何将JSON中的日期格式字符串替换为占位符

IT蜗壳-Tango

三周年连更

如何进一步提高AI输出质量?

石云升

AI ChatGPT 三周年连更

Windows下 IDE工具常见编译错误FAQ下

鸿蒙之旅

OpenHarmony 三周年连更

算法题每日一练:无重复字符的最长子串

知心宝贝

数据结构 算法 前端 后端 三周年连更

vue2.x中keep-alive源码解析以及LRU缓存策略使用

不叫猫先生

缓存 Vue LRU keep-alive实现原理 三周年连更

IT组织架构之反思

agnostic

IT组织

Django笔记十九之manager用法介绍

Hunter熊

Python django Manager

什么是软件开发领域的 obsolete 或者 deprecated 含义

汪子熙

软件工程 软件开发 三周年连更

KubeShark: Kubernetes的Wireshark

俞凡

Kubernetes 云原生

一文了解Spring Framework 5 新 Web 框架:Spring WebFlux

Java架构历程

三周年连更

面对“失业焦虑”我们可以做些什么?| 社区征文

莪是男神

三周年征文

OpenGL入门一:基础知识及概念

轻口味

opengl 图形图像 三周年连更

音视频八股文(9)-- flv的h264六层结构和aac六层结构

福大大架构师每日一题

音视频 ffmpeg 福大大

设计一个即时群聊天系统软件(采用华为云ECS服务器作为云服务端 )

DS小龙哥

三周年连更

为什么老有人想让我们“程序员”失业? | 社区征文

se7en

三周年征文

这 30 个工具和服务可以更好地监控和管理 Linux 服务器,很全面!

wljslmz

三周年连更

C++ STL容器和算法:详解和实例演示

小万哥

c++ 容器 算法 后端 stl

Django笔记二十之手动编写migration文件

Hunter熊

Python django migration

什么是 RUM JavaScript

汪子熙

JavaScript 前端开发 三周年连更

【程序猿未来之路】作为互联网技术人的“我们”该如何破局 | 社区征文

码界西柚

4月日更 AIGC 三周年征文 三周年连更 生存指南

为什么 Go for-range 的 value 值地址每次都一样?

AlwaysBeta

Go 面试

Matlab实现周期卷积

袁袁袁袁满

三周年征文

如何实现网站访问量的统计?

海拥(haiyong.site)

三周年连更

Prometheus监控神器-自动发现篇

乌龟哥哥

三周年连更

深入理解vue2.x中Object.defineproperty()和vue3.x中Proxy

不叫猫先生

Vue 三周年连更

Qz学算法-数据结构篇(顺序存储二叉树、线索化+遍历)

浅辄

数据结构 三周年连更

2023-04-29:一个序列的 宽度 定义为该序列中最大元素和最小元素的差值。 给你一个整数数组 nums ,返回 nums 的所有非空 子序列 的 宽度之和 由于答案可能非常大,请返回对 109

福大大架构师每日一题

golang 算法 rust 福大大

1500字讲懂单体架构和微服务架构的区别

Java架构历程

三周年连更

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