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

YAML file building

Engineering leadership has decided that the platforms that need to be supported by any delivery or deployment process must include containerized, serverless, and traditional applications. Each of these different platforms has its own structure and requirements, which means that a one-size-fits-all solution is difficult to implement. Some of the platforms and cloud providers that the company is looking to leverage require JSON-based configuration files. However, one of the main platforms that the teams have been leveraging and will continue to leverage is Kubernetes, which is mainly configured through YAML manifests.

Since the development teams have already been deploying via Helm charts, which use YAML manifests, there is some familiarity with the YAML structure already. However, the quality and infrastructure teams mainly use JSON for their data storage and exchange, as well as for some of their tooling, such as Terraform. Because of the differences between the...