Anbox Cloud is composed of many pieces interacting with one another. This page gives a summary of what those pieces are how they interact with each other.
Anbox Cloud Core
Anbox Cloud provides a rich software stack to provide Android applications from the cloud to users. It takes care of all management aspects and provides both a fully functional implementation and an integration model to support existing infrastructure and service implementations.
The following tries to give a good overview of the different components and their responsibility within the Anbox Cloud platform.
At the heart of Anbox Cloud lies the Management Service (AMS) which is a control plane for all machines and Android containers running on them. AMS has the job to handle all aspects of the application and container lifecycle (including application and image updates) while ensuring high density, performance and fast container startup times.
A developer or system administrator would manage AMS through the command line interface (AMC) or through custom built tools interacting with AMS REST API
For example, a simple Android application testing service would provide a user-facing interface dealing with things like authentication and user management, and would communicate with the REST API to add applications, start and containers when a user asks to.
Anbox Cloud can be heavily customized and extended via Platform Plugins and addons.
Platform plugins and addons can be built to add specific streaming capabilities, perform operations within Android containers and much more. One example of a platform plugin is the Anbox WebRTC Platform used in the Anbox Streaming Stack.
Addons are ways to customize the base image by installing additional software and running scripts on different lifecycle hooks.
Anbox Streaming Stack
Starting from 1.4 Anbox Cloud comes with an easy to use streaming solution. The Anbox Streaming Stack is a collection of many components designed to run containers on GPU equipped machines and stream their content to clients via WebRTC.
Main components powering the streaming stack in Anbox Cloud:
Agent: software running on a server equipped with a GPU connected to Anbox Cloud.
It serves as an entrypoint the gateway can connect to.
Anbox Stream Gateway: the central component that connects clients with agents.
Its role is to choose the best possible region depending on the user location and server capacities.
Client: the end user application that will display the stream. It can be a desktop application, a website, a mobile application, a TV, a car system, or anything capable of handling a WebRTC stream.
An SDK is provided along the streaming stack to provide easier integration with web-based applications.
TURN/STUN servers: they find the most optimal network path between a client and the container running its application. The streaming stack provides secure STUN and TURN servers but you can use public ones as well.
NATS: A messaging system the different components use to communicate. Project page