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 box: 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 to:
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 8 An API for the manager 9 What could possibly go wrong? PART 4 REFACTORINGS 10 Implementing a more sophisticated scheduler 11 Implementing persistent storage for tasks PART 5 CLI 12 Building a command-line interface 13 Now what?
Computers & technology
Ratings and reviews
2.0
1 review
5
4
3
2
1
About the author
Tim Boring is a staff engineer at Golioth. He has twenty years of experience in technology organizations ranging from small business to global enterprises. His career spans roles in technical support to site reliability and software engineering. Tim is most interested in the design of software systems and distributed systems in particular.
Rate this eBook
Tell us what you think.
Reading information
Smartphones and tablets
Install the Google Play Books app for Android and iPad/iPhone. It syncs automatically with your account and allows you to read online or offline wherever you are.
Laptops and computers
You can listen to audiobooks purchased on Google Play using your computer's web browser.
eReaders and other devices
To read on e-ink devices like Kobo eReaders, you'll need to download a file and transfer it to your device. Follow the detailed Help Centre instructions to transfer the files to supported eReaders.