Technical Debt - or - Why 'Its just a Demo' is Bullshit
I often get asked about why I am always so frustrated with the code that people tend to write. This discussion came up recently between some friends about why NetAuth is both in production with Void, and not 1.0 yet. For me, this has to do with the expectations of quality I subject most software to and my expectations for the risks an organization should be willing to put up with.
Nomad on Alpine
Recently at work I’ve been setting up a Nomad cluster to take over the production workload in our primary serving cluster. This process has taken several months at this point to prototype and develop, and along the way I’ve learned a lot about cluster operations with Nomad. Coming from the world of Google and Borg I had a pretty good handle on how cluster level schedulers work, but I’m still amazed at some of the things that are either dramatically more elegant in the HashiCorp stack, or less enthusiastically, things that make me want to pull my hair out.
I’ve just gotten back from the Apollo 11 movie, which I saw in IMAX. The film is a documentary that is all about Apollo 11 and steps you through in a very linear view the progress of the Apollo 11 mission. The story is told without narration or interviews, and features many segments that are shown in real time. Some of the things that I think are so incredible about this film are that it shows the people behind the mission.
Not in Prod - Or - Why I Won't Put a Compiler on a Webserver
I was recently asked by a few different people about why I have such strong feelings about Python in production on Void’s infrastructure. I’ve also been asked at work about why I’m unhappy with using Ansible even though it ticks all the boxes for being a pretty good host management tool. I figure its high time to look at why I care about languages in production. So at first this doesn’t seem like it should matter.
What Is Production Grade?
I recently decided to try the Caddy webserver project’s implementation of a webserver written in Golang. It had many interesting things going for it, including automagic certificate renewal via ACME and Let’s Encrypt; “plugins” written in a sane language; dramatically simplified configuration; and perhaps in one of the most boastful statements I’ve seen of any software recently, it claims to be “Production-Ready” (features page, right hand side). Given that it took me the better part of a day to get a functional Caddy role for Ansible, I really question this claim.