In this blog series, we’re getting up close and personal with GitOps, bringing you the whats, whys, and hows of this transformational framework. First up, we’re asking the question that’s on everybody’s lips: what’s the difference between GitOps and DevOps?
Before we get ahead of ourselves dazzling you with the delights of GitOps, let’s have a quick refresh of what DevOps is and why you’re probably already doing it.
The feeling’s cultural
Digital transformation has led more and more organisations to adopt a DevOps culture. This portmanteau (‘Dev’ for development and ‘Ops’ for operations) refers to the bringing together of traditionally siloed teams to produce new applications and services, and make updates, at high velocity. DevOps extends agility to the whole software development lifecycle (SDLC). By speeding things up, organisations can be more competitive and deliver more value to their customers.
The DevOps core foundation is collaboration, where dev and ops teams work together to create pipelines that can be spun up automatically, rather than depending on service request culture to achieve frequent deployments. While these practices are consistent, the tools you use as part of your DevOps approach can vary. By doing DevOps, organisations can deploy more often, develop new features, release updates more quickly, and fix any issues in an instant.
In short, like agile, DevOps is a cultural transformation. By eliminating silos, engineers are free to work across the entire SDLC, including development, testing, implementation, and operations. As a DevOps culture matures, it might evolve to incorporate new elements to speed up other processes, such as quality assurance (sometimes called DevTestOps) and security, known as DevSecOps, which you can find out more about here – and operations–related tasks. The latter is how GitOps was born.
Git up to speed
Unlike DevOps, which is a tool–agnostic cultural approach, GitOps is an operational framework applied to infrastructure automation. As the name suggests, it’s tied to a specific tool – Git. It’s optional – if you have a DevOps culture, you don’t have to do GitOps. But you can’t put the cart before the horse. If you want to practice GitOps, you’re going to need a mature DevOps approach in place.
As you can imagine then, GitOps incorporates software development lifecycle best practices, such as collaboration, version control, continuous delivery/deployment (CD), and compliance, and applies them to infrastructure automation. With Git as a single source of truth, GitOps provides an operational model for infrastructure provisioning, enabling developers to manage and trigger deployments using pull requests.
With Git containing your system’s entire state, any changes are visible and auditable. And because it’s been built around the developer experience, teams can use GitOps to easily manage infrastructure with no steep learning curve in sight. They can simply use the same software development tools and processes they’re already familiar with.
Other than a Git repository to track any changes you make to a project, you don’t need a specific product or platform to do GitOps. While it’s an effective way to manage Kubernetes, and is often touted as such, its principles are relevant to all types of infrastructure automation, including virtual machines (VMs) and containers.
DevOps and GitOps side by side
Now you’re better acquainted with both, let’s take a look at GitOps and DevOps side by side.
|What is it?||A cultural transformation centred around CI/CD pipelines||A declarative approach to CD|
|What tools do I need?||Any generic CI/CD pipelining and related tooling||GitOps Operator|
|What practices are involved?||Improved team collaboration and communication, CI/CD, IaC, more automation, frequent deployment||PR-based CD for your infrastructure|
|Any other related technology?||A wide range of other business solutions||Kubernetes or another highly dynamic container orchestration tool|
|What are the benefits?||Increased productivity and collaboration, speed up development, employee satisfaction, lower costs, strong security||Infrastructure configuration stability and visibility|
As you can see, DevOps and GitOps share a lot of the same principles and practices. If you already have a DevOps culture, you might decide to manage your infrastructure using GitOps. As a result, you should see a noticeable increase in productivity for DevOps teams as they embrace the incredible rollback power GitOps provides, ensuring your infrastructure stays stable, reliable, compliant, and secure.
Seven big challenges to get over with GitOps
In this blog series we take a look at some of the problems GitOps poses and the challenges you might have to overcome.