My favourite DevOps & cloud native tools By Civo
Published: 2021-11-17 15:06:25

Hello everyone,

since I have been working in the DevOps space for a year now, I thought that it would be interesting to create an overview of my favourite cloud native tool. This is a list of tools that I either currently use or got to use within the previous year.

I would love to hear from you about your favourite tools — and if I don't know them yet, I might create an overview video so please do reach out.

All tools are divided by category — now there are maybe some tools that I have not thought of and will later on. Thus, this blog post will likely be a live update of my favourite tools.

If you prefer the video version of this post, here is the accompanying YouTube video:

## CI/CD pipelines
The CI/CD pipeline tool that you choose to use, either for your personal development needs or for your business, will highly depend on the version control system that you are already using and the resources that you have available. For instance, if you are already using GitLab, it makes sense to utilise the GitLab ecosystem. Similarly, when you are using GitHub, the GitHub ecosystem will likely be your preferred choice.

When I started working in the cloud native ecosystem, I was first introduced to Codefresh. Codefresh is a really nice platform that is easy to use and will allow you to cover complex use cases while getting comprehensive insights into your deployments. However, I would argue that for most companies it is going to be an overkill and you would not actually need most of their features. Codefresh provides DevOps specific tools and Dashboards to provide you with additional insights into your deployments. Their platform is constantly evolving and not all features might be supported at the same level. Similarly, you have a chance to get access to an innovative platform that provides you with additional GitOps specific functionality. This is something that you are less likely to find on conventional platforms.

Other than Codefresh, I have worked with GitHub Actions and GitLab CI. For most teams, I would argue that both provide enough functionality to aut7omate your deployments. In this case, I would make it dependent on where your project is hosted. With GitHub Actions, you will have a lot more community supports.

For further information, have a look at this video I made providing an overview of GitHub Actions.

[Introduction to GitHub Actions] 
(https://youtu.be/3LBLTGfVuj4)

## Observability
I really really love using Grafana. It takes some time to get started and use it to its "best". However, once you figure out how to set up new dashboards for your data, it allows you to filter your metrics for the data that is useful for your application.

Below is a gif from this examples tutorial on Katacoda that Bartek and I created a while ago. Try it out yourself! The link to the Katacoda tutorial is in the description of the repository.

Furthermore, Grafana launched on-call functionality alongside other highly requested features during ObservabilityCON (8th to 10th of November). This, alongside Grafana alerts and other features, makes Grafana the go-to-tool for all things monitoring and observability that you can no longer live without.

## Kubernetes Provider
I am highly biased here since I am working for Civo. However, if your main interest is Kubernetes clusters and you are looking for a managed solution, Civo has the best user experience. It is really easy to get started with AND your cloud bill will stay low. Many companies are already using Civo in production and you can get started too. Everything that can be built on k8s clusters can also be built on Civo k3s clusters.

[Civo Cloud Kubernetes Overview] 
(https://youtu.be/_aZLHlzuG9U) 

For further information, have a look at this video I made providing an overview of Civo.

Note that with the Prometheus operator on the marketplace, you can spin up your entire observability stack, including Prometheus and Grafana, alongside your Kubernetes cluster in just a few minutes.



## Kubernetes Configurations and Policy
I have talked about Datree a lot before — first of all, because you get it practically for free. Secondly, Kubernetes is difficult and Datree is THE tool that can make it a little bit easier for you to get started by checking your Kubernetes Manifests for any misconfiguration that might have been introduced. You can set policies and even customise policies to fit your application needs.

For further information, have a look at this video I made providing an overview of Datree.

[Verify Kubernetes Deployments with Datree] 
(https://youtu.be/MpdhrabnpYs)

## Infrastructure
I work with Terraform on a daily basis for the past 6 months. The documentation is great. Once you have figured out a flow for your infrastructure setup and deployments, you will basically do the same thing every time you deploy new tools or you introduce any updates. Automating your testing and deployment process can help you save a lot of time in the long term.

This video shows a simplified version of the flow that we have in place at Civo. If you are interested in what the use of Terraform may look like in production, then have a look at this Civo meetup recording.

[Full Tutorial: Deploying Helm Charts in Kubernetes with Terraform] 
(https://youtu.be/Qq1cfVw1Mx4)

## Cloud Native to the extreme
Those of you who already know me are aware of my constant involvement with Crossplane and how much I like to showcase its use. I've also had the chance to create the Civo-Crossplane provider — so, if you are already using Civo, you might want to have a look at Crossplane on how you can optimise your cloud native infrastructure management. Overall, I like Crossplane because it allows me to show how far cloud native resource management can go. Crossplane helps you to manage your infrastructure as Kubernetes resources, spin up and reconcile infrastructure like you would manage any other Kubernetes resources. If this got you curious, have a look at this overview video:

[Tutorial Using Crossplane to Setup Your Azure Kubernetes Service: Day 25 of #100DaysOfKubernetes] 
(https://youtu.be/Dw0SMLHZvXM)

## Security
Aqua Sec has several open source tools that allow you to scan your cloud native deployments for vulnerabilities. I am just getting started with Security-related tools. However, if this is something you are interested in, I would suggest having a look at Aqua Sec or Falco. (Maybe I will write a separate blog post about using their tools).

FYI

You might wonder why I am not including any "developer platforms". Hereby, I mean platforms that allow you to deploy containers on Kubernetes clusters with minimum effort. I have a very strong opinion on "end-to-end" platforms. If you would like to hear it, please do let me know and I am happy to make a separate video about it. However, this would detract from the tools that I have outlined in this post.

Summarising
The CNCF landscape is massive and as you can imagine, there is always "yet another tool to explore". Thus, this list will likely change over the next months or years. Maybe at some point, I will redo it completely. Until then, I hope this gave you some insights into the tools that I like to use (some of them on a daily basis) and the tools that I would generally recommend.