Someone posted a blog here a little while ago. I wrote up a big response only to find that OP deleted the post. I figured I might as well post my response here since it took me 45m to type out of my phone š«
What an interesting list. Some of these suggestions are good with others are not. I think we can reorder things a bit and make this more reasonable.
Jenkins
Jenkins is terrible! It should have been killed off a decade ago. Seriously, just donāt use Jenkins. There are much better offerings now.
Source control and CI/CD
The current trend is to rely on your source control provider for ci/cd. You may or may not have a choice in this space so letās name some big ones. GitHub, Gitlab, Azure DevOps, Bitbucket, Gitea/Forgejo. They all act as a git server and all offer automation. Learn whichever your company uses. If you get to chooseā¦ GitHub is great! Gitlab is also good but the automations will be focused on bash and tend to get messy IMO. ADO is truly a Microsoft product with many nonsensical choices. I find it frustrating to use. I havenāt done ci/cd with bitbucket. If you want a foss option, check out forgejo (a fork of gitea). I have not used either yet though it looks nice and I really want to.
Containers
Docker is a fine choice. I really like some alternatives tools like buildah, podman, etc. but nearly every piece of documentation out there is based on docker. The choice is yours here but docker will probably give you the simplest experience.
Kubernetes is an amazing runtime environment! IMO should be used as a standard interface for running resources in a public cloud. However, this is a huge jump and youāll want to learn at least a dozen good tools here. This one is a many years long practice but absolutely worthwhile. A quick and very incomplete list of tools: k9s, k3d, helm, kustomize (better than helm in most cases), flux, Argo (better than flux), istio. Seriously these are just the basics.
Infrastructure Management
While ansible is good, I would be looking to retire it at this point. A big possible exception is if you are running your own hardware and donāt have a great interface for alternative tools. If somebody just gives you a VM to use, then ya use ansible.
Terraform is great but donāt use it. OpenTofu is a foss fork and people should honestly just use this instead. But both tools have some limitations and oddities. People seem to love using terragrunt as well to make this easier to use.
If youāre using k8s, thereās also the open tofu controller. Iāve havenāt personally used it, but people I 100% trust in this space absolutely love it.
Observability
Firstly I like the numeronym instead: o11y.
Donāt use nagios. Itās old and there are better alternatives.
Elasticsearch is ok but I donāt really like it. Everything is stored as a document and justā¦ eh, there are better options.
Prometheus is quite good.
Hereās the biggest mistake that people make today. Use OpenTelemetry as the core of your o11y solution. Itās the 2nd biggest CNCF project (right behind k8s) and itās a fantastic tool. It lets you collect telemetry data and build data pipelines to whatever storage devices you want. That includes Prometheus and elasticsearch but you also can choose many more options as well with only tiny configuration changes.
ChatGPT
This entire post looks 100% like a copy/paste from ChatGPT. AI is a cool tool but OP, you should learn to use it a little better. Tell it to not use so much fluff text or such a rigid structure. Make edits afterwards. And most important of all, make sure itās actually providing good info.
Does forgejo really have an integrated CI/CD? I see this article, but it says it was put in beta, and no real notes after that. Although, it does look like the forgejo runner is a fork of https://github.com/nektos/act, which is a tool designed to be compatible with Github Actions, so that looks promising.
Why Argo better than flux? The only real difference I know about is that argo has a web GUI built in, whereas flux does not.
Oh I could easily be wrong about forgo having integrated ci/cd already. Itās the only tool I mentioned shove that I have never used before. Iām not a good source on this one.
But I have used both flux and argo quite a lot. Iāll admit that it flux implementation was bad, but it was just a bad experience for everyone using it with me. It was a memory hog and often created. Very few people understood how to use it correctly. When there were errors with e.g. a helm template, you just had to go looking for issues and read through the log. It moved git tags around so you donāt get a history of what flux was doing. I could probably remember more issues if I tried.
But none of that was a problem with Argo. We just started using it successfully on day 1. Plus its UI is fantastic and a huge advantage. Itās easy to navigate, spot issues, troubleshoot, etc. It also exposes users to resources they unknowingly create because Argo displays owned resources. This part really helped people understand what was going on in k8s. Oh and argo is very extensible. Maybe flux is too but I havenāt tried.
Did you use flux 1, or flux 2?
Flux 2 is a complete rewrite, and is basically a different app.
I had to look up the releases for this one š. It must have been v1. I last used flux maybe 2+ years ago. That predates flux v2.
Have you used v2? If so, what do you think about it?
Personally, I am loving flux right now. Iām using it to set up my homelab right now, while I learn kubernetes.
I chose flux because it seemed lighter, without a web ui or any extra components I may not want. Using flux feels like getting the declarativity that nixos promised but couldnāt really deliver on.
Also, I did note on another post, that Forgejo, who used to use imperative kubernetes for everything, is now switching to fluxcd.
Yes, Forgejo has integrated CI/CD. The Forgejo project itself uses it aswell, quite heavily. It isā¦ somewhat compatible with GitHub actions, but not completely, and it will never achieve feature parity. Itās an okay CI/CD system though, not worse than all the rest, and has the advantage over all others that its integration with Forgejo is tighter.