This kind of article just adds to the Jonesing-for-shiny-things mentality that really doesn't do the engineering world any favours.
This kind of article just adds to the Jonesing-for-shiny-things mentality that really doesn't do the engineering world any favours.
I worked for an e-commerce, leader of their market, that used no Containers for the past 3 years.
CI produced agnostic packages, which were deployed with Ansible in any environment and auto-scalable using Golden AMIs, EBS Snapshots and AWS ASG. Almost the same concept, but way less complex.
We contemplated moving to ECS/EKS to stay "current" and to make test/development environments easier to create, but in the end, with a small team, it would add an unnecessary burden and "re-invent" the wheel on something that was working fine for the time being.
I like this, i wish more orgs would work like that.
Kubernetes feels mostly like a very opaque layer to abstract the underlying cloud vendor... Yet the cloud vendors are managing to get their lock-in back into kubernetes.
I've done this with Debian, it worked great.
And even if I didn't have those constraints, I'd still use containers in production because it just makes testing and deployment so much less of a headache.
This doesn't mean it's wrong to use containers to isolate various projects from each other and your main setup.
Edit: I highly recommend using lxd on Ubuntu. It works very well if you have one persistent container per project or large component in a project.
At my last company we implemented a couple of different services as just an AWS provided AMI with a small init script that would install docker if necessary, pull our container, and run it with the ports mounted properly. That worked great in ASGs and totally obviated the need to think about machine provisioning beyond 3 or 4 simple steps that everyone understood. I feel like Docker gets a bad rap _because_ of Kubernetes, when in fact Docker on its own solves a real problem in a pretty elegant way.
Access to network/disk/other IO, logging, init systems, configuration, etc are all different under Docker. There's more pieces of software which can crash (docker engine, etc). Not to mention potential performance issues and/or other subtle differences which may occasionally occur.
This isn't to say Docker has no value--it does, and we use it in production on a number of applications. But it is certainly more than just a package.
Kubernetes is getting adoption because it's helping with that. That's where the hard work and the value is.
Docker by itself is not notable, it's a fancy zip/rpm file.
No small site needs kubernetes/docker orchestration and that's fine.
I'm pretty sure a lot of companies use docker simply to ease deployment of internal apps.
Having said that, I agree 100% that for most small/medium sized companies kubernetes is an overkill which creates more problems than it solved.