What is GitOps?

“GitOps” is the term we use to describe the way we rely on developer tooling to drive operations. It is an operating model for cloud native applications such as Kubernetes that enables continuous delivery through automated deployment, monitoring, and management by using Git as the “single source of truth”.

Why do we love GitOps?

We love GitOps because it delivers core Cloud Native benefits such as: agility, reliability and speed. A GitOps pipeline enables developers to speed up development and to safely and securely make changes to complex applications. It also gives developers the freedom and flexibility to choose the tools that they are familiar with and that work best in their dev environments. Developers can work with either open source and closed source tools, whatever they prefer.

Aside from the freedom, both enterprise and startup development teams can implement a GitOps approach for more stability and reliability over a typical CI/CD pipeline.

One of the improvements a GitOps deployment pipeline provides over a traditional CI/CD pipeline is a clear separation of common security concerns. With a traditional CI/CD pipeline, developers often need to share the API credentials of their Kubernetes cluster with their CI tooling. With GitOps, this is no longer the case and therefore is a more secure way of delivering updates to your cluster.

GitOps Principles

There are four key principles of GitOps that drive its implementation:

  1. Describe the entire system declaratively
  2. Version the canonical desired system state in Git
  3. Automatically apply approved changes to the desired state
  4. Ensure correctness and alert on divergence with software agents

Download our Practical Guide to GitOps and start operating Kubernetes the GitOps way. This guide walks you through principles, benefits and what to expect when you start adopting the GitOps methodologies. Also included in the guide is an in-depth hands-on tutorial that shows how to build an end-to-end CI/CD pipeline and deploy changes to Kubernetes using GitOps best practices.