GitOps

GitOps is a new buzzword, although the concept is not very new. It is another variant of Infrastructure as Code. The basic idea is that your code, configuration, and the resources it requires should all be described and stored in a source control repository where they are version controlled. Whenever you push a change to the repository, your CI/CD solution will respond and take the correct action. Even rollbacks can be initiated just by reverting to a previous version in your repository. The repository doesn't have to be Git, of course, but GitOps sounds way better than Source Control Ops, and most people use Git anyway, so here we are.

Both CircleCI and Argo CD fully support and advocate the GitOps model. When your git push code changes, CircleCI will trigger on it and start building the correct images. When you git push changes to the Kubernetes manifests, Argo CD will trigger and deploy those changes to your Kubernetes cluster.

Now that we're clear on what GitOps is, we can start implementing the continuous integration part of the pipeline for Delinkcious. We will use CircleCI to build Docker images from source code.