Howdy. It’s been a few days and a few exams (fuck topography and limits over multiple variables, seriously), and I’ve finally perfected my GitOps and transcended sanity to become one with Senior Devops Engineer (editors note: I am not actually a senior engineer. this is a bit of an obscure joke). I caved and set up Gitea, and frankly I don’t regret my decisions – it’s like I have my own github now. Setting up the runner in Kubernetes and getting docker-in-docker to work was a special hell, but I won’t delve into the details. Suffice to say I am now convinced that DevOps is an administrative job, in that it involves constantly cleaning up after terrible decisions made by other developers (YAML? Seriously?).
My CI/CD toolchains at the moment just build BusyBox images that serve with busybox’s builtin webserver. The images are tiny and build within a few seconds even on my awful Kubernetes act_runner, so I’m happy. I have yet to set up webhooks on Keel, so it still polls my registry every 1 minute for updates, but it doesn’t seem to be producing any issues at the moment, so I’ll probably just leave it for the time being: the overall result is that I can, within two minutes of git push
ing to my Gitea repositories, see changes reflected in any of the sites I manage. My friends can, granted accounts on the Gitea server, make changes also to those websites, and I can choose what they can change. When I finally get more hardware, all the apps I have deployed can schedule onto the new nodes opaquely – I won’t even notice anything changed. Hopefully.
And that leads me to the horrible realization that, for the first time in a few weeks, I actually have time to fuck around with my server. The power of containerization and version-controlled dockerfiles means I can pretty much instantly rollback any changes I make that break stuff, and this includes changes to the infrastructure. Which means I can set up a Node.JS project with React and SASS and Next.JS and whatever other bullshit people are fawning over nowadays, deploy it, and then revert back to something sane if I feel like it.
So I’m learning React.
Going from Sitix-templated HTML on a Debian static fileserver to this massive buzzword salad has given me a bit of perspective on how modern development Works ™. It seems like my entire industry has pivoted to a mindset where we don’t want to have to actually think about what we’re doing: I have to rotate my LVM keys to stop a sleepwalking version of me from deploying pods to the cluster, and my trained monkeys do most of the Helm stuff. There is no thought involved here. On the old stack, I had to be constantly aware of conflicts and versions and stuff: any change to the server could potentially open a security hole that compromised my entire ecosystem, or just straight-up break the whole thing. Old software had to be removed carefully and expediently lest it break something new or consume too many resources. Everything involving the server had to be thoughtful and careful. This k3s stack is… not like that. Mistakes can be erased as quickly as kubectl delete namespace
, and software dependency conflicts simply don’t exist. Packaging and version management is done for me, by the computer. And this is certainly better! I can collaborate with other people on websites I’m hosting, I can spin workspaces for, say, React.JS without having to manage Node across the entire server, etc. I don’t actually have to think, and it turns out that thinking was bad.
I don’t have much of a point. Ease is not always a bad thing, and I think Kubernetes and React and Rust and shit probably really are The Way, and regardless I’m happy to be able to put them on my resumé.
Peace out, and expect lots of whining about the entire fucking JavaScript ecosystem. Last I used it, it was an absolute joke, and I was avoiding buzzwords.
Anyone who calls copy/pasting ChatGPT snippets “development” should leave this field before I visit upon them the divine destruction of a million corrupted helm charts.