I know what you’re thinking, clickbait title right? Perhaps, but I want to get something off my chest. Docker pisses me off. Why? It’s not the technology but more of what it represents in the developer community.

Let me tell you young grasshoppers a story about a place I worked at not too long ago.

I worked at a very large media corporation, one of the largest in Australia. We built websites for some very well known brands and in general, had a generous IT related budget, which most of the time was spent on writing software, until one day, a little brown stone came along touting the benefits of docker and scale out. I’ll get to that bit in a second.

We had our tools and our build process cut out for us. It wasn’t elegant by modern standards, but elegant by the standards we had about 3 years ago. Deploying a website involved using a Jenkins service hosted in AWS which would kick off our builds, execute a few PowerShell scripts and deploy to the IIS Web servers. Simple right? Well apparently one person (who happened to be in charge) thought that we needed to shake things up and make shit more complex and get with the times and introduce Docker, because, well, that’s just what you did in 2018! Forget the “why”, that wasn’t important.

The main argument (let’s call him Dexter) had was that Docker allows us to scale out quickly to respond to load and let us containerize our apps so that we don’t get any dependency conflicts, and the process we had now was did not meet our growing demand.

So here’s where our young whippersnapper got it wrong. There was no prior research suggesting we had problems to begin with nor any indication that we needed to scale out at break neck speed. No damn research or data to backup the decision.

You see, scaling out a Windows or Linux VM is slow, I get that, but when you have a good idea of the traffic you’re expecting and you plan ahead of time, scale out isn’t a problem. Just ask the guys at Stackoverflow who serve half a billing requests a month. How the hell do you think people scaled out before Docker came along? It’s not a new problem. I’ve worked for over a decade in eCommerce, and the companies I worked for would usually spin up an additional VM or two before expected spikes such as Christmas or Easter sales. After the sales, the VM’s were torn down. And there you have it, there’s no need for Docker to scale out.

So the other argument people bring up is dependency conflicts. I can tell you from, based on my own experience, I’ve never had to deal with this problem. The companies I’ve worked for have always had a VM dedicated to doing one thing be it a webserver, database server or some other application. Not every situation is the same, I get that, but it comes down to the problem at hand right? Perhaps docker is a good option in a scenario like that, I don’t know.

I’m writing this because we had some very smart people working at this particular company and it took two developers two months to get Docker in place and in the end, it turns out that the major bottleneck in the system was our database server. In other words, we could have spun up a million Docker instances, it wouldn’t have fixed our performance problems anyway. Considering these developers were contractors, it would have cost the company upwards of $15,000 for this endeavour. And for what?

Please, don’t be like Dexter and go to Dockercon, have marketing shit rammed down your throat and then come to work the next day ready to “Dockerize” everything.

These companies take advantage of developers like us who love technology and shiny new things. We need to be on guard and really question the choices we make because they are costly ones.

If you want to use Docker, or anything else for that matter, show me why it is and isn’t a good idea. Every technology has a list of pros and cons and they need to be presented side by side and be well thought out.

Peace.