I just finished building “Cube”, a Docker workload orchestrator written from scratch in Go. Orchestrators are the cornerstone of cloud computing. They automate the deployment, scheduling, and scaling of computing tasks (containers) across a cluster of machines. Every professional Web application you use today almost certainly relies on an orchestrator.
The most famous (and complex) orchestrator is Kubernetes. Cube of course goes nowhere near the level of complexity of k8s. Still, Cube made me understand the fundamental building blocks behind such software (Managers, Workers, Schedulers, Scheduling algorithms, Storage, basic Telemetry etc.)

To write Cube, I went through the book of Tim Boring cover to cover. The book is a great read, even though quite a few bugs slipped through the cracks and fixing them was left as an exercise to the reader. All-in-all it turned out to be a great way to learn.
Here is the repository: https://github.com/hakilebara/cube










