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

JSON file building

With the cloud infrastructure team using Terraform already, the DevOps team would be able to leverage some of their expertise in enabling the rest of the engineering organization on the structure of JSON. Although the XML training would be easy and lightweight, the JSON training would have an effect on the actual tooling for the delivery and deployment processes. The DevOps team had also planned on giving the engineers the ability to leverage either JSON or YAML for their configuration files, allowing the tool to do the conversion and application work for them. Currently, Ansible and Harness do not have this capability, meaning that the DevOps team would need to build or leverage an intermediate tool that converts the files into the desired language types for native consumption.

The first step in the JSON training is deciding how the different teams will build out their files, whether each team will have their own or one main file will be shared across a whole...