It’s 2:15pm on a Friday, and I’m sitting in the keynote hall at PyCon 2013 fidgeting through a succession of lightning talks that have very little relevance to my life. Topics like “Python code coverage techniques” (ho-hum) and “Controlling Christmas lights with Python” (yawn – I wonder if there’s anything new on Hacker News)…when Solomon Hykes takes the stage, unveils Docker, and the world shifts.
If you haven’t seen it yet, you should watch the video of Solomon’s Pycon The Future of Linux Containers talk that spurred a revolution. It’s short, but definitely worth the 5 minutes. Right at the 5 minute mark, you can hear the bell ring and then see the host force Solomon to end his talk – just when he had started talking about some really cool stuff. I heard several people, myself included, gasp “No!!!” right when Solomon got the hook. And no wonder, those five minutes were impressive. I swear I saw a bunch of attendees from Google racing out of the room after it was over, in search of pay phones, so they could alert the mothership.
That evening, “Hey – check this out” emails were circulating around our engineering team. Within a few weeks Solomon had generously handed us an early access release of the source.
A whole lot has transpired since that monumental keynote. For example there was the time I almost killed the Docker turtle.
Gordon’s Near Death Experience
The very first public Docker meetup, or Hack Day, was held at the Docker offices in the beginning of May 2013. The Docker HQ is amazing. It feels more like a tropical rainforest than an office, with vines and ferns in place of drab cubicle walls.
During the meetup I was munching on the provided popcorn, riveted to my seat, watching Solomon implement Buildpacks on Docker in real time with ten engineers looking over his shoulder. Suddenly I heard tiny coughing sounds, as if someone on the other side of the Golden Gate Bridge was trying to clear their throat.
I looked down and was astonished to see a turtle sitting on the table in front of me, clearly in some distress. Suddenly Solomon, Jerome, and a couple of other Docker employees rushed over exclaiming “You really shouldn’t feed him!” To my mortification, I realized a kernel of popcorn had spilled from my bag, which the turtle had snatched up and was attempting to swallow whole.
Fortunately the Docker folks were able to revive their turtle, using specialized turtle-specific Heimlich maneuvers. I was certainly relieved as was @gordonTheTurtle – who has since gone on to great fame and fortune and is one of the few turtles in the world with a twitter handle. I was able to shakily watch the rest of the meetup, sans popcorn.
Have You Heard of Docker?
I attend tons of cloud conferences and from that moment on I started paying more attention to conversations around me. I asked almost everyone I met, “Have you heard of Docker?” The most common response always had something to do with pants.
I remember the first time a lone attendee approached our booth and asked “What do you guys know about Docker?” I made note of this in my calendar: it was June 21 2013, at DevOpsDays Silicon Valley.
Fast forward a year, to June 2014, and it was becoming increasingly rare to attend a conference without dozens of Docker mentions. Any session given by the Docker folks was packed, standing room only, with people spilling out into the hallways.
And this is only increasing. For the last few months, every keynote I’ve attended has mentioned Docker. This includes keynotes at Velocity, Cloud Expo, DevOpsDays, Gluecon, Scale, and SUSEcon: each mentioned and often featured Docker. In fact, I challenge you to sit through an entire keynote at a cloud conference and *not* hear the word Docker.
The Trough
With all the buzz and hype, there’s bound to be a backlash. This is conveniently predicted by the Hype Cycle and we’re in it right now. First the Technology Trigger (the unveiling on March 15 2013), then the Peak of Inflated Expectations (the last two years of incredible uptake), invariably followed by the Trough of Disillusionment.
I’ve seen this trough first hand at a number of conferences and meetups, where there can be a surprising amount of open hostility towards Docker.
For example, I recently gave my “Containerization is Not Enough” talk at a devops-focused conference, where I mentioned Docker a few times. The presenter following me got up on stage, took the mic, and said “docker docker docker docker docker” (for best effect, think of this being clucked by a brood of chickens). Then he said “I promise I won’t talk about Docker”.
This is a mild example and there are many more. I’ve heard a handful of presenters vehemently condemn Docker; it’s easy to find blogs that echo this. Then there’s the recent Docker/Rocket controversy, which raised hackles on both sides of the camp.
I’m surprised at the degree of vehemence that’s often expressed. But as the Hype Cycle predicts, this is a natural reaction to any highly hyped phenomenon. And there are reasons behind some of the concerns.
The Concerns
Most of the negative comments seem to center around three general complaints:
Not New
First complaint: Docker is really nothing new. Containerization has been out forever (Solaris Zones, BSD Jails, lxc, cgroups). Google has been using containers for almost a decade and have been a key contributor to cgroups. So Docker didn’t actually come out with anything new, they just put a pretty wrapper around it, making it accessible to the masses.
Not Production Ready
The second complaint I hear is that Docker is not ready for primetime, specifically in the areas of security. For example, the Docker container runs as effective uid 0 (root), and while the Docker code is solid, a future vulnerability might grant host root access to the container. These and other concerns prompt Google to further isolate their containers using virtualization.
Not Enough
Another common sentiment I hear is that Docker (and more generally, containerization) is not enough. Meaning, if you’re delivering enterprise software, containers are awesome, but you need a whole lot more to be successful. This I fully agree with, as does my CEO (so it’s just as well I do too). I’ve observed that a common reaction to Docker is to think that it’s the golden egg that solves all software delivery problems. It’s not, but there are awesome tools available that incorporate Docker that do address this.
The Good News
I don’t intend to debate these concerns here, that’s a topic for another blog. While some of these are valid concerns, there is much work being done to address them. I mentioned earlier, it’s the degree of acrimony that’s often exhibited in these debates that seems way out of proportion to reality.
I guess this is just a natural result of the Hype Cycle: the higher the peak, the lower the trough. I will say that every last encounter I’ve had with each person on the Docker team has been highly professional, enlightening, and enjoyable. I wish I could work with a group of such talented, visionary, exciting, and fun-loving people. Oh wait, I already do!
I’m honored to have been witness to this amazing revolution that surely will have impact for years to come.
Happy Birthday Docker – what a ride it’s been! And you’re only two! Slope of enlightenment, here we come!
(This Sunday, March 15th, is Docker’s birthday)
*This article was conceived and inspired Kathy Thomas, ActiveState Product Marketing Manager and my awesome Partner in Crime in all things blog related.*
Follow @bcferrycoder
Title photo courtesy of Adi Goldstein on Unsplash.