Book Image

Repeatability, Reliability, and Scalability through GitOps

By : Bryan Feuling
Book Image

Repeatability, Reliability, and Scalability through GitOps

By: Bryan Feuling

Overview of this book

The world of software delivery and deployment has come a long way in the last few decades. From waterfall methods to Agile practices, every company that develops its own software has to overcome various challenges in delivery and deployment to meet customer and market demands. This book will guide you through common industry practices for software delivery and deployment. Throughout the book, you'll follow the journey of a DevOps team that matures their software release process from quarterly deployments to continuous delivery using GitOps. With the help of hands-on tutorials, projects, and self-assessment questions, you'll build your knowledge of GitOps basics, different types of GitOps practices, and how to decide which GitOps practice is the best for your company. As you progress, you'll cover everything from building declarative language files to the pitfalls in performing continuous deployment with GitOps. By the end of this book, you'll be well-versed with the fundamentals of delivery and deployment, the different schools of GitOps, and how to best leverage GitOps in your teams.
Table of Contents (17 chapters)
1
Section 1: Fundamentals of GitOps
5
Section 2: GitOps Types, Benefits, and Drawbacks
10
Section 3: Hands-On Practical GitOps

Kubernetes and operators

One major issue with GitOps, as the DevOps team was experiencing, is that the platform that the application relies on is the main execution engine for the GitOps process. Although the execution in the underlying platform being inherent is helpful, it also means that the execution is like a black box where the underlying actions are relatively hidden.

To avoid this black box issue with the GitOps process, the DevOps team decided to dive deeper into what Argo CD is doing during an execution event. By documenting Argo CD's underlying tasks, the troubleshooting process will become much simpler. The first step to understand and document is how Kubernetes behaves when an execution command is triggered.

Up to this point, the teams are basically just running helm commands. The team will monitor the helm output for a success or failure message, and then moves on. What the DevOps team wanted to understand was how Kubernetes behaved when the command was run...