Disagree. If I have a container with pho, I can run it in any hosting platform in any underlying architecture without needing to worry if my host has the right version underneath. That’s a huge win. I can run it on AWS, on digital ocean for $5/mo , on lambda, or GCR. Completely portable. And I can run the exact same setup at home.
wanted to echo your sentiments on portability with containers. sometimes simplicity is hidden in the tradeoff of what you get for doing the work — i.e. simplest way to do the most “stuff”.
like i was last working on a job orchestrator thing. and containers would have meant we could run jobs on azure/aws/do/wherever. writing one job container, a customer can have that job run almost wherever they want to.
containers added some complexity, but were the simplest way of getting that amount of “stuff”. the project stalled horrendously but that’s another matter.
but also important to remember that containers add a framework/dependency at quite a fundamental level.
there are maintenance costs. although i have personal containers from like 6 years ago that still run fine!
> remember that containers add a framework/dependency at quite a fundamental level
I don’t mind this fundamental dependency. If the only artefact you have is a container, and no source code, that’s no worse (arguably it’s better) than the “we only have the compiled binary of the production service from a decade ago, and no idea what’s installed on the machine”. That complexity lives somewhere, and if your application is tied to it (e.g. a specific python version) then it makes sense to have that part of your application. Containers have been bread and butter for a long time now, I don’t think they’re a super scary new thing that we should worry about disappearing off the face of the earth tomorrow (like the latest js framework)
> there are maintenance costs
Those maintenance costs exist with or without containers. Either you have a virtualenv or whatever, a container, or a global toolchain installed and you just ignore it. I’ve got containers that I wrote in 2019 that I built last week and they just worked out of the box, no faffing around with versions of anything. In my experience, the thing that’s most likely to fail or rot is external URLs that you grab the dependencies of the container from - which will happen with a shell script or virtualenv either