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

Templatization types

Once the DevOps team had a better understanding of the different platform and tool requirements, they found that the easiest method forward was to give the engineers minimal configuration files. If the main files for both JSON and YAML were built and maintained by the DevOps team, then the engineers would only have to provide a small subset of configuration variables. The delivery pipeline could be built to get the configuration file from a Git repository and then pass in the values from a predefined set of variables.

But to make the DevOps team's administration effort as light as possible, they would need to implement a type of templating process for JSON and YAML files. This way, the DevOps team would be able to limit clones of files because the templating would maximize the reusability of the required core files. This was most evident with Terraform, which can natively leverage variable files to alter the behavior of the execution process. An engineer...