You’re likely more familiar with the concepts of DevOps than the more recently coined term GitOps. Among the goals of DevOps are to reduce friction within development, testing, and operation departments, and to improve the iteration efficiency of application deployments and versions to reduce human errors.
With advancements in cloud computing and more applications becoming cloud native, DevOps is more empowered than ever before. As technology advances, the demand for DevOps progresses.
GitOps is a logical extension of DevOps. GitOps builds on DevOps with git as a single source of truth for the whole system. It’s like using a different framework to implement the methodology of DevOps. GitOps delivers the outputs that you get from DevOps implementations, but from a more mature perspective since there is an element of experience attached to it.
As mentioned above, in GitOps methodology, git is the single source of truth for the entire DevOps workflow. In general, we can summarize the functions of the GitOps methodology as follows:
Now, to help associate the GitOps functions with the DevOps workflow, let’s take a look at what we expect out of the DevOps workflow in general:
The term GitOps was coined by Weaveworks in 2017. As a relatively new term, the way one might implement it may depend on their perspective and experience. What would you check on your list to achieve GitOps? PR & branch merges that trigger configure, build, test, and deploy with CI/CD using a webhook? Writing an AWS CloudFormation script? An awesome Jenkins plugin?
When we take a more in-depth look at GitOps, it goes beyond the integration of tools and focuses on how you perform implementation. With git as your single source of truth for the entire DevOps workflow, GitOps should ideally cover the following as well:
GitOps builds on DevOps with git as a single source of truth for the whole system. It goes beyond the integration of tools and focuses on how you perform implementation. In the ever-evolving world of technology and tools — e.g., Kubernetes and containers — development teams face the cultural challenges of changing development practices. GitOps helps them with those challenges by facilitating the adoption of new technologies and tools, enabling centralized version management, and improving auditing. To learn about how to drive CD on Kubernetes with GitOps, see our recent article published on DZone.