Tech Savvy Talks Vol.2 GitOps on AWS: Simplify Kubernetes Deployments



The second edition of the Scalefocus series Tech Savvy Talks was held on 20 October.


If you are new here - Tech Savvy Talks are online events organised bi-weekly, covering various technology topics. The initiative's primary goal is to gather colleges and people with similar interests to discuss new tech trends, best practices and share knowledge and insights from their expertise.

Another plus of the activity is that it's free and open to anyone.


Follow Scalefocus's profile  and be the first to know about the upcoming topics and events.

Now let's explore the second episode dedicated to GitOps on AWS: Simplify Kubernetes Deployments. Petar Gjorgievski was the presenter, he is a DevOps Engineer at Scalefocus based in Skopje.


During his talk, he covert topics as:

  • What is GitOps

  • GitOps principles 

  • GItOpsbenefits 

  • How a GitOps pipeline might look like 

  • Explore the ArgoCD tool

  • Short demo where we are going to try to configure and set up a working GitOps pipeline 


What exactly is GitOps

GitOps is a way to do Kubernetes cluster management and application delivery. GitOps works by using Git as a single source of truth for declarative infrastructure and applications. With GitOps, the use of software agents can alert on any divergence between Git with what's running in a cluster, and check if there's a difference, Kubernetes reconcilers automatically update or rollback the cluster depending on the case. With Git at the center of your delivery pipelines, developers can use familiar tools to make pull requests to accelerate and simplify both application deployments and operations tasks to Kubernetes.

Let’s talk about GitOps principles

The entire system described declaratively

With your application’s declarations versioned in Git, you have a single source of truth. Your apps can then be easily deployed and rolled back to and from Kubernetes. And even more importantly, when disaster strikes, your cluster’s infrastructure can also be dependably and quickly reproduced.


The canonical desired system state versioned in Git

With the declaration of your system stored in a version control system, and serving as your source of truth, you have a single place from which everything is derived and driven. This trivializes rollbacks which can be achieved with a simpler git revert. Using Git, you get the extra benefit to have a look into the authors of the code.


Approved changes that can be automatically applied to the system

This means that every time a pull request is approved and merged, you are able to sync up your cluster automatically and make a deployment without the necessity to give direct access to the cluster.


Software agents to ensure correctness and alert on divergence

This means that there is essentially an agent which always monitors both the current state of the cluster and the source of truth and alerts on any changes on either side of the configuration.



This leads us to the Benefits of GitOps


1. Simply said, it increases productivity.


Continuous deployment automation with an integrated feedback loop speeds up the time to deployment.

2. Enhanced Developer Experience 


Developers just have to push code to git and not worry about building containers or knowing the internal workings and configurations of the kubernetes cluster. This also makes it easier to onboard new colleagues and get them to start contributing faster.

3. Improved Stability & Higher Reliability


Using Git to have more stable, reliable and reproducible rollbacks, as we mentioned previously, Git is also the only source of truth that it's the alpha and omega. It can help recover from disasters relatively quickly.

4. Consistency and Standardization


Finally, Gitops offers us consistency, meaning, everything we have, our whole workflow including the application code and infrastructure code is built on top of our git repositories.



Git Workflow



1. Leverages git workflow

2. Git as source of truth

3. Manage multiple environments

4. Easy rollbacks


ArgoCD


ArgoCD is a GitOps tool that helps with your GitOps workflows. ArgoCD can be used as a standalone tool or part of your CI/CD workflow. low. ArgoCD works with Git as a source of truth, with current Kubernetes manifests, or with Helm charts. It can be managed both declaratively through a click or a Dashboard which is quite nice, to be honest.


It can be deployed inside of your cluster or outside of it and it works as General commanding its army with the way that it operates in the whole GitOps workflow. For more – watch the demo.


There are alternatives like for example Flux, Jenkins X, and a few others as well. But we are sticking with ArgoCD.



ArgoCD Positives



1. Container native workflow

2. Event based dependency manager for K8s

3. Declarative continuous delivery for K8s


4. Dashboard



With all that cleared out, we can proceed with the DEMO.

You can watch it here and the whole Tech Savvy talk where Petar Gjorgievski shared a lot more details and knowledge on the mentioned topics and many more, for example - а model of a GitOps Pipeline and a Setup.


Got your interest?


To see the talks and check what’s next, don’t forget to sign up for the following events:


Scalefocus Events | Eventbrite


Oh last but not least, it’s not all, so work-oriented, we have some gifts for you. Attend the next Tech Savvy Talk and get yours.


See you there.