Initially, we have seen DevOps, DevSecOps and many other ops but nowadays a new terminology “GitOps” is getting famous. Its fame has reached to this level that it was a trending topic at KubeCon.
So just like everyone I also got curious about it and started reading about it and then thanks to my company I also got the chance to implement it for one of our projects.
Also, a lot of people think that GitOps is only for containers and its orchestration tools. This isn’t true because GitOps is a philosophical approach, yes I agree GitOps are primarily used in the containerized workflow because of its high level of agility but we can use GitOps in the non-containerized environment as well using plane CI-CD tools like Jenkins.
In a nutshell, GitOps entails using Git and Pull/Merge Request to manage all stages of software development. Whereas the developer has used Git to manage application source code, GitOps uses Git to share information and coordinate activities like infra provisioning, application deployment.
Also, we can say that GitOps is a methodology that uses Git as a single source of truth for declarative infrastructure and applications.
GitOps provides a lot of features we cannot list down all features but yes we can highlight some important features of it.
One of the major benefits of using GitOps is its self-healing nature. Since git is the source of truth for the whole system, at any time if someone unintentionally modified the system it will be reverted back to keep sync with git.
Also, rollback is also quite easy in this scenario. In most cases, the master branch reflects the state of the system. If there is any kind of failure in the application and it needs to be rollbacked, it can be simply done by the reverting to the previous git state.
It also solves the issue of audit trail and transparency because everything is done via Pull Request. If something doesn’t work you have a single place to look for i.e. commit history.
Since GitOps has become so much popular, the open source communities are developing the tools for the same. As these tools get matured, GitOps implementation would be much easier.
Now I am assuming that you are also fascinated by GitOps.
Soon I will be writing a blog on GitOps implementation on Kubernetes using Jenkins.
Thanks for reading, I’d really appreciate any and all feedback, please leave your comment below if you guys have any feedback.
Cheers till next time!!