Cloud Gaming Architecture based on StarlingX and Akraino Integrated Cloud Native Edge Stack (ICN Blueprint) Ziheng Qin(SJTU), Ruoyu Ying(Intel) Dingyu Wang, Qiucheng Wu, Xinyu Ye, Zhengda Wu, Yong Long(SJTU), Forrest Zhao, Guangxin Xu(Intel) Date: Nov 6th, 2019
Agenda • Concept and architecture • Cloud gaming design description • Prototype • Test result and discussion • Future plan
Gaming: Expensive hardware or high latency? Edge cloud -- the balanced solution
Concept Generation Public Central Cloud • AWS, GCP and Alibaba Cloud Private Central Cloud • Server located in the company Edge Servers • Edge Server located near terminal devices
Central Cloud Concept Web Game Server User Control Data Stream Graphic Rendering User Control Information Central Cloud User Device (Game running here) Concept Diagram-Central Cloud
Edge Cloud Concept User Control Information Management info (Initialization, Graphic Rendering Central Cloud Organizer Life cycle, etc.) User Device Edge Cloud (Game running here) Concept Diagram-Edge Cloud
Edge Cloud Concept (Web Game) User Control Information Graphic Info Graphic Rendering Web Game Server Management info User Device (Initialization, Life cycle, etc.) Edge Cloud Central Cloud Organizer (Game client-side running here) Concept Diagram-Edge Cloud
Design Description - Container
Design Description - StarlingX
Design Server (StarlingX) CentOS Kubernetes Control info Game Rendered by Clients OpenGL (C++) C++ Win32 API Pixel Info Docker Gameboy Control info Clients Emulator Linux System (Golang) Pixel Info Docker
StarlingX: Design Deploy & Maintain In Large Scale Central Cloud Organizer (StarlingX)
Demo Game Details R/W R/W Input Send World Status Control Table Mutex R/W Render Display Recv Pixel Screen Buffer Info Player Client Server
Manufacturing Process Step 1: Building StarlingX(server) component at Intel onsite Step 3: Integrate developed Step 4: Testing and application on StarlingX Reflection based on environment, establish the engineering specifications communication channel Step 2: Develop the game application on local host
Prototype Game Interface Client Initialize Interface Server Status
Prototype —— Starting the server Starting the server on the StarlingX
Prototype —— Initialize Client Entering the server’s IP and Port
Prototype —— Game In Interface
Prototype Demo Video
Test result Latency: around 40ms Test Result: data latency between hardware and edge cloud is at most 200ms
Discussion Pros: • Showed how to use StarlingX(part of Akraino) to set up a real application • Greatly reduce latency by employing edge cloud • The architecture is easy to deploy and compatible Project Plan Our Design(Edge Cloud) AWS(Public Cloud)
Discussion • Cons: • Currently we run StarlingX in VirtualBox, which is slower than running StarlingX directly on machine and it consumes a lot of CPU resource. • Currently resolution is limited by bandwidth Project Plan • Possible Improvements • Deploy games with better hardware on the server • Run StarlingX directly on machine (This will need appropriate hardware) • Use video encoding-decoding process to reduce bandwidth consumption • Employ 5G to increase bandwidth and lower down latency
Conclusions • Outcomes • Create an easy to deploy model & sample for edge cloud gaming • Reduce latency by employing edge cloud and StarlingX(part of Akraino tech- stack) Project Plan • Provide a more promising future for cloud gaming
Future plan • Adopt more improvements on the edge server usage • Leverage acceleration technologies to facilitate the rendering process • Add remote control for cloud gaming
Future plan – Cont’d • Adopt more improvements on the edge server usage Choose the Akraino Integrated Cloud Native blueprint to acquire: I. Co-existence of multiple deployment types(VNFs, CNFs, containers and functions) II. Advanced networking support(multiple networks, provider networks, dynamic route/network creation, etc) III. AI based predictive placement(Telemetry collected thru Prometheus, training and inferencing framework) IV.Multi site scheduler(Based on ONAP4K8S for auto edge registration, workload placement, etc) • …
Edge Stack (ICN) – Big picture Tools to developers to optimize and Developer applications Apps, VNFs, CNFs convert for Edges (e.g DPDK, OneAPI) MC Orchestrator Multi Cluster Orchestration MC Security Controller MC Service Controller (ONAP4K8S) Augment K8S for all QoS based Admission Site level Orchestration Multi-tenant Kubernetes deployment types control Monitoring Platform Distributed Security & Distributed Data & Edge Value added services Geo Distributed DBaaS Geo Distributed Vault (fluentd, Elasticsearch, Network functions Analytics platform Kiana) Telemetry Collection Accelerator Plugins Optimized Service mesh NFD OVN4K8S 5G CBRS Stack Platform Services QAT, SRIOV Collectd , Prometheus ISTIO/Envoy Virtualization & Container Run time Virtualization of Multus OVN Docker Virtlet Kata Flannel • Local accelerators • Remote Accelerators Operating system CentOS Clear Ubuntu Autonomous Media Inline Crypto Elastic Power RDT Hardware platform SmartNIC Acceleration Acceleration Management Infrastructure Orchestration (Metal3, Ironic, BPA) New Existing Open source, Enhancement feature Major enhancement, in ICN project project work with upstream
Future plan – Cont’d • Leverage acceleration technologies to facilitate the rendering process Choose the VAAPI library to utilize the hardware capabilities(GPU) to accelerate the transcoding process in video rendering • Add remote control for cloud gaming Choose the kernel module called ‘ uinput ’ to emulate input devices(such as keyboard and mouse) from user space in order to have the remote control for cloud gaming.
Q&A Thanks for your time listening, any question is welcomed! Project Plan
Backup
Reference • StarlingX documentation: https://www.starlingx.io/ • Akraino Integrated Cloud Native(ICN) documentation: https://wiki.akraino.org/pages/viewpage.action?pageId=11995140
Recommend
More recommend