What is GitOps?
Blog post from Octopus Deploy
GitOps is a modern paradigm that extends the principles of DevOps by using Git as the single source of truth for managing infrastructure and application deployments, although its name can be misleading as neither Git nor Kubernetes is strictly required to fulfill its principles. Originally coined by WeaveWorks, GitOps emphasizes a system's desired state being declarative, versioned, immutable, automatically pulled, and continuously reconciled. Despite its benefits, GitOps is not a complete solution for infrastructure management, as it requires complementary processes to address verification, recovery, visibility, security, measurability, standardization, maintainability, and coordination. The real value of GitOps lies in its ability to automate the transition from version-controlled configurations to live environments, often necessitating additional orchestration outside Kubernetes, using Infrastructure as Code (IaC) tools, and CI/CD systems to bridge gaps. As organizations implement GitOps, they often automate the manual touchpoints of the process, leading to a scenario where Git serves more as a structured database within a larger, automated CI/CD pipeline. Therefore, while GitOps provides a framework for desired state management, its true potential is realized when integrated with a broader set of tools and practices, highlighting the importance of processes "left of the repo" and "right of the cluster" in a comprehensive DevOps strategy.