Deployment is important
October 21, 2024I just evaluated and installed software for providing comments and statistics for this blog. Here are my experiences of the deployment process:
-
A Python comment system. Uses one of the 17 outdated installer/packaging systems for Python (none of which works). Read a lot of docs and made sure I had a virtual env before I installed anything.
pip install
fails to compile one of its C dependencies on the target host because I don't have the Python development libraries installed and can't install packages. Tried a lot of different things to get it to work, including pyinstaller. Really wanted this to work. It didn't work, and I gave up. -
A node statistics system. Requires node, which clashed with the already-installed outdated node, until I finally figured this out and put the path to the node I downloaded into PATH, earlier than everything else. Requires
yarn
but I was able tonpm install
that no problem. Builds a massive amount of stuff on your deployment host, including compiling various C dependencies, and building some map data of some kind. Totally killed my VPS, taking my web site down. The next day my web hosting company killed all processes on my VPS, presumably due to excess memory usage. Finally got it working by building it locally and copying the built artifacts across. Is there some better way? Anyway, it's working now. -
A Go comments system. You just download a single EXE and run it. It worked immediately.
Deployment is important. There used to be a time when PHP beat all other comers hands-down because everyone used outdated web hosts (like I still do) who provided an Apache already set up for PHP. These days, languages that compile to an EXE are streets ahead.
Side note: of course I would have used Rust programs for both of these jobs if I could find mature ones that fit my needs, but I couldn't. The Rust deployment story is almost as good as Go's. (The "almost" is because Go programs tend not to depend on the C standard library, so there are even fewer things to go wrong.)