Docker’s Golub said that the Docker ecosystem is growing at a phenomenal rate. “We’ve been amazed at how this ecosystem has taken off. People are using us at a speed we never anticipated. You can get a sense through the list of speakers. It’s a nice healthy mix of customers using Docker, as well as folks like Chef, Puppet, Salt and Ansible, Red Hat, and academics,” he said.
Indeed, many attendees were already experimenting with Docker, even before the 1.0 release. Josiah Kiehl, software engineer at Riot Games (the maker of League of Legends), said that his team has been testing its Docker deployments at larger and larger scale to prepare for full-scale use.
“Docker is a shift in paradigm from the way a lot of people do configuration management these days,” he said. “There’s been an oscillation from immutable to mutable infrastructure. A long time ago, the only way people did configuration management was they build an entire machine, then snapshotted it, then shipped that 5GB image out around the world. Then Chef, Puppet and CFEngine said that shipping images isn’t viable, so they introduced this concept of mutable infrastructure that can make small changes in the box without having to redeploy the whole image. That was the answer to the problem.
“Now, we’ve got little infrastructure, and any change in deployment can change things elsewhere. Docker says, ‘Let’s go back to the immutable deployment, and we don’t have to ship huge images.’ Everybody sort of accepted their fate by using Puppet and Chef, and then dealt with the complexity of mutable infrastructure. With Docker, you don’t have to do that.”
Matt Ray, who works on Chef at Opscode, said that Docker is not a replacement for Chef, however. Instead, it allows for both mutable and immutable infrastructure policies to exist at the same time.
“Our user base tends to be very aggressive on adopting bleeding-edge stuff, so obviously we needed to have good Docker support,” he said. “Every third or fourth talk here, people have said, ‘I kicked this off with Docker and then configured it with Chef.’
“We have a project called Chef Container. It bundles up your Chef managed infrastructure and pushes it into a Docker container. One of the keys to Chef Container is it has a Chef resource called Container Service that intercepts all of the calls to manage services that a virtual machine would do for itself. The Container Service hands it up to [the system]. As a result, the things you write for regular virtual machines, you can port to Docker with three lines of code.
“We can talk about moving stuff in and out of Docker, into the cloud, or onto your desktop. We’re trying to give people complete flexibility with how they treat this stuff, without treating Docker as virtualization. People are going to treat it as either lightweight virtual machines, or as service virtualization.”
Chef aims to support both use cases, Ray added.