加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

Netflix应用架构之用于本性化和保举的体系架构

发布时间:2019-09-08 13:26:21 所属栏目:建站 来源:架构师之路
导读:本文我们将试探怎样建设一个可以或许交付并支持快速创新的软件架构。提出一种可以或许处理赏罚大量现稀有据、相应用户交互并易于试验新的保举要领的软件系统布局并非易事。在这篇文章中,我们将描写我们怎样办理Netflix面对的一些挑衅。 起首,我们在下图中展示了保举
副问题[/!--empirenews.page--]

本文我们将试探怎样建设一个可以或许交付并支持快速创新的软件架构。提出一种可以或许处理赏罚大量现稀有据、相应用户交互并易于试验新的保举要领的软件系统布局并非易事。在这篇文章中,我们将描写我们怎样办理Netflix面对的一些挑衅。

起首,我们在下图中展示了保举体系的总系一切图。该系统布局的首要组件包括一个或多个呆板进修算法。

Netflix应用架构之用于本性化和保举的体系架构

对付数据,我们能做的最简朴的工作就是将其存储起来,以便稍后举办脱机处理赏罚,这就引出了打点脱机功课的部门系统布局。然而,计较可以离线、近线或在线举办。在线计较可以更好地相应最近的变乱和用户交互,但必需及时相应哀求。这可以限定所行使算法的计较伟大度以及可处理赏罚的数据量。离线计较对数据量和算法的计较伟大度的限定较小,由于它以批处理赏罚方法运行,对时刻的要求较量宽松。可是,因为没有包括最新的数据,在更新的进程中很轻易变得陈旧。

本性化系统布局中的一个要害题目是怎样故无缝的方法组合和打点在线和离线计较。近线计较是这两种模式之间的一种折衷,在这种模式下,我们可以执行相同于在线的计较,但不要求它们是及时的。模子实习是行使现稀有据天生模子的另一种计较情势,该模子稍后将在现实计较功效时行使。系统布局的另一部门描写了变乱和数据分发体系必要如那里理赏罚差异范例的变乱和数据。一个相干的题目是怎样组合差异的信号和模子,这些信号和模子是离线、近线和在线体系所必要的。最后,我们还必要找出怎样故一种对用户故意义的方法组合中间保举功效。

本文的别的部门将具体先容此系统布局的这些组件及其交互。为了做到这一点,我们将把一样平常的图解析成差异的子体系,而且我们将具体接头每一个子体系。当您继承阅读本文时,值得记着的是,我们的整个基本办法都运行在民众Amazon Web Services云上。

Offline, Nearline, and Online Computation

Netflix应用架构之用于本性化和保举的体系架构

如上所述,我们的算法功效既可以在线及时计较,也可以离线批量计较,可能在两者之间的近线计较。每种要领都有其利益和弱点,必要思量到每种用例。

在线计较可以快速相应变乱并行使最新的数据。譬喻,行使当前上下文为成员组装一个举措影戏库。在线组件受可用性和相应时刻处事级别协议(SLA)的束缚,SLA指定了在我们的成员守候提议呈现时相应客户端应用措施哀求的流程的最大耽误。这使得用这种要领来拟合伟大且计较劲大的算法变得越发坚苦。另外,在某些环境下,纯在线计较也许无法满意其SLA,因此思量快速回退机制(如规复到估量算功效)老是很重要的。在线计较还意味着所涉及的各类数据源也必要在线可用,这也许必要特另外基本办法。

另一方面,离线计较应承在算法要领上有更多的选择,好比伟大的算法,而且对行使的数据量有更少的限定。一个简朴的例子也许是按期聚合来自数百万影戏播放变乱的统计数据,以编译保举的基准风行度指标。离线体系也有更简朴的工程需求。譬喻,可以很轻易地满意客户机施加的宽松相应时刻sla。可以在出产情形中陈设新的算法,而不必要在机能调优方面投入太多精神。这种机动性支持火速创新。在Netflix,我们操作这个来支持快速尝试:假如一个新的尝试算法执行慢,我们可以选择简朴的陈设更多的Amazon EC2实例来到达所需的吞吐量运行尝试,而不是耗费名贵的工程时刻算法的优化机能,也许小的营业代价。然而,因为离线处理赏罚没有很强的耽误需求,它不会对上下文或新数据中的变动做出快速回响。最终,这也许导致过期,低竣工员的体验。离线计较还必要存储、计较和会见大量估量算功效集的基本办法。

近线计较可以看作是前两种模式的折衷。在本例中,计较的执行与在线环境完全沟通。可是,我们删除了在计较功效时当即提供功效的需求,并可以存储它们,从而应承它是异步的。近线计较是按照用户变乱举办的,因此体系可以在哀求之间做出更快速的相应。这为每个变乱也许举办的更伟大的处理赏罚打开了大门。譬喻,更新提议,以反应在成员开始寓目影戏之后,影戏已经当即被寓目。功效可以存储在中间缓存或后端存储中。近线计较也是应用增量进修算法的一种天然配置。

在任何环境下,选择联机/近线/脱机处理赏罚都不是一个非此即非的题目。全部的要领都可以并且应该团结起来。组合它们的要领有许多。我们已经提到了行使离线计较作为备份的设法。另一种选择是行使离线历程预先计较功效的一部门,而将算法中本钱较低或上下文敏感的部门留给在线计较。

乃至建模部门也可以以离线/在线殽杂方法完成。在传统的监视分类应用中,分类器必需从标志数据批量实习,而且只能在线应用于对新输入举办分类,这并不天然得当。然而,矩阵解析等要领更天然地得当于殽杂的在线/离线建模:一些身分可以离线预先计较,而另一些可以及时更新,以建设更奇怪的功效。其他非监视要领,如集群,也应承离线计较集群中心和在线分派集群。这些例子表白,一方面可以将我们的模子培训分别为大局限的、隐藏伟大的全局模子培训,另一方面可以在线执行更轻松的特定于用户的模子培训或更新阶段。

Offline Jobs

Netflix应用架构之用于本性化和保举的体系架构

当运行本性化呆板进修算法时,我们必要做的大部门计较都可以离线完成。这意味着可以将功课打算为按期执行,而且它们的执行不必要与功效的哀求或暗示同步。这类使命首要有两类:模子实习和中间功效或最终功效的批处理赏罚计较。在模子实习事变中,我们网络相干的现稀有据,应用呆板进修算法天生一组模子参数(我们将其称为模子)。这个模子凡是会被编码并存储在一个文件中供往后行使。固然大大都模子都是离线批处理赏罚模式培训的,但我们也有一些在线进修技能,个中增量培训确实是在线执行的。批量计较功效是上面界说的离线计较进程,我们行使现有的模子和响应的输入数据来计较功效,这些功效将在稍后用于后续的在线处理赏罚或直接泛起给用户。

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读