Fork me on GitHub

Project Notes

GitOps

GitOps in a nutshell - Continuous Deployment for cloud native applications.

Notes

I keep coming across references to GitOps, and usually the promise is to finally clear up the confusion about the topic. At the end of the article there’s usually a link to another document for more information about “What is GitOps Really?”

GitOps is officially described as

a way of implementing Continuous Deployment for cloud native applications, coined by Weaveworks in 2017

What’s not clear:

  • is it just a method/conceptual approach?
  • or is it a fully baked solution that is ready to use?

I think my confusion stems from the fact that it tries to be both, with a lot of caveats. As far as I understand:

  • yes, it is a philosophy and conceptual approach. Essentially:
    • the target environment is formally described and versioned alongside code and build artifacts
    • the environment description is used to automate deployment (including rollbacks)
    • and yes, at a conceptual level, this doesn’t dictate or require any specific tools or standards for how this can be achieved
  • but it also describes a specific approach for how this can be realised. Essentially:
    • GitHub for versioning
    • GitHub Workflows with Actions for implementing the process
    • Kubernetes for managing the infrastructure
    • Flux for orchestrating Kubernetes according to the environment description

The GitOps site and associated ebook provide an introduction to the topic and also a practical example of setting up a pull-based GitOps workflow with the Flux Operator on Kubernetes.

Credits and References

About LCK#278 methods
Project Source on GitHub Return to the Project Catalog

This page is a web-friendly rendering of my project notes shared in the LittleCodingKata GitHub repository.

LittleCodingKata is my collection of programming exercises, research and code toys broadly spanning things that relate to programming and software development (languages, frameworks and tools).

These range from the trivial to the complex and serious. Many are inspired by existing work and I'll note credits and references where applicable. The focus is quite scattered, as I variously work on things new and important in the moment, or go back to revisit things from the past.

This is primarily a personal collection for my own edification and learning, but anyone who stumbles by is welcome to borrow, steal or reference the work here. And if you spot errors or issues I'd really appreciate some feedback - create an issue, send me an email or even send a pull-request.