Streaming video from the cloud is not a new concept, but that doesn't mean it's not without challenges. One particularly difficult problem is delivering real-time content with minimal latency, so that different users get the exact same content at precisely the same time.
The challenge of real-time streaming of video with minimal latency is one that Chicago-based Phenix is tackling with its platform that uses cloud services to enable its service. Bill Wishon, chief product officer at Phenix, told ITPro Today that while online video streaming quality has advanced over the past decade, latency remains an issue, with online video sometimes 30 seconds or more behind terrestrial streams of live content.
"Phenix was founded with the idea in mind that we would be able to provide large-scale, high-quality streaming in real time," he said.
Real-time video with low latency provides users with a truly interactive experience with shared content and events, since everyone is seeing the same thing at the same time, according to Wishon. Among Phenix's customers is Disney/ABC, which used Phenix during the 2019 Oscars to deliver a real-time stream of celebrities in the audience during the event.
Looking Beyond a Content Delivery Network
In the past, the challenge of streaming video was commonly solved with the use of a content delivery network (CDN) provider, but that's not enough to solve the latency problem, according to Wishon. Before joining Phenix in 2018, Wishon spent nine years at CDN provider Akamai, serving in a number of roles.
"Latency is a word that means the distance between two points in time, and it applies to different parts of the architecture differently," he said.
For a CDN, Wishon said latency is about the round-trip time for data to travel between a web browser and the CDN's edge network servers, but that's only one piece of video latency. Other elements that contribute to real-time latency are video encoding and transcoding for different bit rates and the impact of buffering.
"The end-to-end video latency starts at the moment when photons enter the camera at one end to when photons come out of your screen at the other end. That's the latency that Phoenix is focused on," Wishon said.
Reducing Real-Time Video Latency in the Cloud
Given that Phenix covers live events, the scalable nature of resources in the cloud is a key benefit. By design, the Phenix platform can run on a local developer machine and the same code can then scale out to run on a globally scaled cloud network.
Phenix's use of the cloud is a bit different from that of many cloud providers, which tend toward enterprise deployments, in Wishon's view. He noted that Phenix is not an enterprise use case and has a unique set of needs for real-time streaming, which puts different loads on the network. The ability to spin up a virtual instance quickly to meet demand is a key requirement for Phenix as every nanosecond has an impact.
While Phenix works with several cloud providers, it increasingly is choosing to use Oracle Cloud Infrastructure. Oracle worked directly with Phenix to help align technology needs, Wishon said. Additionally, connectivity between different Oracle cloud points of presence helps reduce Phenix's latency.
"Oracle's been really good at delivering what we need from an infrastructure provider with the ability to scale the network and connectivity, and generally just being there for us as we push the cloud in the direction that we needed to go in terms of our demands for real-time delivery," he said. "We do run within multiple clouds, but we're shifting a lot of our traffic and usage over to Oracle because their system performs better."
To ensure availability, it's critical that Phenix has a multi-cloud deployment.
"We want to make sure that no matter what happens to any individual provider that our service is able to continue uninterrupted, to meet service-level agreements with our customers," Wishon said.
During a recent event, Google Cloud had an outage, but because Oracle was still up, Phenix was able to continue operations, even though portions of the company's points of presence that were hosted at Google weren't available, he said.
In the Cloud, but Not Cloud-Native Kubernetes
Many organizations choosing to deploy in the cloud use the Kubernetes container orchestration system, an approach that is referred to as being cloud-native.
Phenix does not use Kubernetes as an orchestration layer, for a very specific reason — it doesn't enable the low latency that real-time video requires. Instead, Phenix built out its own orchestration system that uses both virtual machines and containers.
All of the Phenix platform's core code is written in the C++ programming language, running as native code inside Linux containers. Wishon said C++ was used to make sure that Phenix is able to fully optimize performance for whatever virtual or physical resources the code runs on.
"Our architecture is focused very much on performance, and anything that has an opportunity to get in the way of performance we try to optimize out," he said.