4 ms·
Docker is a bad solution to a real problem: Software engineering is still immature and we are not capable of maintaining stable interfaces/API. As a consequenc
by kakwa_ 8y ago
Docker is a bad solution to a real problem: Software engineering is still immature and we are not capable of maintaining stable interfaces/API.
As a consequence, it's a nightmare to update a system without some kind of regressions, it's also a nightmare to make sure environments are close enough to be representative of production.
Docker kind of solve this issue by bundling every dependencies (a bit like a big java .war file, a python virtualenv, ruby bundler, or even some LD_LIBRARY_PATH trickery or static compilation with C/C++).
But this approach is wrong. Very soon, you have 69 frameworks in production each in 42 versions at least, with 13 installation patterns, so you cannot really scan the containers, and you start giving up on maintaining this huge matrix.
And at one point, you get some old (CentOS 6) containers failing to boot anyway because you updated the underlying OS (the last bit you're able to manage), and it disabled something this old container was relying upon (like its libc needing the old and somewhat dangerous vsyscall).
- mping 8y agoStable APIs are not strictly an engineering problem, it's also a business problem. In fact, most of the engineering that occurs is due to business problems. Most of the instability around software engineering comes from business requirements - they pay engineers to do things faster/less errors/better. So we ditch the old version and build new ones. And the world goes round.
- stefanve 8y agoYeah that can become a real problems and even if it runs you still end up with a lot of security issues. But this is true for any old server and unmaintained code
- tannhaeuser 8y agoVery good point about Docker giving you a false idea about being to able to run old images on new OSs, which only real VMs can do. CentOS 6 isn't even old - it's used all over the place, and people hang on to it because it's systemd-free.