Git up to speed
Unlike DevOps, which is a tool–agnostic cultural approach, GitOps is an operational framework applied to infrastructure automation. As the name suggests, it’s tied to a specific tool – Git. It’s optional – if you have a DevOps culture, you don’t have to do GitOps. But you can’t put the cart before the horse. If you want to practice GitOps, you’re going to need a mature DevOps approach in place.
As you can imagine then, GitOps incorporates software development lifecycle best practices, such as collaboration, version control, continuous delivery/deployment (CD), and compliance, and applies them to infrastructure automation. With Git as a single source of truth, GitOps provides an operational model for infrastructure provisioning, enabling developers to manage and trigger deployments using pull requests.
With Git containing your system’s entire state, any changes are visible and auditable. And because it’s been built around the developer experience, teams can use GitOps to easily manage infrastructure with no steep learning curve in sight. They can simply use the same software development tools and processes they’re already familiar with.
Other than a Git repository to track any changes you make to a project, you don’t need a specific product or platform to do GitOps. While it’s an effective way to manage Kubernetes, and is often touted as such, its principles are relevant to all types of infrastructure automation, including virtual machines (VMs) and containers.