Is GitOps just another name for Continuous Deployment? Yes and no! 🧵
On the surface it may seem like GitOps and CD are the same. Configuration is stored in Git (or any version control system) and a change triggers applying the new configuration.
But only applying the configuration if it changed in the repository, is not enough to automate the full life-cycle of a distributed system.
For many legacy platforms this leads to only partial Continuous Deployment that requires careful human coordination between the few automated and many manual parts of the full life-cycle.
Enter cloud native platforms that provide API’s to declare desired state and reconciliation loops to sync desired and current state.
GitOps is a better implementation of the Continuous Deployment idea that relies exclusively on systems with this fundamental separation of concerns between desired and current state.
So, if your automation takes what’s committed in the repository and changes the current state it’s not GitOps.
But, if your automation takes what’s committed in the repository and applies that as the new desired state it’s GitOps.
To make this clearer, I differentiate between committed, desired and current state. GitOps syncs committed and desired state but does not touch current state.
Examples of platforms that provide this separation of concerns enabling GitOps are of course Kubernetes, but also managed database services and with limitations even VM auto-scaling groups, if your VM images are truly immutable.
This means you can implement CD the GitOps way with any tool, as long as you don’t break the fundamental separation of concerns. Yes, Ansible, Chef, Puppet or even Bash.
Still, dedicated GitOps tools provide additional value, because they simplify the implementation by pulling the logic out of the pipeline. Thereby making it testable and easier to maintain.
To summarize, GitOps is an opinionated Continuous Deployment implementation that explicitly depends on key foundational platform features. In my opinion, GitOps as a new name makes sense to highlight this seemingly small but crucial difference.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Philipp Strube

Philipp Strube Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!