The DevOps revolution has provided us with quite a few trends and buzzwords to experiment with. One of the most popular is GitOps, that term introduced by Weaveworks, echoing through practically every hall in the latest San Diego KubeCon, and its recaps.

Over the past year or two, I’ve seen GitOps described as a strategy, a paradigm, a set of practices, a workflow, and even as a science. I’ve heard that GitOps is for developers dealing with Kubernetes cluster management, or serverless, or the CI/CD pipeline, to name a few. So what is GitOps? Are all of the answers correct? Let’s take a minute to see how the term evolved, how GitOps can help developers, and where it fits into the DevOps lifecycle.

What is GitOps — How it all Started

The term GitOps was coined, or at least successfully branded into our collective DevOps toolchain consciousness, by the good folks at Weaveworks, and introduced as Operations by Pull Request, a set of best practices combined with tools that they built to help developers operate Kubernetes via Git.

Common GitOps pipeline, from the weaveworks blog: https://www.weave.works/blog/kubernetes-anti-patterns-let-s-do-gitops-not-ciops

Later, Weaveworks summarized their definition of GitOps as a combination of:

#1 An operating model for Kubernetes and cloud native, that provides a set of best practices to join up deployment, management, and monitoring for containerized clusters and applications.

And

#2 A path towards a developer experience for managing applications; where end-to-end CICD pipelines and git workflows are applied to both operations, and development.

GitOps Evolution: Not Just For Kubernetes Deployment

As software development organizations adopt DevOps practices to keep up with today’s tight release schedules, we’ve all become familiar with shift left practices, and most of us have added automated tools into the early stages of our CI/CD pipelines. It should come as no surprise that as quality and security testing are being shifted left into the capable hands of developers, deployment is also getting its shift left moment, via GitOps. With or without Kubernetes environments, developers can now easily use Git and pull requests to manage infrastructure provisioning and software deployment.

The GitOps Pipeline: How GitOps Works

Everett Toews describes the GitOps pipeline as a general technique, in environments that don’t necessarily include Kubernetes as “reconciling a desired step in Git with a runtime environment”.

Developers use the same Git workflows that they’ve always used for development — submit a pull request, review, and merge. What follows in a GitOps scenario is an automatic action once the commit is merged. Toews explains that the “action takes place in a reconciliation system, which is triggered by a push or pull event. That reconciliation system then applies the desired state from Git to a runtime environment”.

From: Everett Toews blog:

https://etoews.github.io/blog/2019/11/07/gitops-is-reconciling-a-desired-state-in-git-with-a-runtime-environment/

HOW DOES DEVOPSSTRENGTHEN APPLICATION SECURITY? Download Free

Whitepaper