The cloud desktop architecture is simple. On a high level, it looks like this:
Cloud desktop cluster is a cluster of cloud desktops. It is implemented as a K8s cluster for easy scheduling and orchestration of cloud desktop containers.
The cloud desktop container provides a virtualized desktop environment that is isolated and portable. It consists of 3 components.
- VNC server paired with a NoVNC server
- VSCode server
- Tailscale client
For details, see Container Image.
K8s network:
- Used for communication with the load balancer to allow each container to be accessible from a URL
- Implemented with Flannel
Tailscale network:
- Used for communication between cloud desktops and robots globally
- Managed with Tailscale Dashboard
AWS Route53:
- Provides DNS records for redirecting traffic to the cluster