Over a million developers have joined DZone.

Why Docker is Not Yet Widely Successful in Production

A peek into how Shopify deploys Docker in production, and why some bottlenecks are keeping other companies from succeeding with containers.

· DevOps Zone

Discover how to optimize your DevOps workflows with our cloud-based automated testing infrastructure, brought to you in partnership with Sauce Labs

There will always be cynicism around new technology or methods, but this article by Simon Eskildon really, clearly articulates some of the production issues surrounding Docker. It's a great read, and a lot of his observations come from his experience at Shopify, which runs its core platform on Docker containers at scale. He goes in depth on several issues, including:

  • Image building: Namely, the speed to build them just isn't there for large applications, and Dockerfiles cannot yet manage complexity the way tools like Chef or Puppet can to make it easier. However, he does predict that containers will render those tools ineffective in the next decade or so. Since Docker can't do this, Shopify build their own system from scratch using the Docker API.

  • Garbage collection: No matter what you do, right now you need to write your own garbage collectors. Thankfully, Spotify just open sourced theirs. 

  • Iteration speed and state of core: As of 1.7, Docker has added an experimental changes feature to let users pull features from production and change them at any time. This is a great feature for those who are already using Docker because it lets them implement changes faster, but the barrier to entry for those looking to adopt containers is still high. Docker is looking to implement plugins in the near future to make this easier for new companies.

  • Logging: Support for logging drivers was added in 1.6, but those drivers have to be accepted into core. As a result, there is still no universal set of best practices for logging in Docker.

  • Filesystems: Docker relies on Copy-on-Write (CoW) from the filesystem to help with its ability to scale. However, the newness of CoW systems running on Linux poses some issues. Simon goes really in-depth here about Shopify's experiences with these issues.

  • "Edgy" kernal features: Piggybacking on the filesystem issue, Docker leverages several new kernal features that have not seen widespread adoption. Because of that, obscure bugs are likely to show up without teams having enough resources to fix them effectively.

With all the excitement around Docker, it's still important to note where improvements need to be made. This is a great take on the subject, which you can read here at Simon's blog. 

Download “The DevOps Journey - From Waterfall to Continuous Delivery” to learn learn about the importance of integrating automated testing into the DevOps workflow, brought to you in partnership with Sauce Labs.

Topics:
devops ,docker ,production

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

SEE AN EXAMPLE
Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.
Subscribe

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}