使用 Akamai 云封装器 目录表 33456内容消费正在演变。方法以优化用户的流媒体体验生产环境中的挑战增加简洁性和冗余性降低计算和流出成本 方法以优化用户的流媒体体验 内容消费正在演变。 Roku 是领先的流媒体平台,改变了人们观看电视的方式。成立于 2002 年,Roku 一直处于流媒体行业创新的尖端,创造了功能强大且易于使用的设备,使用户能够访问包括 Netflix、Hulu 和 Amazon Prime Video 在内的广泛流媒体服务。Roku 的设备款式多样,尺寸各异,从流行的流媒体棒到高端的 RokuUltra,后者提供了诸如 4K 和 HDR 流媒体等先进功能。除了 Roku 的设备外,Roku 强大的操作系统——Roku OS 还集成到许多智能电视中,提供直观的用户界面,使得搜索和流媒体内容变得非常便捷。凭借超过 7000 万活跃账户和不断改进产品的承诺,Roku 仍是在线流媒体领域的重要参与者。 一种方法是在媒体准备过程中使用动态打包技术。动态打包是一种广泛使用的技巧,许多视频流平台采用它来优化在线内容传输。通过将视频分成更小、更易管理的块,它使得视频传输更有效率。这些块使得播放更快更流畅,无论用户的网络速度或设备类型如何。动态打包还使得自适应比特率流成为可能。自适应比特率允许用户设备自动选择最佳的视频质量,而不会引起缓冲或播放中断。 然而,这些好处是有代价的。将视频分割成更小的片段需要额外的计算资源,从而增加了云计算成本。所需资源的数量取决于所需的比特率。比特率越少,计算和存储成本越低,但可能会在一些用户之间产生质量和体验的权衡。比特率越多,整体体验会更好,但每个新版本都需要更多的CPU来生成和更多的对象存储来维护。 2017年,Roku推出了Roku频道,该频道迅速攀升成为最受欢迎的免费广告支持流媒体服务之一。Roku为其流媒体视频内容建立了自己的视频平台,并专注于在规模提供媒体的同时保持卓越的用户体验。 所有条件相同,更多的比特率也会降低内容分发网络的缓存效率。CDN运作的原理是一个单一的对象可以从云端一次性检索出来,然后分发给数百万个用户。这种复用减少了云端的请求数量,减少了传输的字节和成本。它还通过允许CDN在不扩大计算或存储能力的情况下吸收大部分流量,使基础设施更加高效地扩展。增加对象数量,例如添加更多的比特率,会导致更多的文件版本,每个版本都需要被缓存。如果不加以处理,这可能会降低缓存命中率,增加出口字节,并要求更多的计算资源。 生产环境中的挑战 多云和多个CDN架构加剧了这些挑战。使用多个CDN来传输多个比特率会进一步降低缓存命中率,因为每个CDN现在都必须单独检索内容,才能进行传输。出流量成本会因使用的CDN数量而成倍增加。 Roku使用各种云区域和CDN向全球受众提供服务。全球负载均衡根据多个条件将终端用户流量引导到最合适的CDN。然后,CDN在消耗云资源或出口带宽的情况下为请求的视频提供服务。但是,如果那是第一个请求该视频的用户怎么办?在这种情况下,该视频不会在缓存中。因此,CDN将不得不从适当的区域检索该视频。 集成也是一个挑战。云服务和CDN在接口和功能上存在差异——使用多个提供商的一个原因。功能上的差异提供了灵活性,但同时也给集成和运营带来了挑战。 首先,然而,需要计算资源来准备——或打包——视频片段。这个过程是动态的,因为只有在用户请求流时才会进行打包。因此,视频不在CDN缓存中会导致1)额外的CPU用于准备流,2)额外的云出口费用。这些缓存未命中不仅会增加成本,还会由于与打包执行和传输相关的延迟而影响用户体验。由于缓存在不同提供商之间不可共享,仅添加CDN就会通过增加潜在缓存未命中的数量而加剧这种情况。挑战在于确保CDN缓存被填充,同时最小化云计算和所需的出口。 随着数百万订阅者每日流式传输数百亿字节的内容,这些挑战对于像Roku这样的公司来说是非常显著的。在确保最佳用户体验的同时控制成本,对于持续创新至关重要。为了减轻成本和复杂性,Roku转向Akamai来增强其缓存基础设施。 增加简洁性和冗余性 解决方案是额外增加多云计算和多CDN缓存层——Akamai云包裹器。云包裹器为每个客户提供专门的缓存足迹,以维护缓存并在面临嘈杂的邻居的情况下保持缓存。它有效地缓存并复制跨不同、逻辑分组区域的对象,以保持高可用性。云包裹器适应流量特性,并在流行度增加时更频繁地复制对象。 除了一个集中的缓存层,Cloud Wrapper还优化了用于缓存对象的地域。一致的哈希算法保证了Cloud Wrapper始终从一个特定的地域获取同一个视频文件。它同时还足够智能,足够考虑在缓存决策中的头部信息和查询字符串——这两者都对于最大化卸载和减少云资源消耗至关重要。 当然,不能为了节约资源而牺牲弹性。架构必须在不可避免的组件故障期间保持用户体验。这需要在多个层面实现冗余。Cloud Wrapper的额外缓存层提供了这种冗余。它继续在源失败期间提供服务,以维持服务。服务本身也是高度冗余的。它将内容复制到多个独立区域。这种复制的内容对任何CDN都可用,消除了单点故障。 Cloud Wrapper 被部署在内容分发网络(CDN)和云区域之间。它为可缓存的用户提供了一个单一、可靠的聚合点,无论来源云或目标 CDN 是什么。这个额外的层级会自动缓存任何 CDN 发送的对象,有效地实现了 CDN 之间的缓存共享,无需投入昂贵的云计算或网络资源。额外的缓存层还可以减少单个 CDN区域对云基础设施的请求,降低单一和多云 CDN 架构中的云成本。 降低计算和流出成本 动态包装计算成本降低35% 为了实现解决方案的价值,您必须首先实施它。Cloud Wrapper 对多云和 CDN 的原生支持确保这不会成为障碍。一旦部署到位,Roku 立即在其动态包装服务所消耗的计算和出口量上看到了成效。两种使用趋势都极其显著。下表比较了 Cloud Wrapper 实施前后10 天的使用情况,并突出了两者之间的降低。 内容仍然是王。在与该内容互动时产生负面用户体验会侵蚀甚至最忠诚粉丝的好感。动态包装等技术的存在是为了为消费者和内容提供他们应得的经验。这些技术需要额外的计算和网络资源。这增加了成本并使有效的、低延迟的内容分发变得复杂。Roku通过重新思考其内容缓存的方法来应对这些挑战——通过解决复杂性但不牺牲灵活性。架构上的微小变化——添加一个云和CDN无关的缓存层——使他们能够在不影响用户的情况下降低成本,并为他们的下5000万观众做好准备。