How does Phenix handle rapid join rates and broadcast size audiences? Does Phenix use Kubernetes?
Kubernetes is a tool that enables orchestration of services running in a cluster of physical machines. Its strength is running many services with dependencies on other services on a fixed set of CPUs.
In early versions of the Phenix platform, we used Kubernetes for some parts of our scaling technology. Subsequently, we were able to improve performance by more than an order of magnitude by designing and building our own specialized tools from the ground up for real-time streaming.
Phenix scaling algorithms handle orchestration of CPU intense streaming services across a global deployment with many dynamically sized clusters. In contrast to a typical Kubernetes cluster, our tools provision new instances in seconds and are able to distribute load across geographic regions.
Phenix has developed a new autonomous system technique using machine learning combined with information gathered from the viewers by tapping into the full application user experience.
The Phenix platform uses a distributed service oriented architecture. Each individual component of the overall system can be scaled up and down independently, tuned separately and distributed into the locations that make the most sense for those service components. This means that viewer load can be shifted dynamically to the point of presence most appropriate for the current conditions. Points of presence can be distributed across public cloud providers, dedicated datacenter rack space, and into network operator private cloud infrastructure with each contributing to the overall global platform.
Modern system architectures use elastic cloud computing principles to maintain a low cost structure while remaining flexible to handle high load. Typical instantiations of cloud compute environments result in long times from creation of a new resource until the first available CPU cycle, sometimes up to a minute, which is far too long when users are waiting to access a stream. To address this, Phenix has developed a new autonomous system technique using machine learning combined with information gathered from the viewers by tapping into the full application user experience. Phenix receives information from the user experience adjacent to the video experience which drives the machine learning algorithms. The system is then able to predict future demand and provision resources ahead of that demand, enabling the Phenix platform to smoothly handle the huge spikes in join-rates driven by flash crowds.
The Phenix platform:
-
Has successfully handled flash crowds where 500,000 viewers joined in less than 60 seconds.
-
Regularly hosts events with 200,000 concurrent viewers on a single channel.
-
Has been load tested to 1,000,000 concurrent viewers on a single channel with no degradation of video quality or latency.
-
Handles 1,000's of live channels every day.
-
Has successfully handled the reconnection of 200,000 concurrent viewers after the publisher restarted their stream.
-
Utilizes multiple infrastructure partners who are ready with capacity to handle any size event.