The current state of GitOps
Kubernetes allowed us to manage application deployments and infrastructure components using declarative configuration files (yes, those YAMLs that you may not be a fan of ). While dealing with a myriad of YAML files may be loved by some and hated by others, it enables us to host all these files into a Git repository, hook it up to a pipeline (Jenkins, GitLab, etc.), and have a tool apply those changes to a cluster—and voilà, you have GitOps.
There is currently a big push in the industry for teams to start using it as the standard approach to deliver cloud-native applications, and we can certainly understand why. GitOps can bring benefits such as:
- A lightweight approval process
- It stores the history of changes in Git
- Increases the concept and utilization of infrastructure as code
And many more.
While GitOps brings many benefits, we often see teams facing challenges around:
- Lack of visibility: Answering a simple question such as how often certain applications were deployed can become complex at scale
- Auditing isn’t as great: If you have a large number of applications and an Enterprise-level audit requirement that you are responsible for, walking through a ridiculous amount of Git history and full-text search is not what your auditors, business, and the boss is looking for
- Controls: Implementing controls on what’s being deployed is not embedded as part of the approach
- Post-deployment: While people get really fixated on the deployment piece, you have to remember that you need to give your developers a connected workflow where they can manage their own applications, reducing the burden on the DevOps or Platform Engineering team
- Kubernetes only: Although you may want to move every app and service to Kubernetes unless you are a fairly new company, you already have a ton of existing infrastructure that your business wants you to leverage, and GitOps cannot attend that.
The list can go on and on, but these are some of the common challenges we see when talking to different teams.
Integrating GitOps to AppOps
While these are common challenges, it does not mean that GitOps is not a good solution.
When you detach GitOps from an infrastructure-specific tool, such as Kubernetes, and instead integrate it with an Application Operating Model, you can quickly solve the aforementioned issues.
The video below shows an example of how Shipa can integrate with Crossplane, ArgoCD, and different Kubernetes and Linux infrastructure while solving the challenges previously mentioned.
You can find detailed information about Shipa’s integration with Crossplane and ArgoCD here
We will soon be releasing additional content on how to set up a complete GitOps workflow.