Using Celadon in Container to Build Scalable Android Solutions on x86
Cloud Service Providers, Independent Software Vendors, and Original Equipment Manufacturers seeking to deploy game streaming services in the cloud.
Cloud gaming has become a multi-billion-dollar industry. It is projected to grow to nearly $200B by 2022 (Forbes, June 2019), with a variety of devices from consoles to browsers providing avenues for users to indulge in unique gaming experiences. According to Forbes, the largest segment of gaming platforms for the past four years has been smartphones, which typically have low power and compute envelopes as compared to PCs or dedicated gaming consoles. The smartphone segment - accounting for 36% of total revenues as of 2019 - is projected to top 40% by 2022.
Though a growing number of mobile devices are being used as gaming hardware, they are unable to accommodate the processing power, audio capabilities and graphics feature requirements necessary for rapidly evolving gaming software. This leaves providers with the challenge of efficiently providing vivid gaming experiences across a broad mix of user platforms.
Successful cloud gaming experiences require a scalable platform capable of handling intensive workloads without latency issues. Android*, with its huge application ecosystem and ability to decouple the operating system from expensive hardware, provides a gateway to this new form of gaming.
Celadon, Intel’s open source Android distribution, provides cloud gaming functionality for x86 devices - both from backend (server side, if you are a game provider) and frontend (device side, if you are a player) perspectives. Celadon modifies the Android stack by incorporating critical containerization technologies to create Celadon in Container, a Linux*-compatible, high-density Android platform enabled for Intel® architecture. Celadon in Container allows server-side providers to run Android applications in containers, building the scalability necessary for pleasurable device side game play experiences in the cloud. This solution brief provides details around usage of Celadon for cloud gaming use cases deployed in the market.
Celadon in Container Allows Providers to Run Android Applications in Containers.
How Celadon in Container Works
Celadon in Container delivers efficient, responsive server-side and device-side experiences on Intel® architectures. In the backend, Celadon runs in Docker* containers on servers hosted by game providers and Cloud Service Providers (CSP). Each Celadon in Container instance includes required libraries to utilize server compute and is individually capable of running one or more Android applications. Multiple Celadon in Container instances can exist concurrently, all being managed by a component called Android in Container (AIC) Manager. Any frontend device can initiate a gaming session by sending control message requests (inputs) to backend devices. In return, the backend launches the requested game in a container and sends an output response to the frontend device in the form of video streaming of the game.
Figure 1 below depicts a deployed market solution architecture, specifically, how frontend devices interact and offload processing to servers for gaming. Customers use Intel® Xeon® E5 processor powered servers with a host operating system (OS) like CentOS*, which also runs a Kernel-based Virtual Machine (KVM) and a guest OS, like Ubuntu*. Multi-instance Celadon containers are spawned within the guest operating system. Please note, multi instance containers can also run on native host operating systems with Docker support, though the final solution will differ dependent on use-case and Original Equipment Manufacturer (OEM) decisions.
To access powerful hardware acceleration, the Intel® Xeon® E5 processor systems add Intel® Visual Compute Accelerators (Intel® VCA2) to extend graphics computing power over PCIe components that can run a Linux OS. Built to address the surging growth of cloud graphics, Intel VCA2 offers optimized workload acceleration, efficiently streaming cloud gaming graphics and media output back to the Intel® Xeon® E5 processor server. OpenGL* is used to send commands to the compute accelerator and container output is compressed and streamed over the network to the end device.
Figure 1. Celadon in Container cloud gaming architecture block diagram
Includes Android Pie with 4.14 kernel (Ubuntu) and CentOS host kernel 3.14
The deployed market solution reached high application compatibility due to use-case specific Celadon in Container features. In addition, a large number of parallel container instances were achieved through various Celadon in Container optimizations, which helped the customer reach 72 hours of tested stability.
Key Features and Optimizations
A variety of features were developed for Celadon in Container to support cloud gaming use cases.
Compressed video output streaming to end device – Video streaming can use a custom protocol or WebRTC-based transmission.
Video encryption support - Support includes CPU based video encryption or hardware accelerated video encryption. Figure 2 below depicts mechanisms provided by WebRTC - a software solution that provides CPU-based video encryption. RTP/RTCP protocols are used to initiate and transmit compressed and encrypted video to the client device.
Figure 2. WebRTC based streaming to client device
Instance status checking / Kubernetes* orchestration - The health indicator leverages Kubernetes to monitor the status of AIC instances for errors and stability issues, exposing issue information to the System Manager.
Remote event injection - This feature allows frontend device triggers - like specific gestures - to send control message requests to containerized game instances.
Instance density - Launch multiple container instances and measure performance by exercising resource and interface bandwidth limitations.
User experience - Unified user experience regardless of Input Method Editor (IME) used in the host operating system and/or Celadon in Container.
End-to-end latency - Control input event to end-user video stream, ensuring latency is best suited for real-time gaming performance.
With cloud gaming growing in popularity, service providers are challenged to find scalable solutions that provide rich gaming experiences to a variety of device types. This solution brief introduced Celadon in Container, a cloud gaming solution for running Android apps on Linux operating systems. Contact the Celadon team to learn more about how Celadon can help with your cloud gaming use cases.
Key Solution Benefits
- Accelerate development. Developers can benefit from Project Celadon open platform enablement and lower time to market by developing on the latest Android releases.
- Improve efficiency and cost. Project Celadon is an Android open source platform for Intel® architecture, which allows developers to leverage Intel® hardware acceleration and provides the flexibility to customize to the latest Android applications.
- Maintain reliability and scalability. Project Celadon can be used to build dense cloud gaming solutions meant to run Android applications in containers.