Continuous application lifecycle is all about end-to-end automation of the software delivery process. While most organizations have automated continuous integration (CI), automated continuous delivery (CD) remains elusive. Continuous deployment is particularly challenging and is still a distant wish for most organizations. With Kubernetes in particular, deployments often require manual steps or hotfixes that go unlogged and unrecorded, causing a number of problems further down the road.
GitOps aims to fix these problems by using a version control system like Git as a single source of truth for everything from applications to environments and resources. It also provides much-needed features like version control that make it possible to audit and track changes and even roll back to previous versions of an application.
GitOps pipelines can be built with a version control repository, a container registry, and a software agent like Flux to correct divergence. Deployments can then be fully automated with a combination of tools like Helm, Flux, Flagger, and Policy as Code (Magalix), or you can use continuous delivery products with all the GitOps features built-in and automated like Weave GitOps.
If all this sounds like a lot to digest, dive in, and we’ll explain each of these concepts and solutions in detail.