What is #noops or #gitops
In the previous blog we talked about Journey of Operations. This is part#2 of that blog where we cover what is GitOps and noOps.
Part#1 Journey of Operations Engineering
Now, Lets talk about the "How's"
NoOps : does not mean that there is no technical operations but means that there is no manual Operations. NoOps assumed that a dedicated team was responsible for deploying code as their function.Which was true before devops became mainstream and pipelines became more intelligent and automated. NoOps was the nirvana state for DevOps. This is not an execution style but a state where your pipelines are DSL driven, extensible and automated.
GitOps : A fairly new term coined by Weave, which entails all operations via GIT. With Devops the adoption of Infrastructure as code due to cloud skyrocketed, engineers started to use more of terraform, cloudformation for provisioning and Chef/Ansible for bootstrapping. GitOps was another outcome of DevOps, where all your changes are in GIT and you run operations from your SCM(GIT). When K8s hit the scene, Weave leveraged it well it come up with a good solution for small and medium startups where the product is simple and teams are smaller.
There are certain gaps if you try to fit gitops in your workstream:
- For a large organization it might not be very efficient to run the release management and process via git.
- GitOps might not be the single source of truth especially as we shift left and let Product managers leverage toggle feature switches to gauge the impact, collect metrics and drive decisions.
- Gitops does not address much needed features like multi-faceted autonomous canary.
- Pull model might not always work, has security implications as well as might lead to a messier git history.
Luís Faceira did a good job in summarizing gitops in one slide.
Gitops is fairly new and still maturing. It has some good practices namely all environment configs should be driven via git. So if you are planning on embracing gitops then focus on those aspect be flexible with others to ensure a seamless workflow and happy developers!
Further read on Gitops: https://thenewstack.io/from-gitops-to-adaptable-ci-cd-patterns-for-kubernetes-at-scale/