Docker has emerged from nowhere as a significant virtualization technology - as Battery Ventures Adrian Cockroft put it recently - while Docker wasnt on anyones roadmap for 2014, its on everyones roadmap for 2015.
Your dev team is likely already making use of Docker - primarily to set up development environments and share code.
Over the next eighteen months, your enterprise will need to adopt container technology at pace. And that will put pressure on you to assess the role containers can play and adapt your infrastructure to support them.
Thankfully, there are some things you can do right now to stay ahead of the curve. It starts with understanding what containers are and how they differ from VMs. Managing VMs and containers alongside each other may seem like a headache at first, but in most cases running both side by side is the best approach.
Putting containers on the path to production is a gradual process. But if you understand nothing else about containers, you need to understand these seven points.
One of the best ways to understand Docker is by comparing it with something IT professionals already understand well, like a VM. What do I mean by that? Alien is "Jaws in Space."
There was even a lengthy discussion on StackOverflow comparing the differences between Docker and a VM.
But Docker is not a VM, or really anything like a VM. Typically, VMs have higher levels of resource isolation than containers, at the cost of significant I/O overhead.
Typically, you should also try to restrict yourself to running one (or few) processes per container. Running each container with a single process allows you to bring containers in and out of existence easily and have easier separation of concerns, leading to higher uptime, simpler maintenance, and the ability to run rolling upgrades.
While this may seem needlessly complicated at first, it will force you to become more disciplined around decoupling your application components and managing them as microservices.
Much of todays IT infrastructure, from virtualization management and automation through to private clouds are built with the VM in mind. VMs excel at supporting traditional, vertically scaling applications that rely heavily on the OS.
However, todays web scale applications need to be able to scale horizontally to deal with web scale traffic, while working together as a single unit. Supporting this with a VM is hard because of the inherent configuration drift that could occur.
Solution: Leverage the strong security isolation, performance management of VMs alongside the fast provisioning and high density deployments of containers.
Although Docker is not yet widely used in production, the 1.5.0 release signals Docker's intent to help address the enterprise market. So you should also be thinking about what it would take to put Docker into production.
For example, maybe capacity management is a key facet of your current role. If thats the case, then take a few minutes to read about Dockers new Stats API, or Soundcloud's open source stats system, Prometheus.
Why? Because it will help you stay on top of current developments in the Docker ecosystem as they relate to you, and aid your thinking on what it would take to put Docker into production.
Preparing in this way, however you do it, will help you be prepared as Docker matures.
Rightly or wrongly, Docker is still predominantly a Linux technology, and extra configuration tends to be required to get Docker working on OSX and Windows.
Certain elements of Docker make use of Linux-only kernel features - which could be a problem as you scale out your use of Docker.
Nevertheless if youre using Windows, you should try experimenting with Docker on Boot2Docker. Ask yourself:
Ask yourself these questions and spend a few minutes getting a better understanding of how ready your existing environment is for Docker.
The most powerful tip in this entire list is here: read about Docker for at least thirty minutes every week. Docker is maturing at such as pace that to fully understand Docker, you have to read about it. A lot.
When you get into the habit of reading about Docker, your brain becomes attuned to it and starts to pick up new possibilities. This is particularly true if youre reading about Docker at the same time every week.
When you do come round to planning your implementation of Docker in production, it will benefit from the precision and clarity of thought that you will bring.
Talking to your stakeholders about how they could use Docker at the moment will help you understand where else you can apply it.
If you want to bring Docker into production, listen better.
If you work remotely, pick up the phone. If you work in an office, grab a chat over lunch. Start to build connections with your teams and youll soon start to reap the rewards.
Like it or not, your existing software vendors are probably heavily invested in VMs. VMs have been the dominant enterprise technology of the last decade, so its natural that an ecosystem has developed to support them.
With that kind of dominance often comes complacency. Ask them how they plan to adopt microservice based architecture and leverage containers for antifragile design.
Stay upbeat. Technologies like Docker arent put into production overnight.
Docker is still an emerging technology, but has the potential to revolutionize enterprise computing and reinvigorate tired business models.
Once the groundwork is in place, new opportunities will flow. With your business and IT aligned on technologies designed for exploration there is far more to gain than to lose.
What are you doing to smooth Dockers path to production?
Want to know more about what's happening the Docker ecosystem? Sign up to Docker News - our free, once weekly round up of Docker related news and articles.
No spam, we promise.