Guest agents on containers and virtual machines handle communications between the host and guest machine and the same tooling can scale to distributed system use-cases as well. In this talk, we present an architecture that leverages gRPC for the communication interface in agents to enable building a container runtime, while also allowing us to evolve and simplify the language stack over time.
We will leverage the recently released Apple Containerization project as a case-study where this has worked well. We will show how the agent has helped setup the environment for container workloads by configuring running process lifecycle, setting up the network configuration, and even configuring the emulator to run workloads of different architectures
All of this runtime configuration has been orchestrated initially in Swift and Go and is now a simplified stack with just Swift used across the board, both on macOS and also on the Linux bits.