I agree very much about the accidental complexity of containers. Ignoring the runtime concerns (cgroups, namespaces, networking, etc.), the main problem seems to have been "we can't figure out how to get Python code to production", and the solution was "just ship a disk image of some developer's workstation to production". To do this, they created a new file format ("OCI image format", though not called that at the time), a new protocol for exchanging files between computers ("OCI distribution spec"), a new way to run executables on Linux ("OCI runtime spec"), and various proprietary versions of Make, with a caching mechanism that isn't aware of the actual dependencies that go into your final product. The result is a staggering level of complexity, all to work around the fact that nobody even bothered trying to add a build system to Python.
Like the author, I tend to write software in a language that produces a single statically linked binary, so I don't need any of this distribution stuff. I don't need layers, I don't need a Make-alike, I don't need a build cache, but I still have to go out of my way to wrap the generated binary and push it to a super special server. Imagine a world where we just skipped all of this, and your k8s manifest looks like:
containers:
- name: foo-app
image:
- architecture: amd64
os: linux
binary: https://github.com/whatever/download/foo-app/foo-app-1.0.0-linux-amd64
checksum: sha256@1234567890abcdef
- architecture: arm64
os: linux
binary: https://github.com/whatever/download/foo-app/foo-app-1.0.0-linux-arm64
checksum: sha256@abdcef1234567890
Meanwhile, if you don't want to orchestrate your deployment and just want to run your app: wget https://github.com/whatever/download/foo-app/foo-app-1.0.0-linux-amd64
chmod a+x foo-app-1.0.0-linux-amd64
./foo-app-1.0.0-linux-amd64
I dunno. I feel like, as an industry, we spent billions of dollars, founded brand new companies, created a new job title ("Devops", don't get me started), all so that we could avoid making Python output a single binary. I'm not sure that random chaos did the right thing, and you're right to be bitter about it.