GitOps is an operational framework that takes DevOps best practices used for application development such as version control, collaboration, compliance, and CI/CD, and applies them to infrastructure automation.
It simple terms it means using version control everywhere i.e from the development phase to the deployment phase.
GitOps works by using Git as a single source of truth for declarative infrastructure and applications. With Git at the center of your delivery pipelines, every developer can make pull requests and use Git to accelerate and simplify both application deployments and operations task
Gitops features
- increases productivity with CD automation.
- Higher reliability from Git’s built-in revert/rollback and fork and from a single source of truth.
- Cost-effectiveness from lower downtime and vastly improved productivity
- Stronger security, due to Git’s strong correctness and the cryptography used to track and manage changes.
- Easier Credential Management
- Self-documenting Deployments
- Consistency and standardization of end-to-end workflows.
- Stronger security, due to Git’s strong correctness and the cryptography used to track and manage changes.
- Cost-effectiveness from lower down-times and vastly improved productivity.
Core components
- IaC - Infrastructure as Code (IaC) is the practice of keeping all infrastructure configuration stored as code.
- MRs - Merge Requests (MRs) is where teams can collaborate via reviews and comments and where formal approvals take place. Merge commits to your master(or trunk) branch serve as a change log for auditing and troubleshooting.
- CI/Cd - The CI/CD pipeline enacts the change in the environment. Any configuration drift, such as manual changes or errors, is overwritten by GitOps automation so the environment converges on the desired state defined in Git.
Gitops Disadvantages
Scaling an application across the Pipeline
Users must look out for broken YAML manifests, in which syntax or object references may be broken.
By approaching development through a pull approach, users are limited to using only tools that execute pulls.
There is potential for API throttling, since GitOps will consistently poll Git repo.