As others have pointed out it is relatively easy to deploy small k3s clusters on Hetzner Cloud.
I can confirm that. I've been running a few servers with them and my experience is that the older ones had a failure every 2-3 years. Usually it was a disk, sometimes the power supply. Once 2 of 3 disks failed but I managed to rebuild the array (it was the HDD era so it took several hours), no data needed to be restored from backup.
But since 2018 I had no failures at all. And I'm happy to see their ecosystem grow.
Jeez really? We have like, binaries deployed to machines over here.
Realistically I wish someone would just write an orchestrator that runs Go processes and nginx and glues it all together.
Not quite what you're asking for but you can get close, on bare metal, with:
- ssh to set up a systemd service, scp to deploy your binary, then ssh again to restart your service
- dokku (containers are optional) with its cli
For the first option, once you've set up nginx on the server you can easily automate the addition of a new systemd service for a new app with a simple shell script. That done, it is a matter of less than a minute to add a new app and even quicker to update and restart an existing one.
For the second option, it is installed with a single bash command and supports Heroku build packs which means for many systems there's virtually (or exactly) no config needed. Just run the cli from within your app folder. If you do want containers they are automatically found and deployed too.
I've done most deployment methods from the simplest (above) through to complete Terraform builds, and once they are automated all that matters is that the method you choose supports your needs. Go for the simplest option that does that.
"Marketing" as you said, made this concept of "container", but I think using the words "process" and "namespaces" is still ok.
I'm not saying "marketing" as to say it was coined by non technical people, but rather that it's a way to "sell" the feature. Like you go see your manager and say "I'm going to containerize the application" vs saying "I'm going to add some isolation settings to the process"
It may not be fatal to your business; it's not going to be a top 3 reason you succeed or fail! But it does make a difference.
To stay in your metaphor, moving faster is not a guarantee to arrive at your target earlier. As long as everything works fine, using k8s is great. When you have to dig deep to solve a problem, a stack with less layers might be a huge advantage.
You can ask the cloud to deploy a container to Kubernetes. You can rent a VM with Hetzner. You can rent rack space in a data center. You can build your own data center. You can build your own server hardware.
Depending on the scale you operate, you'll draw the line somewhere where it makes sense to you (which may change over time).
Dev teams will still operate best when they can deploy containers to Kubernetes and without having to design their own server hardware. You now need to build abstractions in house. Maybe you can sell these to other people? Congratulations you are now a cloud provider.