7 Ways Docker Containers Can Change Enterprise Apps
Docker is getting lots of buzz for its potential to improve application development and deployment – and deservedly so.
Docker has certainly gotten a lot of press of late. It is an open platform for distributed applications that allows developers and IT administrators to build, ship and run applications anywhere. This open source project is said to empower IT organizations to shrink application delivery from months to minutes, easily move workloads between data centers and the cloud and improve infrastructure efficiency by 50 percent or more.
"Organizations that are leveraging Dockerized distributed applications will find benefits such as infrastructure independence, differentiation and agility," said David Messina, vice president of marketing, Docker, who noted that Docker has been downloaded 200-plus million times and is used by tens of thousands of organizations, including marquee companies such as Baidu, BBC, eBay, Goldman Sachs, ING, Spotify and Yelp.
Let’s look at these benefits in more detail:
Faster Application Delivery
The best way to explain it is by looking at the corporate logo, which uses a shipping analogy. Prior to the invention of standard shipping containers, the business of shipping goods was a logistical nightmare. Breakage was commonplace and costs were high. Now, however, everything is shipped in large standardized containers which can be placed on ships, trains or trucks. Just watch a container port in operation. They move vast quantities of goods onto and off of ships at lightning speed.
Docker does the same thing for applications. It consists of the Docker Engine, a portable runtime and packaging tool, as well as the Docker Hub, a cloud service for sharing applications and automating workflows. This combination makes it possible to pack up apps and ship them out much faster by taking a lot of integration work out of the hands of the developer. By choosing a standard app container which can be plugged into supporting platforms, delivery is a lot faster and smoother.
More Distributed Apps
Docker appears to be disrupting the application development lifecycle by enabling distributed apps to be portable and more dynamic. These distributed applications are composed from multiple functional, interoperable components; each component is its own standalone, independent service with its own interface, technology stack, release cadence and product team.
"Distributed applications represent the next generation of application architectures and processes that are supporting businesses to reach the next level of innovation," said Messina. "This enables developers to focus on a smaller surface area of differentiated code that is vital to the business."
In the past, IT organizations had to figure out how to integrate apps with a host of server, storage, mobile, OS and other environments. This could turn into a labyrinth of possible permutations and led to frequent development goofs as the app would run on certain platforms but not others. Or the app only ran on version 2.6, not version 3.0 which just came out.
"Distributed applications are completely independent of underlying compute, network and storage infrastructure," Messina explained.
More Innovation Opportunity
Freed from the underlying infrastructure and the labor-intensive drudgery of tying the app into countless hardware and software variables, this new wave of applications can be developed faster. In other words, the developer is free to develop rather than spending the bulk of time solving what could best be described as plumbing issues.
"Docker allows these distributed applications to be innovated upon hundreds of times a day, in comparison to once in a few weeks or months," Messina said.
Insurance and financial giant ING, for example, has structured its development teams and its continuous delivery process around Docker. This enabled them to go from making a single change to an application once every nine months to being able to make changes hundreds of times a day if required.
Easier Proof of Concept for Apps
Greg Schulz, an analyst with Server and Storage IO Group, takes this a stage further by pointing out the implications for developers seeking to prove out the basic premise of their code.
"Developers can have simpler access to resources for testing and proof of concepts for their code without the complexity of setting up a virtual or physical server including its operating system and environment," Schulz said. "If a developer needs a medium for developing Java, then testing without having to wait for a virtual server, let alone a physical server, Docker can be a good fit."
Docker Wins Friends, Influences Software
Just like Apple's App Store took little time to become a juggernaut in terms of application availability, Docker appears to be rapidly gaining broad support. Already, over 13,000 apps are available on Docker Hub. The company manages and tracks changes and dependencies, making it easier for system admins to understand how the apps that developers build work.
How is it doing with enterprise software giants? Oracle is one of the IT behemoths that has thrown its weight behind Docker for its enterprise-grade Linux distribution and for MySQL. It is maintaining these two applications as dockerized content in Docker Hub.
Others incorporating Docker into their app strategies include VMware, Microsoft, IBM, Amazon and Red Hat. How well the company does in satisfying these partners and further building out its support base will determine whether Docker can become the next big thing in the same way that server virtualization took hold in the early days of VMware.
Within the enterprise application space, Netsuite has become a container fan of late.
"We are moving away from full virtualization for large-scale applications as it’s too inefficient," said Brian Chess, senior vice president of Infrastructure and Security at Netsuite. "We like the promise of containers like Docker for providing great manageability with low overhead."
Not Just Docker
As Chess notes, Docker isn't the only game in town. Rival DH2i is also making moves into the app containerization space. Whereas Docker addresses Linux environments, DH2i’s DxEnterprise container management software is for Microsoft Windows Server applications and workloads.
DxEnterprise "containerizes" Windows Server application instances, decoupling them and all associated data from their host OS and underlying physical infrastructure, said Don Boxley, co-founder and CEO, DH2i. Like Docker, DxEnterprise makes apps easier to provision, test, deploy and manage, he said.
He points out differences with Docker, such as providing native NTFS disk resources to the container. Further, he said that instead of focusing solely on the development side, DH2i is also aiming at solving operational management challenges.
"DxEnterprise offers management capabilities such as automation and orchestration, which drive higher efficiency and provide a self-healing environment to reduce risk," Boxley said. "For those running CRM, BI or ERP, for example, this can bring increased efficiency and effectiveness, as well as higher returns across their business."
As well as engendering enough support throughout the IT world, then, it looks like Docker will also have some competition to contend with in the containerization business.
Drew Robb is a freelance writer specializing in technology and engineering. Currently living in Florida, he is originally from Scotland, where he received a degree in geology and geography from the University of Strathclyde. He is the author of Server Disk Management in a Windows Environment (CRC Press).