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)
Section 1: Fundamentals of GitOps
Section 2: GitOps Types, Benefits, and Drawbacks
Section 3: Hands-On Practical GitOps

Test, governance, deploy, verify, and restore as code

When the DevOps team was documenting the different stages of their desired delivery pipeline design, they wanted to include significantly more than just the deployment process. There was a desire to include QA testing, change management, verification of the production environment, and failure remediation. But shortly after those original design meetings, the team experienced an accelerated timeline and scope change. If they wanted to revisit the idea of automating the delivery process, especially with verified GitOps, they would need internal support.

The team found that it was better to start with a specific platform, build out the delivery pipeline for that platform, and then expand to the other platform support afterward. And because of the native execution capabilities of Kubernetes, it would be less of a lift for the team to build out the delivery pipeline for the containerized applications.

Initially, the team would...