Continuous Deployment with Kubernetes
- Learn to use Kubernetes, Docker, Helm, Jenkins, and Prometheus
- Set up a simple and dependable Continuous Deployment system for your project or team
- Get up and running on Google Cloud GKE, AWS EKS, or Azure AKS in a few hours
- Improve your deployment processes with tips and solutions for common problems in the Cookbook section
- Speed up your development cycles without sacrificing quality or working more.
- Get access to the source code for the book, this site, and the CD system that builds them both
"Nick helped us deploy a complex application on Kubernetes where customizability and security were crucial. He has also been on point with new updates, which is extremely important in this fast moving space. Highly recommend Nick and this book!"
- Liane NakamuraCo-founder, Healthcare Startup
You have software to develop and operate, so stop wasting time on chores you can easily automate. You will learn both the essentials and the best practices for running Continous Deployment on Kubernetes. When you're done with the book, you will have constructed a robust and scalable CD system to build and manage your software.
You will follow along as we develop a simple application with Docker, put it on Kubernetes, build a chart to repeatibly deploy it using Helm, and set up Jenkins to automatically build, test, and deploy our application. Then we'll set up some simple monitoring and alerts using Prometheus.
After we've developed a robust minimal example, you can pick and choose recipes from the cookbook to improve your system for your specific needs. Add TLS/SSL support using Let's Encrypt, Set up a service mesh using Istio, Secure containers with Grafeas/Kritis attestations, Autoscale your deployments, and more!
Learn how to keep your container builds fast and your images small. Learn the rationale behind containers and avoid common pitfalls.
We'll cover the essential Kubernetes resources and how they all fit together. Learn to achieve High Velocity High Availability.
Learn best practices for parameterizing, reusing, and publishing Helm charts. Simplify your workflow and reduce operator errors.
Using pipelines and Jenkinsfiles to modularize and parallelize your deployments. See how to autoscale worker nodes and stop waiting for executors.
Monitor everything you want without managing lists of nodes and services by hand. Declare what you want to monitor and let Kubernetes service discovery work for you.
See how to tackle many common problems with reusable solutions. Automatic TLS Certificate Management, Complex DB Schema Migrations, Networking ACLs, and more.
Source Code Access
Get full access to the current source code for the book examples, this website, and the book! See how the principles in the book are used to build the book itself.
See every step for yourself and follow along in the screencast style companion videos.
(in progress, will be released as completed)
Is this book for me?
Developers worry and stress because of uncertainty; Uncertainty that the program won't start, will crash, will have bugs, won't meet specifications, and more. This book will teach you not how to sweep that uncertainty under the rug (c.f. waterfall development), but how to expect and plan around it.
A basic truth of programming is that all programs have bugs, holes, and problems. Expected and known issues can be tested automatically, but unknown issues will still cause major problems! By completing the exercises in this book, you will build a system to handle this uncertainty safely using Continuous Deployment.
Develop code, then simply push your changes to a remote repository and watch as our CD system automatically builds, tests, deploys, monitors, and alerts on these changes. Gain peace of mind about your infrastructure so you can focus on developing!
"It's a great book... helm/jenkins/kubernetes feels like living in the future. There wasn't anything as thorough as [this book] out there"
- Eamon KeaneCo-founder, Logistio
Table of Contents
|Chapter 1.0: Layout Notes|
|Chapter 2.0: Introduction|
|Chapter 3.0: Containers|
|Section 3.1: The Big Picture|
|Section 3.2: Current Container Tech|
|Section 3.3: Common Pitfalls|
|Section 3.4: Container Example|
|Section 3.5: Summary|
|Chapter 4.0: Kubernetes|
|Section 4.1: The Early Cloud|
|Section 4.2: Kube Cluster Basics|
|Section 4.3: Cluster Nodes|
|Section 4.4: Kubernetes Example|
|Chapter 5.0: Helm|
|Section 5.1: Helm overview|
|Section 5.2: CLI Basics|
|Section 5.3: Templating Best Practices and Tips|
|Section 5.4: Helm Example|
|Chapter 6.0: Jenkins|
|Section 6.1: Overview|
|Section 6.2: Slave node setup|
|Section 6.3: Build Pipelines and Setup|
|Section 6.4: Jenkins Example|
|Chapter 7.0: Barebones Monitoring|
|Section 7.1: Overview|
|Section 7.2: Prometheus and prometheus-operator|
|Section 7.3: Prometheus Example|
|Chapter 8.0: Mini Cookbook|
|Chapter 9.0: Index|
- Source Code access
- Companion screencast videos
- Simple DB Migrations
- Complex DB Migrations *
- Encrypted Secrets Storage *
- Static Assets Building *
- Fancier Test Results (JUnit, XUnit, etc..) *
- Letsencrypt TLS/SSL proxy with autorenew *
- Jenkins SSO / External Auth *
- Feature Flags *
- Container Privileges and Capabilities *
- Network Policies with Calico *
- Networking with an Istio Service Mesh *
- Grafeas and Kritis for Security Policy Enforcement *
- Monitoring Jenkins *
- Building This Book *
MONEY BACK GUARANTEE:
If for any reason you want your money back, just ask and I will grant a full refund. I wrote this book to try and help people learn, and if you aren't learning or just don't feel you got your money's worth, I will happily refund you. To claim a refund, please email me.