It’s hard to believe that GitOps was considered nascent just a couple of years ago. Looking back, 2021 has been a milestone year for GitOps with explosive customer adoption, various industry validations, and launches of new CNCF initiatives. GitOps is now widely accepted across vendors, ecosystems, and communities. This post is a sort of victory lap for GitOps covering the most important milestones and advances in the space from the past year.
The growing complexity of application development and demand for more frequent deployments bolstered the rise of GitOps. GitOps, in simple terms, is all about using Git for container-based continuous integration and deployment. GitOps enables a seamless developer experience and greater control for Ops teams. It is often considered an extension of DevOps.
The central idea of GitOps is to use Git as the single source of truth. With Git repositories storing the declarative state of the system, it makes code management, reconciliation, and audits fairly easy to control and implement at scale. GitOps offers productivity, reliability, and security for cloud-native applications, accelerating its adoption.
2021 witnessed an encouraging trend of GitOps adoption, with the development community experiencing multiple benefits with GitOps. Some of them are:
- Increased developer productivity
- Improved developer experience
- Enhanced stability
- Higher reliability
- Stronger security
Let us take a detailed look into four important GitOps moments this year.
Flux gets CNCF incubation and 'Adopt' status
One leading big moment in the defining year for GitOps is the validation Flux - an open source continuous delivery software - received from Cloud Native Computing Foundation (CNCF). The Technical Oversight Committee of CNCF has advanced the open-source tool to Incubation status from Sandbox. This status is an evident endorsement that Flux efficiently manages Kubernetes complexity and has serious production potential.
Since it joined CNCF as a Sandbox project in 2019, Flux expanded its footprint wide and deep. It is currently in use by over 80 enterprises, while the end-user base increased by 2.75x and the community by around 4x. The predominance of Flux boosts GitOps expansion into cloud-native application development.
Flux is a tool that ensures the state of a cluster matches the config in Git, and, therefore, the deployments are automated. It forms a complete Continuous Delivery platform for the simplified operation of Kubernetes. The Flux project helps developers with faster deployment, easy code reverting, and thorough monitoring of all relevant image repositories.
Developed by Weaveworks, the Flux project was also inducted in the ‘Adopt’ category of CNCF’s Technology Radar on Continuous Delivery by the end-user community. The open-source operator joins Helm, the only other name in the coveted category. Besides the existing ability to integrate with Helm, Kyverno, Kustomize, and Prometheus, the project comes with an SDK for easy integration with other CNCF projects.
CNCF CTO, Chris Aniszczyk, affirmed the growing significance of GitOps, stating that with enterprises adopting cloud-native software at scale, the adoption of GitOps tools like Flux ‘will naturally follow.’
Inception of OpenGitOps
Another big event for the GitOps community is the inception of OpenGitOps, a CNCF Sandbox project. Initiated by the GitOps Working Group (GWG), the project aims to accelerate the adoption of GitOps through a structured and regulated approach. This group is currently guiding the roadmap and best practices according to a vendor-neutral standard. The GWG is a consortium of vendors, including Weaveworks, GitHub, Amazon Web Services (AWS), and Codefresh - each of them pioneers in the field of GitOps.
The GWG has recently announced its 4 fundamental principles of GitOps. This is essential information for anyone implementing or managing systems the GitOps way.
Principles of GitOps
The GitOps-modelled system is configured declaratively, focusing on the result of the desired state. Unlike in the imperative system, it ignores the process or steps that need to be followed.
Versioned and Immutable
As all the declarative systems are stored immutably in the version control system, it primarily acts as the single source of truth. This leads to a one-point data location and enables developers to review configuration drifts without hassle. Moreover, it simplifies troubleshooting, auditing, and rollbacks.
As the declared state is stored in Git, developers can automate all the changes that need to be implemented through a pull request. A pull request is initiated at the master branch that anchors the current state of the system. This triggers the GitOps pipeline and the changes are applied across clusters. Even if the changes need to be rolled back, it is done automatically through a pull request.
The system stage is continuously monitored and in case of any changes or a failure, a self-healing mechanism is initiated to reconcile and apply the desired state. This is to ensure that the system state is in line with the repository declaration.
General Availability of EKS Anywhere
Recognizing and advocating the rise of GitOps, AWS announced the general availability of EKS Anywhere this year. It allows the application of Kubernetes and associated components in multi-cloud environments. Further, this newly launched deployment tool enables developers to efficiently execute and manage Kubernetes clusters.
EKS Anywhere is tightly integrated with Flux, the GitOps tool developed by Weaveworks. The GitOps methodology thus helps developers manage Kubernetes and automate continuous delivery pipelines with a developer-centric operating model.
General Availability of Weave GitOps
This past year was very eventful for us at Weaveworks with the launch of our enterprise GitOps offering - Weave GitOps. It comes in two flavors - Core and Enterprise.
Weave GitOps Core is a free and open-source project aimed at organizations getting started with GitOps. It simplifies GitOps down to just two commands:
- Enable GitOps on a cluster:
- Add application:
gitops add app</ol>
Powered by the CNCF incubation project Flux, Weave GitOps Core allows automated deployments from Git to a production Kubernetes cluster. It goes further to include automatic reconciliation with Git, and comes with pre-configured monitoring and observability tools like Prometheus and Grafana.
Weave GitOps Enterprise is the commercial version that comes with added features such as drift detection, Kubernetes cluster templates, team workspaces, and security capabilities like RBAC and SSO
GitOps is fast becoming a go-to approach across organizations due to its ability to adapt to any type of application and any industry. In addition, with lowered operational costs and better audibility, GitOps streamlines deployment processes. 2021 has been a landmark year for the wider GitOps movement, and especially for us at Weaveworks. We hope you’ll join us for the ride in 2022 as we blaze new trails with GitOps.