As more and more organizations embrace Digital Transformation, they also adopt a DevOps culture in order to be able to produce new applications and services at high velocity. That’s because a culture that encourages shared responsibility, transparency, and fast feedback helps shrink the gaps between teams and therefore also speeds up processes.
Out of the need for fast innovation, GitOps was born - a set of practices that allow developers to perform more IT operations-related tasks.
Enable High Velocity Development
Breakaway from the inability to quickly deploy isolated environments of any specification.
Background
Although GitOps and DevOps overlap, there are significant differences between the two that we’ll try to highlight through this article.
The most important thing to keep in mind is that DevOps is a mix of culture, development, operations, and tools that enable organizations to develop and improve products at a faster rate. On the other hand, GitOps is tied to a specific tool- Git.
Summary
Here’s what you can expect from this article:
- Short intro to DevOps
- Short intro to GitOps
- Main differences between GitOps and DevOps
- How GitOps integrates with DevOps
- Frequently asked questions about GitOps
- The Bunnyshell solution
Short Intro to DevOps
DevOps aims to eliminate the ‘silo mentality.’ It encourages teams to collaborate to deliver new features more quickly, deploy more frequently, and solve potential issues faster in case of failure.
Although the term DevOps refers to the development and IT operations teams, in reality, an organization that does DevOps well brings together all stakeholders.
To read more about what DevOps is, check out our dedicated article.
Short Intro to GitOps
GitOps is a specific System Operations (ops) process tied to a specific tool (Git). It’s an evolution of Infrastructure as Code (IaC) and a DevOps best practice that leverages Git as the single source of truth, and control mechanism for creating, updating, and deleting system architecture. Simply put, GitOps is the practice of using Git pull requests to verify and automatically deploy system infrastructure changes.
One important thing to note here is that, while an organization that has a DevOps culture may use GitOps, that’s not mandatory. Conversely, not every organization that uses GitOps has to have a DevOps culture.
GitOps Use Cases
Here are a few use cases for which GitOps is a key enabler:
- Smart city services - the implementation of these services comes with the challenge of being able to roll out and manage a complex platform, and GitOps practices can help with tackling the operational complexities.
- Network slicing - GitOps can enable service providers to differentiate service tiers and users to pay only for the bandwidth they need/use. This means premium pricing for video streaming and lower prices for connected IoT devices.
- Addressing network congestions - this is a significant issue in 4G networks, especially in densely populated areas. Thankfully, it will be solved when 5G reaches maturity, but cloud-native principles are required in order to provision and manage the numerous edge nodes, which means leveraging GitOps and Kubernetes.
Main Differences | GitOps vs. DevOps
Here are the main differences between GitOps and DevOps:
GitOps | DevOps | |
---|---|---|
Approach | A technique that uses the tool Git to manage infrastructure provisioning and software deployments | A culture that focuses on CI/CD (not tied to the specific tool) |
Main tool | Git | CI/CD pipeline |
Other tools | Kubernetes, separate CI/CD pipelines, Infrastructure as Code | Supply chain management, Cloud Configuration as Code |
Focus | Correctness, doing DevOps correctly | Automation and frequent deployments |
Correctness | Designed with correctness in mind | Focuses less on correctness |
Flexibility | Stricter and less open | Less strict and more open |
How GitOps integrates with DevOps
Their shared principles make it easier to adopt a GitOps workflow to already actively employed DevOps techniques.
Git is already the most widely used version control system in the world today. So as companies embrace more DevOps methodologies, they also embrace the tools, which has led to the evolution of GitOps.
It comes down to the fact that GitOps can significantly increase productivity for a DevOps team. After quickly experimenting with new infrastructure configurations, a team may use Git history to revert changes to a known good state if the new changes do not behave as expected. This “feature” is extremely substantial, as it acts as the “undo” button in a complicated infrastructure.
Frequently Asked Questions about GitOps
Some frequently asked questions about GitOps are answered below:
What is one difficulty that GitOps comes across? Challenge of making sure apps pick up the latest metadata.
What is one of the best practices of GitOps? Ensure all the pipelines and automation are set up correctly.
Can I say that GitOps is a subset or a type of DevOps? No, GitOps is a specific System Operations process tied to the tool Git.
Can I use both GitOps and DevOps simultaneously? Yes, but that does not mean that a company that uses GitOps has a DevOps culture, and vice versa, a company with a DevOps culture might not use GitOps.
What is the goal of GitOps? GitOps aims to create a Continuous Deployment approach to help teams manage clustered or cloud-native applications, all while borrowing concepts from CI/CD and DevOps.
What are the benefits of GitOps? Distribution of work, faster time to market, improved access control, less risk, more compliant, and less error-prone are some benefits of GitOps.
Why is GitOps bad? There is a lack of visibility (it promises visibility only for relatively simple setups). There is a lack of input validation. Also, it is not designed for programmatic updates, to name a few reasons.
Who coined the term? Alexis Richardson coined the term GitOps.
Conclusion
Ever since Alexis Richardson coined the term over three years ago, GitOps has demonstrated real value for many big and small organizations. It’s a powerful tool for managing cloud infrastructure that provides a lot of benefits without locking you down with too many tooling choices.
Just like DevOps, GitOps has many benefits like communication, visibility, stability, and system reliability.