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

Why does a continuous process matter?

As the DevOps team continues to support the old and new release pipelines, the technical debt continues to grow. With every service that is onboarded, the DevOps team becomes more of a bottleneck for developers.

The original goal of the pipeline was to be able to release as often as the developers would want. But with the major restructuring of the delivery and deployment because of the business requirements, the quality and development teams were getting in each other's way. The new development process consisted of a developer triggering a code merge with the main source code branch whenever a new piece of code was written. Since every code change was resulting in the integration process being triggered, the development team was producing release candidate artifacts faster than the quality team could check. This resulted in a large set of artifacts waiting to be deployed into the testing environment. The quality team had to reduce test...