Docker container software garnered a lot of attention in 2014 from tech giants and the enterprise alike. But, as container curiosity shifts to real-world implementation, the question becomes: Which applications benefit the most from Docker's technology?
In general, Docker containers benefit three application types:
- Applications that need to run on more than one cloud
- Applications that use microservices
- Applications that benefit from DevOps
Docker containers are the same, but different
Docker containers are not unlike other container technologies. However, Docker bundles key application components into a single container, which also makes these containers portable between different platforms and clouds. As a result, Docker is ideal for applications that need to run across various environments.
Previously, portability was a pain point for cloud-based platforms. But because Docker provides both the architecture and technology to enable portability, most major public cloud providers are on board. With Docker containers, the responsibility to provide portability shifts from cloud providers to developers.
Docker also benefits applications that use microservices, which are decomposed applications broken into smaller, purpose-built services. These services interact using common REST APIs. Developers using a fully encapsulated Docker container can create a more efficient distribution model for microservices-enabled applications.
But what exactly does that mean? Developers and architects can build applications that run on multiple platforms, as well as both produce and consume microservices. Developers can use this architecture to create distributed applications, where the application containers that produce and consume microservices can be both distributed and autonomous.
Finally, applications that benefit from DevOps processes typically benefit from Docker, as well. Docker allows developers to work inside the containers, while the operations team simultaneously works outside them.
Docker has its perks for developers
Developers also gain agility with Docker. There is an abstraction between the application and the underlying host platform. Therefore, developers can quickly build, change or deploy new and existing applications without worrying about required platform services. Docker applications run similarly in development, testing and production.
Docker's core advantage is encapsulating an entire application. Therefore, within DevOps, Docker eliminates the concern of missing dependencies or bugs due to differences in the underlying operating system and platform.
The IT world will continue to move towards Docker-based development for a number of reasons. However, Docker is not a panacea. Its container technology enables new ways of deploying and running applications. And while it offers many advantages, Docker containers are not ideal for every application. Before adopting the technology, it's crucial to have a clear understanding of which environments do -- and don't -- benefit from Docker.
About the author:
David "Dave" S. Linthicum is senior vice president of Cloud Technology Partners and an internationally recognized cloud industry expert and thought leader. He is the author or co-author of 13 books on computing, including the best-selling Enterprise Application Integration. Linthicum keynotes at many leading technology conferences on cloud computing, SOA, enterprise application integration and enterprise architecture.
His latest book is Cloud Computing and SOA Convergence in Your Enterprise: A Step-by-Step Guide. His industry experience includes tenures as chief technology officer and CEO of several successful software companies and upper-level management positions in Fortune 100 companies. In addition, he was an associate professor of computer science for eight years and continues to lecture at major technical colleges and universities, including the University of Virginia, Arizona State University and the University of Wisconsin.
Microsoft joins the growing Docker movement
What's behind all the AWS, Docker container hype?
Docker security concerns to remember
Do app containers assist with cloud management?
Docker brings private and public cloud compatibility with Azure