“I feel like Docker Swarm needs a bit more work to really be usable in production out of the box”
Docker is revolutionizing IT — you’re probably hearing this phrase quite often. Still, these questions linger: If we were to look beyond the hype, what’s so disruptive about Docker technology? What are the differences between Docker and a virtual machine? What is hype and where does the real added value lie? We talked with Nick Janetakis about all this and more.
Docker manages to insert itself into all our conversations — why? Because it is extremely helpful and everyone loves it. There’s a lot going on in the Docker world (for example, the Docker platform and Moby Project are now integrating support for Kubernetes) but this is not why we’re doing this interview series with Docker Captains.
Don’t miss our Docker Captains interview series
- “Docker doesn’t want to be replaced as the container runtime of choice”
- Docker vs. VM: What’s the difference?
- Solving Docker confusions one by one — Docker Captains share their tricks
- “It is crucial for Docker to be the industry-wide accepted standard”
- Docker Captains speak bluntly: “Containerd is basically the real engine behind Docker”
- “Making containers usable with nice tooling was the only thing missing — Docker provided that”
- “Data persistence is the most misunderstood element by Docker users”
We’d like to hear more about their love stories with Docker, their likes and dislikes, their battle scars and more. Without further ado, we’d like to introduce Nick Janetakis, Full Stack Developer and Docker Captain.
JAXenter: Can you tell us a little bit about your first contact with Docker? Was it love at first sight?
Nick Janetakis: I started with Docker in 2014 after spending a few years working with Virtual Machines and eventually raw Linux Containers (LXC).
I was looking for a way to quickly test Ansible playbooks, and also isolate my Rails / Flask projects in an easier way. It was definitely love at first sight. As soon as everything clicked I was like “Oh my God, why did it take so long for Docker to exist”.
JAXenter: Docker is revolutionizing IT — that is what we read and hear very often. Do you think this is true? If we were to look beyond the hype, what’s so disruptive about Docker technology?
Nick Janetakis: I’m usually unaffected by hype because deep down I just care about results. A question I always ask myself is “can this new technology really make my life better as a developer or sysadmin?” If the answer is yes, then I’ll give any new technology a fair shot.
I do think Docker lives up to its hype. I wouldn’t be using it if I wasn’t thrilled with what it lets me do.
The biggest advantage I see to Docker is how it empowers developers. When you don’t need to worry about how to install something, it really opens the door to let you pick whatever technology fits best.
Not only that but you see the wins right away (which is really important). For example, you don’t need to mess around with trying to isolate your projects using various programming language version managers. You can just isolate them with Docker instead.
JAXenter: How is Docker different from a normal virtual machine?
Nick Janetakis: A Dockerized application is just a process that runs on your system. It doesn’t require running a Hypervisor (such as VMWare or VirtualBox), which means there’s no guest operating system to lug around.
I do think there are reasons to use Virtual Machines nowadays, but they solve a different set of problems than Docker.
You can use Docker to isolate individual applications and use Virtual Machines to isolate entire systems. They are operating at different levels of abstraction.
JAXenter: How do you use Docker in your daily work?
Nick Janetakis: I use Docker in development for all of my web applications which are mostly written in Ruby on Rails and Flask. I also use Docker in production for a number of projects. These are systems ranging from a single host deploy, to larger systems that are scaled and load balanced across multiple hosts.
JAXenter: What issues do you experience when working with Docker? What are the current challenges?
Nick Janetakis: I personally feel like Docker Swarm (the tool Docker created to help manage a cluster of services) needs a bit more work to really be usable in production out of the box. I’ve hit too many weird little bugs that caused downtime on some of my projects and it still requires quite a bit of effort to get all of the components of a real-world deploy working seamlessly with Swarm.
JAXenter: Talking about the evolution of the Docker ecosystem: How do you comment on Docker’s decision to donate containerd runtime to CNCF?
Nick Janetakis: To be honest, I don’t really follow this aspect of Docker. I consider myself to be more of a real-world user of the Docker toolset more so than someone who hacks away at the inner workings of it.
But with that said, I do think the OCI is a promising idea and Docker’s movement towards breaking things up with the Moby project is going to offer advantages for people at every end of the spectrum. That includes the main Docker development team, Docker end users (like you and me) and folks looking to build alternative container based tools.
JAXenter: Is there a special feature you would like to see in one of the next Docker releases?
Nick Janetakis: Not so much a special feature, but I’d like to see all hands on deck to make Swarm the best clustering toolset available.
JAXenter: Could you share one of your favorite tips when using Docker?
Nick Janetakis: Don’t be afraid of using Docker. Using Docker doesn’t mean you need to go all-in with every single high scalability buzz word you can think of. Docker isn’t about deploying a multi-data center load balanced cluster of services with green/blue deploys that allow for zero down deploys with seamless continuous integration and delivery.
Start small by using Docker in development, and try deploying it to a single server. There are massive advantages to using Docker at all levels of skill and scale.