Making the Web Work for Media Apps
Consumer expectations have increased for apps across all delivery platforms, and by designing scalable digital architectures content owners can deliver more compelling media experiences
[Editor's Note: This is a vendor-written article. StreamingMedia.com accepts vendor-written articles based upon their usefulness to our readers.]
Consumers have grown to expect rich online media experiences because the most successful players have set the bar for high quality interactions. As a result, media companies are under pressure to quickly and cost-effectively deliver content that is also engaged through interactive and personalized experiences. Most media companies have invested heavily in infrastructure that can deliver video across many platforms, while looking to integrate social media and more. To deliver the best experience, media companies and content distributors must focus on designing application architectures that are ever more scalable, reliable and high-performing in order to enable user experience innovation.
Evolving Best Practices for Multiplatform Media Apps
Developing a deep understanding of how users interact with an application or service is the first step toward evolving infrastructure to meet current and future needs. This includes identifying common video usage patterns and navigation trends to determine where response times are most critical, where data must be reliable and where performance bottlenecks could manifest. This will ultimately inform where investments need to be made for scalability.
In order to support the constant barrage of new devices, application design and its implementation must ensure functionality is modular. This simplifies the reuse of common elements, discourages silos, and enables rapid, cost-effective product evolution. A modular design also makes it easier to publish internal data and services to third parties to expand audience reach.
Consumers are increasingly unwilling to put up with applications that have sluggish performance, regardless of content quality.
Preventing bottlenecks as an application grows in popularity is important. Bottlenecks are often caused by a “stateful lock,” in which certain application elements are prevented from executing while they wait for another to finish. When this happens, high loads can quickly compound, cause congestion and potentially bring down infrastructure.
We’ve found that it is important to plan architecture roadmaps carefully with the right technologies and integrations, so that the infrastructure scales and performs to meet the forecasted consumer demand. For example, NoSQL technologies can balance high read or high write performance with the need for consistent data integrity across data centers or geographies. These solutions can allow for increased performance scenarios where the business has deemed it acceptable to serve “stale” data occasionally (in terms of seconds). This allows a service to defer the non-critical data synchronization, while proceeding with more critical functionality such as video streaming or page loads.
Performance can also be improved through richer client-side application caching, pre-fetching or asynchronous request models. This is particularly important for improving high-bandwidth applications such as video.
Adaptive bit rate has proven effective in delivering a seamless video streaming experience by adjusting bitrate based on the user’s available bandwidth. Client-side caching of HTTP chunks (e.g. in two-second fragments) can also improve the perceived user experience. Performance can be further improved by leveraging multiple CDNs and ensuring seamless failover between them.
DRM issues can impact video performance. For instance, license acquisition can delay video playback. This can be addressed by keeping the beginning of a video unencrypted and allowing playback to start quickly while a license request for the full content is acquired in the background. DRM performance issues can also be mitigated by extending the license window and/or caching licenses on the device.
Planning for tomorrow’s demand, today, will help guide investments in an infrastructure that grows as your business grows.
Infrastructure should be purposefully designed with those architecture demands in mind in order to reduce scaling challenges. To that end, applications that leverage modular API calls for individual application components will bring a much higher degree of scalability to a growing service.
Video storage scalability also needs to be addressed, especially in the context of adaptive bitrate. Just-in-time packaging can deliver the appropriate formats and DRM while avoiding storage of unique copies for every bit rate and license supported. The affordability of real-time packaging equipment has reached a level where the storage tradeoffs are worth serious consideration. Some providers might opt to take advantage of content factory cloud solutions, which provide similar functionality without requiring an upfront investment in encoding and storage infrastructure.
Finally, it’s important to ensure your CDN provider can support the delivery of high bitrate video content at scale.
It is most important for an application to appear responsive and not hang during use. 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.
For example, if an application component cannot respond in time (e.g. displays slightly stale user comments), this is a better experience than impacting page load time. From the user’s perspective, the application appears functional, not hanging or displaying error messages.
Media companies should accept that no component of a complex system is truly 100 percent available, and design for the failure of individual components. The use of virtualization and cloud platforms allow for an operator to build a system that is redundant against individual and even datacenter level failures, while still remaining cost effective.
Only then can organizations effectively develop digital architectures to best fit unique performance and scalability needs to greatly improve offerings and better position for future demand and success.