-->
Save your FREE seat for Streaming Media Connect this August. 现在注册!

Making the Web Work for Media Apps

[Editor's Note: This is a vendor-written article. StreamingMedia.Com接受供应商写的基于对我们读者有用性的文章.]

消费者越来越期待丰富的在线媒体体验,因为最成功的玩家已经为高质量的互动设定了标准. 结果是, 媒体公司面临着快速、经济高效地发布内容的压力,这些内容也通过互动和个性化体验进行参与. 大多数媒体公司都在能够跨多个平台传送视频的基础设施上投入了大量资金, while looking to integrate social media and more. To deliver the best experience, 媒体公司和内容发布者必须专注于设计更具可扩展性的应用程序架构, reliable and high-performing in order to enable user experience innovation.

Evolving Best Practices for Multiplatform Media Apps

深入了解用户如何与应用程序或服务交互是发展基础设施以满足当前和未来需求的第一步. 这包括识别常见的视频使用模式和导航趋势,以确定响应时间最关键的地方, where data must be reliable and where performance bottlenecks could manifest. 这将最终告知需要在哪里进行可扩展性投资.

In order to support the constant barrage of new devices, 应用程序设计及其实现必须确保功能是模块化的. This simplifies the reuse of common elements, discourages silos, and enables rapid, cost-effective product evolution. 模块化设计还使向第三方发布内部数据和服务变得更加容易,从而扩大受众范围.

表演

消费者越来越不愿意忍受性能不佳的应用程序, regardless of content quality.

Preventing bottlenecks as an application grows in popularity is important. Bottlenecks are often caused by a “stateful lock,在这种情况下,某些应用程序元素在等待另一个元素完成时被阻止执行. When this happens, high loads can quickly compound, cause congestion and potentially bring down infrastructure.

我们发现,用正确的技术和集成仔细规划架构路线图是很重要的, 这样基础设施就可以扩展和执行以满足预测的消费者需求. 例如, NoSQL技术可以在高读写性能与跨数据中心或地理位置的一致数据完整性需求之间取得平衡. 这些解决方案可以支持提高性能的场景,在这些场景中,业务认为偶尔(以秒为单位)提供“陈旧”数据是可以接受的。. This allows a service to defer the non-critical data synchronization, 同时处理更关键的功能,如视频流或页面加载.

还可以通过更丰富的客户端应用程序缓存来提高性能, pre-fetching or asynchronous request models. 这对于提高视频等高带宽应用尤其重要.  

通过根据用户可用带宽调整比特率,自适应比特率已被证明可以有效地提供无缝视频流体验. Client-side caching of HTTP chunks (e.g. in two-second fragments) can also improve the perceived user experience. 通过利用多个cdn并确保它们之间的无缝故障转移,可以进一步提高性能.

DRM issues can impact video performance. For instance, license acquisition can delay video playback. 这可以通过保持视频开头未加密并允许在后台获得完整内容的许可请求时快速开始播放来解决. DRM性能问题也可以通过扩展许可窗口和/或缓存设备上的许可来缓解. 

可伸缩性

Planning for tomorrow’s demand, 今天, 将有助于指导基础设施的投资,随着业务的增长而增长.

在设计基础设施时,应该有意识地考虑到这些架构需求,以减少可扩展性方面的挑战. 为此目的, 为单个应用程序组件利用模块化API调用的应用程序将为不断增长的服务带来更高程度的可伸缩性.

视频存储的可扩展性也需要解决,特别是在自适应比特率的背景下. 即时打包可以提供适当的格式和DRM,同时避免为支持的每个比特率和许可证存储唯一的副本. 实时包装设备的可负担性已经达到了存储权衡值得认真考虑的水平. 一些提供商可能会选择利用内容工厂云解决方案, 哪些提供了类似的功能,而不需要在编码和存储基础设施方面进行前期投资.

最后, 确保您的CDN提供商能够支持大规模的高比特率视频内容交付是很重要的.

可靠性

最重要的是应用程序在使用过程中表现出响应性,而不是挂起. To accomplish this, an architecture’s components must be highly reliable, both individually and collectively. In the cases where that is not feasible, there are techniques that can help achieve the appearance of reliability.

例如, if an application component cannot respond in time (e.g. 显示稍微过时的用户评论),这比影响页面加载时间更好. From the user’s perspective, the application appears functional, not hanging or displaying error messages.

媒体公司应该接受这样一个事实:一个复杂系统中没有任何组件是真正100%可用的, and design for the failure of individual components. 虚拟化和云平台的使用允许运营商构建一个冗余的系统,以应对个人甚至数据中心级别的故障, while still remaining cost effective.

结论

设计应用程序架构没有放之四海而皆准的方法. Every application or service will be different in terms of user base, volume and type of content, goals for growth and more. While every company will ultimately have a different approach, achieving high performance, scalability and reliability should always be a high priority. 

只有这样,组织才能有效地开发数字架构,以最适合独特的性能和可伸缩性需求,从而大大改进产品,并为未来的需求和成功奠定更好的地位.

Streaming Covers
免费的
for qualified subscribers
订阅 Now 最新一期 过去的问题