GitOps
What is GitOps?
GitOps is a set of best practices that emphasizes using Git as the source of truth for declarative infrastructure and applications. The core idea behind GitOps is that Git repositories hold the desired state of a system, and automated processes ensure that the actual state of the system matches the desired state held in Git. Here's a breakdown of its key features:
-
Version Control: Everything about the system—code, configuration, infrastructure—is stored in a Git repository
-
Automated Deployment: Changes to the system are automatically deployed to production once they are committed to the repository
-
Continuous Delivery: Changes are automatically tested and deployed in a rapid, iterative manner.
-
Declarative Configuration: The system’s desired state is described in a declarative manner, often using YAML or JSON files.
-
Pull Requests: Changes are proposed using pull requests, which can be reviewed and approved by team members.
-
Automated Monitoring and Reconciliation: The system constantly monitors the actual state and compares it against the desired state in the Git repository. If discrepancies are found, it automatically attempts to reconcile them.
-
Security and Compliance: With everything versioned and logged in Git, it provides an audit trail for changes and helps in maintaining compliance standards.