Jump to ratings and reviews
Rate this book

Build an Orchestrator in Go

Rate this book
Develop a deep understanding of Kubernetes and other orchestration systems by building your own with Go and the Docker API.

Orchestration systems like Kubernetes can seem like a black you deploy to the cloud and it magically handles everything you need. That might seem perfect—until something goes wrong and you don’t know how to find and fix your problems. Build an Orchestrator in Go (From Scratch) reveals the inner workings of orchestration frameworks by guiding you through creating your own.

In Build an Orchestrator in Go (From Scratch) you will learn how

Identify the components that make up any orchestration system Schedule containers on to worker nodes Start and stop containers using the Docker API Manage a cluster of worker nodes using a simple API Work with algorithms pioneered by Google’s Borg Demystify orchestration systems like Kubernetes and Nomad
Build an Orchestrator in Go (From Scratch) explains each stage of creating an orchestrator with diagrams, step-by-step instructions, and detailed Go code samples. Don’t worry if you’re not a Go expert. The book’s code is optimized for simplicity and readability, and its key concepts are easy to implement in any language. You’ll learn the foundational principles of these frameworks, and even how to manage your orchestrator with a command line interface.

About the technology

Orchestration frameworks like Kubernetes and Nomad radically simplify managing containerized applications. Building an orchestrator from the ground up gives you deep insight into deploying and scaling containers, clusters, pods, and other components of modern distributed systems. This book guides you step by step as you create your own orchestrator—from scratch.

About the book

Build an Orchestrator in Go (From Scratch) gives you an inside-out perspective on orchestration frameworks and the low-level operation of distributed containerized applications. It takes you on a fascinating journey building a simple-but-useful orchestrator using the Docker API and Go SDK. As you go, you’ll get a guru-level understanding of Kubernetes, along with a pattern you can follow when you need to create your own custom orchestration solutions.

What's inside

Schedule containers on worker nodes Start and stop containers using the Docker API Manage a cluster of worker nodes using a simple API Work with algorithms pioneered by Google’s Borg
About the reader

For software engineers, operations professionals, and SREs. This book’s simple Go code is accessible to all programmers.

About the author

Tim Boring has 20+ years of experience in software engineering. For most of that time he has worked with orchestration systems, including Borg, Kubernetes, and Nomad.

Table of Contents

PART 1 INTRODUCTION
1 What is an orchestrator?
2 From mental model to skeleton code
3 Hanging some flesh on the task skeleton
PART 2 WORKER
4 Workers of the Cube, unite!
5 An API for the worker
6 Metrics
PART 3 MANAGER
7 The manager enters the room&l

510 pages, Kindle Edition

Published May 14, 2024

8 people are currently reading
51 people want to read

About the author

Tim Boring

1 book3 followers

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
2 (12%)
4 stars
9 (56%)
3 stars
4 (25%)
2 stars
1 (6%)
1 star
0 (0%)
Displaying 1 - 5 of 5 reviews
Profile Image for Kaustubh J.
29 reviews1 follower
January 17, 2025
Good introduction for anyone wishing to dive into orchestrator systems. It helps if you have some knowledge of existing orch systems (k8s for example)

If you are using macos utilze the gofsutils library for your metrics work
43 reviews
March 16, 2024
Note, this review refers to the MEAP version of the book. Some of the issues mentioned may be corrected in the final print version.

Build an Orchestrator in Go walks you through a project where you build a relatively simple orchestrator in Go. The project is enjoyable enough, but within the MEAP version of the book there are a number of places where the book references methods or types which have never been previously introduced. While this is not a major issue, it does cause some minor frustrations and detracts from the enjoyment of going through the project.

Additionally, the method of collecting stats assumes that you are using a Linux machine, which means there was a whole chapter and half of the book where non-Linux users essentially just have to skip over. I think this is a slightly bigger issue which probably deserves some attention.

Additionally, some of the polishing of the project (Cobra command line/bolt persistence layer) towards the end of the book seemed needlessly repetitive without introducing any new features, and is something which could have been left to readers to do should they have been interested in expanding the projects functionality.
Profile Image for Krystian.
11 reviews1 follower
August 3, 2024
Enjoyable, simple guide on building your own orchestrator.
What I missed was more focus on failure scenarios. They were mentioned only briefly and I'd love a chapter or two about mitigating failures.
One thing worth noting: don't get discouraged if you don't have Linux at hand. It's mentioned several times in prerequisites, but you're not really losing much if you proceed without it. You'll need to mock it when you get to the E-PVM scheduler, but that's about it. Still worth it if you're on Windows/Mac.
Profile Image for Andres Sacco.
28 reviews7 followers
April 30, 2024
I like the way that the author tackles how to build an orchestrator, understanding the different concepts at the same time.
Profile Image for Suraj Sharma.
18 reviews2 followers
February 19, 2025
Better than building a new netstat or packet sniffer, thoroughly enjoyable pace, kudos!
Displaying 1 - 5 of 5 reviews

Can't find what you're looking for?

Get help and learn more about the design.