Previously, we discussed the main reasons why Docker can be useful to the enterprise. So why aren’t all large companies using Docker already? A large part of the reason are the misconceptions surrounding Docker. We’ll touch on four of them in this post before we wrap up with some suggestions about how to move forward with Docker at the enterprise level.
Misconception 1: Docker is all-or-nothing
Some large companies view Docker as an all-or-nothing proposition, but that's just not true. As we saw with ADP, an overnight refactor simply isn't possible or practical.
Not only is it possible to dip your toes in the Docker pool before diving in headfirst, it's encouraged. The beauty of Docker is that its containers are designed to be lightweight and opinionated. Even a simple LAMP application can be migrated piecemeal. Isolate the API first, then the web service, and then maybe the CRM.
Misconception 2: Docker means no more IT
Despite its popularity, "DevOps" is still a pretty nebulous term. A lot of tools and methodologies imply that developers have to take over the role of IT within an organization, but that simply isn't the case.
It's true that tools like Docker can better facilitate developer responsibility across the entire stack and bring a development mindset to service management. But there is absolutely no reason why the IT and development teams have to be merged into one hybrid department.
Misconception 3: Docker requires the cloud
While there are a number of amazing cloud providers out there that give great Docker support, there's no rulebook that says you have to use Docker only in the cloud.
Due to the size and scope of their offerings, many enterprises manage a combination of bare-metal, virtualized, co-located, in-house, and cloud-based servers. Codeship is of course a big proponent of moving to the cloud, but Docker is platform-agnostic. The needs of your organization can come first. You can read more about how Docker helps with reliability, parity, and maintainability in your organization in Codeship’s “How Docker Streamlines Production Deployments” ebook.
Misconception 4: Docker is insecure
Security and privacy are major concerns with any service, especially in light of recent highly publicized denial-of-service attacks and security breaches. A common misconception about Docker is that it is inherently insecure. While this may have been true in the past, many of these concerns can be mitigated by taking the same due diligence one would take when securing bare-metal or virtualized servers.
Getting Started with Docker in the Enterprise
Despite the high-level benefits of containerization and rapid adoption within the tech industry, there is still a significant level of hesitancy to take advantage of containers in many enterprise-level organizations. This stance is understandable, as the cost of migrating to a new infrastructure is significantly higher for larger companies. But just because migration is difficult doesn't mean there are no steps that can be taken to test the waters before committing to a drastic overhaul.
So, let’s take a look at how to overcome the (perceived or actual) challenges associated with adopting Docker.
If we take a page out of ADP's book, getting started with Docker is as simple as isolating a service into its own container. This could be an API with few dependencies, an internal administrative interface, or even a simple content management system. Any feature that can be easily isolated from the rest of the application environment will do (although be wary of dependencies, as migrating even one virtual machine to a Docker container can present challenges).
The Codeship Resource Library has lots of good getting-started material available for free. You might be especially interested in the video “An Introduction to CI/CD With Docker Best-Practices” and the ebook “Continuous Integration and Delivery with Docker.”
Another big question mark when it comes to Docker is hosting. Many enterprise organizations do not take advantage of cloud-hosting services because a 1:1 migration of existing services could be significantly more expensive in the cloud. Docker helps mitigate this by isolating functionality into lightweight containers, which means that spinning up a new service using Docker is going to be significantly cheaper than spinning up an entire virtual server.
Because of Docker's growing popularity, there are a large number of hosts that specialize in container management. Google Cloud Platform, Amazon Web Services, and even Heroku and DigitalOcean have low-overhead Docker support that you can take advantage of. If you want to learn more about Docker hosting, you should check out Codeship’s “The Shortlist of Docker Hosting” ebook.
The bottom line: Migrating to Docker is much easier than you might think -- especially if you run Docker in the cloud. This is true for large enterprises as well as small companies.
The beauty of Docker and the cloud is that they are utterly flexible. You can migrate your entire infrastructure over time or a small part of it overnight. You can host Docker in-house, in the cloud, or manage a hybrid of both. You can use it across your entire stack, or simply streamline your unit test pipeline.
In the end, how you use Docker is significantly less important than simply using it. Its best use case varies from organization to organization, but one thing about Docker is for sure: It makes life easier.