本文为爱奇艺智能内容中台系列稿件的第一弹,接下来我们还会陆续为大家带来爱奇艺在智能内容生产、运营上的一系列探索,敬请期待。
无人值守系统是爱奇艺内容中台的一个重要智能化组件。
首先,对于业务密度大、流程长、依赖服务多的业务系统而言,在实际运行当中,故障的出现是一种常见现象,某种程度上是一种常态。所以故障出现后,能及时发现、及时处理是对线上运行业务系统的必然要求。常规的方式是报警+人工介入,这种方式导致了必须有人值守,而人工介入的时效性不好保证,同时人工成本也必然增加。
爱奇艺内容中台同样面临上述问题,尝试通过技术手段解决系统复杂性带来的问题,是本系统的基本思路,也是中台智能化的重要方向。对比传统的监控系统,我们需要更智能化的服务来完成监控的同时,兼顾故障智能化处理,同时又方便其他处理手段介入。无人值守系统是在上述背景下由爱奇艺内容中台研发团队设计研发的智能化开放式故障值守系统。
01
无人值守系统的目标是辅助业务系统达到流程自动化、结果可信赖、无需人工值守。
在项目设计之初,我们的初衷是:在爱奇艺中台节目生产过程中不需要人工盯盘来保障节目生产流程正常、上线准时。在出现问题的时候及时发现、自动修复、风险预警、通知人工处理等以保障节目准时上线。
基于系统的目标,需要系统具有如下能力:
02
概括起来,基本思路是:首先实现业务系统运行情况的监控功能,将业务运行数据和异常收集到无人值守系统,在此基础上,通过对数据的实时智能分析,实时发现系统运行故障和业务数据异常情况。然后交由故障和业务异常处理模块进行异常的智能处理,从而达到自动化异常和故障处理,最终实现无人值守和系统智能化恢复的目的。
系统运行流程介绍:
采集生产环节数据到无人值守系统,这里主要通过爱奇艺的中台数据中心采集。业务系统投递数据到中台数据中心,无人值守系统从中台数据中心采集数据。
由决策引擎对采集的数据进行实时分析,根据SLA、异常、阈值等配置分析出异常数据,形成单独的事件。
将事件投递到事件处理引擎Beacon。
事件处理引擎根据不同事件配置的处理流程进行处理。事件的处理流程完全配置化,支持故障修复、报警通知、故障恢复检测、故障统计等。
训练引擎使用中台数据中心的离线数据训练系统故障分析模型,模型数据再提供给决策引擎用于决策。
03
下面逐一介绍系统的核心功能模块:
3.1 运行数据实时采集模块(基于中台数据中心)
通过爱奇艺内容中台团队实现的OLTP基础组件(中台数据中心),实时采集各个功能模块的运行情况和业务数据进度和状态。OLTP基础组件(中台数据中心)给爱奇艺内容中台实时分析处理提供支持,中台运行的各类数据可以很方便的投递到该组件,并且提供了数据的监听和查询功能,能支持TB集海量数据的管理和维护。中台数据中心系统会在后续的系列文章中详细介绍,这里不再展开。
数据采集流程:
下面以专业内容生产过程(PPC)为例:
制作投递:制作服务运行过程中,将制作状态、成片生产状态,投递中台数据中心。
运营流生产投递:运营流生产过程中将视频流生产状态、音频生产状态、字幕生产状态投递中台数据中心。
审核投递:审核系统将审核状态、审核时间等信息投递中台数据中心。
发布投递:发布系统将码流发布状态兜底中台数据中。
中台数据中心获取到数据后,发送数据变更通知到RMQ队列,无人值守系统监听数据变更,将数据拉取到无人值守系统。从而获取节目从制作到最终发布的运行数据,完成数据采集。
基于采集的数据,实时分析系统和业务运行情况,决策引擎主要提供如下功能:
错误探查:实时探测系统和业务错误,对错误进行统一管理,发送事件。
超时预警:基于业务节点的SLA配置,对超时业务行为进行探测和统一管理,发送事件。
可配置化策略:主要包括业务功能无人值守接入的配置和业务功能的SLA配置、权限配置、统计通知配置等。
决策引擎的运行就是服务边工作边收集进度及系统运行信息,不断check服务进度是否正常、是否有异常状况或者超时状况,旨在能够在出问题时的第一时间发现问题。
按照下图的逻辑继续工作:
服务模块启动后,发现失败或者超时后,通知失败和超时事件给外部,同时,检测系统业务单元的运行进度,判断进度是否正常,不正常的通知进度滞后事件给外部。
上面介绍了逻辑流程,下面介绍服务模块的运行逻辑:
服务模块的主要概念:
数据源:数据源主要是中台数据中心,播控的部分数据从RMQ采集。数据源的数据由业务系统投递到中台数据中心。
Process:完成数据从数据源采集到无人值守系统,不同的业务分别有不同的process,不同的业务会有不同的采集处理方式。
Filter:完成数据的过滤,采集过来的数据有些是系统不需要的,有些字段是不需要关心的,filter负责把无效的数据过滤掉。
Transform:数据的转换,统一转换成决策需要的数据结构。
规则模块:规则的执行,承接transform过来的数据,执行配置好的规则,输出成功、失败、开始三种规则结果。
决策模块:决策模块是做超时判断的,超时判断和普通的成功、失败不同,需要不停比较当前时间和进度来判断任务是否超时。
延迟消息模块:通过延迟消息,定时未来某个时间来校验业务的运行是否超时。
Sink回写:超时、超预期上线时间等结论回写数据源。
服务模块运行按照上面概念的顺序运行,运行中发现的事件投递给外部。下图:
邮件等通知功能对接:对接企业邮件系统等,这是通知功能的基础组件。
04
"serviceCode", "needAIInsertFrame", "needAudit","bitrateCode", "platform", "resolution"......
05
06
07
关注我们,更多精彩内容陪伴你!