“Making containers usable with nice tooling was the only thing missing — Docker provided that”
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 John Zaccone 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”
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 Chanwit Kaewkasi,Assistant Professor at Nakhon Ratchasima, Thailand.
JAXenter: Can you tell us a little bit about your first contact with Docker? Was it love at first sight?
John Zaccone: I started using Docker to solve a problem I had as a developer in summer of 2015. I was building a new application and updating a legacy application with different dependencies (Java6 vs Java8). I was working with a client that was deploying to the cloud in production, but QA, DEV and other environments were created using private VM farms.
As a developer, whenever I requested a new environment for one of my applications I would have to wait a couple of days to receive them. Waiting around for VMs and not being able to deploy both of these (easily) on the same box was inefficient. I looked to Docker to solve my problem for deploying these applications with different dependencies in isolation on the same VM using containers. It also allowed me to use Spring Boot and deploy via an embedded Tomcat while using a war deployment with the legacy application and having these deployments defined and isolated within their own containers.
I think Docker and containers solves a lot of problems that we currently have such as “works on my machine” and being able to automate deploying applications at scale of many different types.
While this solved the immediate problem I had, I started to realize as we went on the other benefits of using Docker containers such as easily deploying applications in an “on-prem” environment to the “cloud” environment which had vastly different machines with different dependencies, etc.
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?
John Zaccone: I think Docker and containers solves a lot of problems that we currently have such as “works on my machine” and being able to automate deploying applications at scale of many different types. The central thing that makes all this stuff possible is containers. The only thing that was left to do was to make containers usable with some really nice tooling. Docker provided that, and they have done a really good job in making a very friendly developer user experience.
JAXenter: How is Docker different from a normal virtual machine?
John Zaccone: Containers allow you to encapsulate your application dependencies and allow that to be included as part of your application development.
Ask your self: Are you testing just your code? Or are you testing your entire application (code + everything your application depends on: libraries, runtime versions, etc)? We set up all these best practices for testing, automated validation etc, but it’s silly if we don’t consider those application dependencies as part of that.
JAXenter: How do you use Docker in your daily work?
John Zaccone: Right now I work at IBM as a developer advocate. I work with developers from other companies to help them improve their ability to push awesome business value to production. I focus on adopting DevOps automation, containers, and container orchestration as a big part of that process.
JAXenter: What issues do you experience when working with Docker? What are the current challenges?
John Zaccone: It’s a rapidly-changing technology, so it’s an effort to stay ahead of the curve. The ecosystem can be confusing for newcomers and the global messaging for Docker can sometimes be unclear. One thing I try to do as a Docker Captain is to make the message more clear and be able to explain some of the things that are hard to grasp for new folks.
JAXenter: Talking about the evolution of the Docker ecosystem: How do you comment on Docker’s decision to donate containerd runtime to CNCF?
John Zaccone: The ecosystem moves faster than any single company. If Docker wasn’t open and willing to give back to the community, they will find that they would become a siloed center of hype that dies after a few years. By trying to get the community involved, it allows the conversation to continue and evolve with drive from many parties in the industry. Contributing the containerd runtime is just one example of Docker’s principle of developing in the open.
The ecosystem can be confusing for newcomers and the global messaging for Docker can sometimes be unclear.
JAXenter: Is there a special feature you would like to see in one of the next Docker releases?
John Zaccone: Looking forward to the development of LinuxKit and how this affects the security of containerized applications that we deploy.
JAXenter: Could you share one of your favorite tips when using Docker?
John Zaccone: I organize a meetup where I interface with a lot of developers and operators who want to adopt Docker, but find that they either don’t have the time or can’t clearly define the business case for using Docker.
My advice to companies is (and this applies to all new technologies, not just Docker) to allow developers some freedom to explore new solutions. Docker is a technology where the benefits are not 100% realized until you get your hands on it and understand exactly how it will benefit you in your use case.