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

Common purist GitOps tools

Jenkins seemed like an obvious choice to fall back on for the DevOps team. They all had experience with the tool, and it was being used for the other deployment process that they are looking to replace. However, with the support requirements that the team now faced, as well as the desire to adopt a GitOps style of deployments, Jenkins was not the ideal tool for them. The team decided to research other tools that were able to support both cloud-native architectures and more traditional models.

Of the tools that they researched, they found that there were two main categories to choose from. Either they could look for a more modern integration tool, such as Drone or CircleCI, or they could leverage a multi-purpose tool, such as Puppet or Ansible. As they read the documentation around each of the tools available, what they found was that the integration tools were good for integration but would result in a similar setup as Jenkins did. Integration tools were...