In recent years, the nascent DevOps model known as GitOps has picked up momentum, with 2021 set to be a milestone year for a number of reasons.
At its most basic level, GitOps is a development approach that uses a code version control system, often Git, as the basis for defining and controlling a DevOps workflow and synchronization across systems. A formal definition for the GitOps model is in the works, which is one of the reasons why 2021 will be a breakout year for GitOps. The definition as well as direction on best practices are being developed by the GitOps Working Group within the Cloud Native Computing Foundation (CNCF) Special Interest Group (SIG) for App Delivery. A consortium of vendors including Amazon Web Services (AWS), GitHub, Weaveworks and Codefresh are all also working together on figuring out how best to advance the state of GitOps.
"There has been a rise of DevOps in the past few years, and GitOps is a natural extension of that, bringing teams into better alignment and orienting them around Git," Chris Patterson, staff product manager at GitHub, told ITPro Today. "We believe it's important to work with the industry and community to define principles and develop guidance for GitOps as it matures, and we’re pleased to be a part of the GitOps Working Group as it continues to grow within the CNCF."
GitOps in Flux
While GitOps is a methodology, it also involves technology. In particular, there are several key open-source projects that help to enable GitOps. Among them is the Flux project, led by Weaveworks, which moved from the Incubation to Sandbox project status within the CNCF on March 11.
"On the CNCF End User Technology Radar on Continuous Delivery, June 2020, the CNCF End User Community placed Flux into the Adopt category, which is a clear recommendation, even though it was only a Sandbox project at the time," Cheryl Hung, vice president of ecosystem at CNCF, told ITPro Today. "Both small and large organizations reported success with Flux, and the transparency, visibility and reproducibility that GitOps brings are beneficial to all platform teams."
While Git, which is an open source code version control system, is part of the term "GitOps," Cornelia Davis, CTO of Weaveworks and member of the CNCF Technical Oversight Committee (TOC), emphasized that it's not the use of Git alone that enables GitOps.
"We sometimes are tempted to say, well, as soon as I put things in Git and have some kind of automation, therefore, I'm doing GitOps," Davis told ITPro Today. "But just because you put it in Git doesn't mean it automatically starts acting any nicer than it did before."
In Davis' view, GitOps is about bringing a cloud-native approach to DevOps. Being cloud-native is about constantly adapting to changes that are happening around an application or development process, she said. With Flux, there is a programming model that allows an organization to stitch different things together to properly craft the automation that exemplifies GitOps, she added.
"GitOps is automation that is constantly adapting to the changing nature of the cloud," Davis said.
How Organizations Are Using the GitOps Model
The GitOps model is being adopted across all manner of organizations today. Microsoft Azure Arc, which is a hybrid cloud technology, directly integrates the open-source Flux project to help enable a GitOps model, according to Davis.
Dan Garfield, chief open source officer at Codefresh, which is also part of the GitOps working group, told ITPro Today that a lot of his company's users are using GitOps in production. The reason why they have embraced the model is because they find that GitOps helps them deploy more often and with more confidence in the process.
"GitOps in practice brings together a lot of the best continuous deployment and delivery strategies to create a modern, streamlined process for deploying," Garfield said. "It has a lower management overhead, better predictability, better auditability, and our users find it's much easier to identify potential regressions much earlier."
Bruno Andrade, CEO at cloud-native application management framework vendor Shipa.io, told ITPro Today that if done well, the value in the GitOps model is making both DevOps and development workflows more efficient.
"GitOps implements a clear path of everything that you need to run your applications, all the way down to the infrastructure-detail level," Andrade said. "It creates an audit trail of who executed what and when, as well as improving the developer experience and improving automation when it comes to continuous deployment."
How to Get Started with GitOps
There are multiple ways for an organization to get started with GitOps.
Technically Git isn't required to do GitOps, according to Garfield, though what is needed is version-controlled immutable storage, of which Git is the most popular by far. Additionally, there are some great open-source projects that enable a GitOps model with the version-control system; among them are the open-source Flux project and the Argo project, which to which Codefresh contributes.
Garfield recommends that organizations make use of two code repositories as part of a GitOps model.
- The first is an application repository where developers primarily work. Changes here will trigger a CI (continuous integration) process to test the changes and automatically generate the manifests or package updates using Kubernetes manifests, Kustomize or Helm Charts and open a pull request onto an infrastructure repository.
- The pull request into the infrastructure repository can trigger additional testing and after merging will automatically deploy using a GitOps operator like Argo with Codefresh's GitOps operator. The result is a smooth process that's easy to follow even if you have hundreds or thousands of microservices deploying across geographies, networks and firewalls and are updating them dozens of times a day.
Flux provides an easy way for users to get started, Davis said, with guides found at https://fluxcd.io/.
The Future of GitOps
It's still relatively early days for GitOps, but the movement will mature significantly in 2021.
The charter of the GitOps Working Group is to help the industry understand and develop GitOps principles, according to Davis. At Kubecon 2021 in May, there is a one-day conference scheduled just for GitOps, which Davis hopes will further advance the movement.
"I believe that GitOps is the model that will dominate operations in the same way that things like ITIL dominated the operations landscape. I believe that GitOps is still in the early days," she said. "I think, five years from now, it'll be pretty mature—everybody will be doing some level of GitOps—but I think it's going to be around for at least a decade or more."