What are the best DevOps tools to use in 2022? Actually, that’s a marketing gimmick, so let me rephrase that: What are the best tools for developers, operators, and everything in between in 2022, lets call it DevOps?
I’ve divided them into several categories:
- Progressive delivery
- Pipelines and workflows
- Service mesh
Note: I won’t go into great detail about each of these tools because that would take hours, but I will provide links to descriptions, and other useful information about each of them.
Let’s begin with IDE’s. Visual studio code is the tool you should be using – it is the clear winner in every way. It is open source, free, has a large community, and a plethora of plugins. Visual studio code is capable of performing any task.
I recommend using the terminal built into Visual Studio Code. Everything in one place. You can write your code, manifest, etc. – and you have a terminal built in.
There is no need to use an external terminal shell when using the terminal in Visual Studio Code.
Containers, containers, containers – that’s how we package applications today.
Actually, we no longer package containers; instead, we package container images, as is now the industry standard. It makes no difference whether you deploy to Kubernetes, directly to Docker, or use Serverless. Most Serverless solutions today allow you to run containers, which means that you must, and note that I did not say should, package your applications as container images, with a few exceptions.
The only exception is if you’re creating CLIs or desktop applications, in which case you should package whatever is native to that operating system. It makes no difference where you deploy it or how you build those container images.
If you’re building through some CI/CD pipeline, use Kaneko. Kaneko is the best solution to build container images today.
Distribution, service or platform – Which one should you use?
It depends where you’re running your stuff. If it’s in the cloud use whatever your provider is offering. You’re most likely not going to change your provider because of Kubernetes service. BUT, if you’re indifferent and you can choose any provider to run your Kubernetes clusters – then Google Kubernetes Engine (GKE) is the best choice. It is ahead of everybody else.
The difference is probably not sufficient for you to change your provider but if you’re undecided where to run it, then google cloud is the place. If you’re using on-prem servers, then probably the best solution is Rancher unless you have very strict and complicated security requirements then you should go with OpenShift.
If you want to run Kubernetes cluster locally then it’s k3d. k3d is the best way to run Kubernetes cluster locally. You can run a single cluster, multi-cluster, single node, multi-node and it’s lightning fast. It takes couple of seconds to create a cluster and it uses minimal amount of resources.
It is dependent on the type of Serverless you require; if you require functions as a service, AWS Lambda is the way to go. AWS was the first to begin, at least among large providers, and they continue to lead in that area, but only for functions as a service.
If you want containers as a service flavour of serverless – and you should want containers as a service – then Google Cloud Run is the best option on the market today.
Finally, if you want to run serverless on-premises, knative is the way to go. Knative is the engine behind Google Cloud Run. It’s the best option if you want to run serverless workloads in your own clusters on-premises.
Argo CD and Flux are both fantastic. They differ in some ways. Each has advantages and disadvantages. I can’t decide between them because they’re both phenomenal.
Progressive delivery is in the same boat as Gitops. You have the option of using Argo rollouts or Flagger, you will most likely choose one or the other.
Because Argo rollouts works exceptionally well with Argo cd and flagger works exceptionally well with the flux . You can’t go wrong with either, you’re most likely going to choose the one that belongs to the same family as the GitOps tool that you chose previously.
Two winners in this case, one is terraform.
Terraform is the market leader; it has the largest community, it is stable, it has been around for a long time, and everyone uses it – you can’t go wrong with Terraform.
BUT, if you want to get a glimpse of the potential future, with additional features, especially if you want something that is closer to the ecosystem of kubernetes – then you should go with crossplane.
Go is a popular programming language, especially if you’re working on microservices or smaller applications. GO has a very small footprint and is extremely fast. If you haven’t already, give it a shot. If for nothing else, you should include GO on your curriculum because it’s all the rage – and for good reason.
Prometheus is an absolute must. If you choose something else, Prometheus must be added on top of that something else. For one simple reason: many tools, frameworks, and applications assume you’re using Prometheus. It is the de facto standard, and you will use it, even if you have previously decided to use something. It is both inevitable and its a great tool.
There are two options.
vs or Helm
Because they have various strengths and limitations, you should probably combine them. If you’re an operator who isn’t tasked with empowering developers, Kustomize is a better option. If you want to make life easier for devs who aren’t very familiar with Kubernetes, helm is the best solution. It will not be easy for you, but they will appreciate it.
Use Snyk for scanning. Snyk is a clear winner in terms of governance, legal requirements, and compliance, at least for the time being. I also recommend OPA gatekeeper; it is the best option we have today, despite the fact that the market is about to explode and many new solutions will be available very soon.
It’s absolutely fantastic, especially if you like terminals. Try it out; k9s is the best dashboard when it comes to Kubernetes.
Pipelines and workflows
It all depends on how much effort you want to put into it yourself. If you prefer to roll up your sleeves and do it yourself, there are two options.
Argo workflows combined with Argo events, or Tekton paired with a few more things
Each has benefits and drawbacks, but there is no clear winner at this time. There is no competition between the two options you currently have.
I recommend code rush if you want simplicity, a service, don’t want to think about pipelines, and just want to go with the least amount of effort; everything integrated.
We are moving towards Linkerd(Link Here) being the dominant player for a couple of reasons.
- It is independently managed
- It is in the cncf foundation(Cloud Native Computing Foundation)
- Nobody really owns it
- More lightweight
Linkerd is based on smi or service mesh interface and that means that you will be able to switch from Linkerd to something else if you choose to do so in the future.
If you’re using Kubernetes – Velero it is the best option we have today to create backups. It works amazingly well as long as you’re using Kubernetes.