pixel - Fotolia
You may be using Docker to deploy applications, but there is more you can do with Docker. You can Dockerize your entire organizational culture. Really!
To be clear, I'm not suggesting that you somehow put your DevOps engineers inside Docker containers or build an app container image of your business. My point is that you can use Dockerization as a metaphor for improving your business processes and culture.
The following are specific ways in which Docker can serve as a guide for best practices within a DevOps organization.
Be like an app container image: Consistent and repeatable
Part of Docker's appeal is that it makes application deployment more consistent. A Dockerized application runs the same whether it's hosted on Ubuntu, CentOS or the homebrew Linux distro you created in college.
This is because Docker app container images are always the same, no matter where you deploy them. There are very few environment variables that affect the way an application is deployed when using a container image.
A well-run, DevOps-focused organization should also strive for consistency and repeatability. Your processes should deliver predictable results, no matter who is performing them. Your tools should be well-documented in order to help guarantee consistency. You should be able to deliver reliable services and products at any scale.
Don't live in isolation
Unlike virtual machines, Docker containers aren't totally isolated from each other and the host. A containerized application can access hardware directly on the host. (Virtual machines can sometimes do this if configured properly, but it is much harder.) Each container shares system resources with other containers. In short, no container is an island.
In the same way, each person and team in your organization should be able to coordinate with others whenever needed. They should have the skills, tools and mandate necessary to share tasks and collaborate.
I'm not saying you should expect your DevOps engineers to be able to take over the HR department in a pinch, of course. But your developers should be able to understand and perform ops work when necessary, and vice versa.
Centralize everything -- like a container image registry
Another benefit of Docker is that, when you use a container image registry, all of your applications are stored in a central repository.
Of course, there are ways to do this without using Docker. Docker didn't invent the idea of repositories. But Docker is the first major software platform that more or less requires registries.
Take the container hosting quiz
How well do you know your way around container host machines? Test your knowledge from the basics -- what's a host machine anyway? -- to how to set up a private network.
Just as a registry ensures that all of your applications are accessible from a central location, your organization's tools and resources should also be centralized. Centralization helps to improve security by giving you a smaller surface area to defend and helps ensures that everyone knows where everything is all the time.
Part of the beauty of Docker is that you can take an app container image and fire up a container in a few seconds. In contrast, virtual machines can take minutes to start.
In this way, Docker enables you to move fast. Want to launch a new app? Just pull the container image and start it. Or, if you need to add more instances of an existing app, you just spin up more containers based on the container image you already have.
A well-run organization should also strive for the ability to be able to launch new workflows or services quickly and increase capacity on a moment's notice. Doing so requires having a self-starting team that is empowered with the right tools to jump quickly on whichever task comes its way.
You can't actually run your organization on Docker. (It would be pretty cool if you could.) You can, however, use Docker to inspire organizational changes that will help you make the most of DevOps tools and practices.