TL;DR: GitOps applies Git-based version control and declarative automation to continuously manage infrastructure and applications.

GitOps is a name built around Git + Ops, following the same naming pattern as DevOps. The name emphasizes the idea of bringing Git-based software development practices into operational work.

While it is an operational model built around Git as the source of truth for declarative system configuration. It extends ideas from Infrastructure as Code (IaC) and Continuous Integration / Continuous Delivery (CI/CD).

The underlying idea is closely related to Everything as Code: infrastructure, application configuration, policies, deployment definitions, and operational workflows can increasingly be represented as code or declarative text.

With GitOps, the desired state of a system is stored in Git. Changes are made through commits and pull requests, allowing the configuration to be reviewed, tested, audited, and versioned before it is applied.

Automation then compares the desired state in Git with the actual state of the environment and works to bring the environment into alignment. This is where GitOps differs from a traditional deployment pipeline: the system continuously works toward the declared state rather than relying only on a command being executed once.

Advantages:

  • Version control: Every configuration change has a history.
  • Reviewability: Changes can go through pull requests and peer review.
  • Auditability: It is possible to determine who changed what and when.
  • Reversibility: Previous configurations can be restored when a change causes problems.
  • Consistency: The same declared configuration can be applied repeatedly.
  • Automation: Deployment and reconciliation can happen with minimal manual intervention.
  • Scalability: The same approach can manage many environments while still allowing environment-specific configuration.

The important concept is therefore not simply “put everything in Git.”

Git describes the desired state → automation observes the environment → the system reconciles actual state with desired state.

This creates a workflow in which infrastructure and applications are managed through the same fundamental mechanism used for software development: change the code, review the change, test it, merge it, and let automation deliver the new state.


Back to Certified Cloud Native Platform Engineering Associate Preparation