Is Docker just the first "killer app" in the container revolution?

Unless you're a developer in an organization that has already embraced the DevOps trend, you could be forgiven for not actually knowing what a "container" is or why it's the next big thing. If you follow tech news at all, though, you've probably already heard of Docker.

Just so everyone's caught up, a container in this context takes virtualization down to a smaller level. Where virtual servers allow for multiple instances of servers to exist as software on a single hardware platform, containers take virtualization down to the application level. The beauty of application containers is that they're hardware and platform agnostic—meaning a container instance can be launched on any platform that supports it.

The rise of Docker maps to DevOps

The rise of DevOps in general, combined with the rise of Docker specifically, has put containers on the map. Two years ago, containers were an obscure niche technology. Now, organizations that don't jump on the container bandwagon risk being left in the dust.

Docker launched in 2013, but it's already a household name and has been successful at both finding investors and building support from big names in tech, including Microsoft and IBM. Microsoft announced last October that the next version of Windows Server will include native Docker support. Parallels also added native support for Docker containers in its Parallels Cloud Server.

[ Also on Docker/DockerCon this week: Docker's Open Container Project to deliver the next wave of app dev innovation | Docker gives developers plenty to be happy about at DockerCon | How healthy is your Dockerized application? ]

Docker isn't the first company to create a platform around containers, but it's the first to take the concept mainstream. With DockerCon going on in San Francisco this week, and the show's size four times what it was just last year, it's easy to see that Docker has established itself as the de facto container platform.

Not the only container game in town

Docker is a juggernaut right now, but it's by no means the only player in the container arena, and that's probably a good thing for developers and organizations. I have nothing against Docker, and I'm not suggesting there's anything wrong with Docker as a container platform, but consumers love choice and competition drives innovation.

CoreOS has emerged as rival platform. A recent article in Business Insider draws a comparison between the Docker/CoreOS rivalry and the iOS/Android rivalry. "First, a company releases a product so popular that it changes the industry (like the iPhone). Then, there's a backlash, which results in a competing product billed as being more open than the original product (like Android). If that competing product finds its market, the two often find some kind of competitive equilibrium."

Just as Apple and Google used to be allies, Docker and CoreOS were once on the same team. But leaders of CoreOS felt that Docker was too controlling of the container market, so in a very public split, CoreOS set out to launch "appc."

The vision from CoreOS is that appc will emerge as a competing standard that is open and driven by the developer community rather than a product or platform managed by CoreOS directly. CoreOS does, however, offer its own container platform called Rocket, which is based off the standard.

CoreOS CEO Alex Polvi explains, "Rocket is the first implementation of an App Container, but we do not expect it to be the only one. An open specification allows other systems to do their own implementation of App Container without using Rocket at all. CoreOS fully supports and embraces alternative implementations."

In the meantime, Microsoft has also jumped into the container fray in more ways than one. In parallel with the announcement that Microsoft is working with Docker to integrate native support for Docker containers into the Azure cloud platform and the next Windows Server, Microsoft also revealed that it's working on its own Windows Container technology.

A post on the Azure Blog from Jason Zander, CVP of the Microsoft Azure team, explains, "The Windows Server container infrastructure allows for sharing, publishing and shipping of containers to anywhere the next wave of Windows Server is running. With this new technology millions of Windows developers familiar with technologies such as .NET, ASP.NET, PowerShell, and more will be able to leverage container technology. No longer will developers have to choose between the advantages of containers and using Windows Server technologies."

As awesome as container technologies are, they also come with some inherent security concerns. Earlier this year Microsoft raised the bar a little higher with the introduction of Hyper-V Containers. Hyper-V Containers provide developers with the same agility as other container technologies and have the added benefit of being completely isolated virtualized environments.

Mike Neil, general manager of Windows Server for Microsoft, says "Leveraging our deep virtualization experience, Microsoft will now offer containers with a new level of isolation previously reserved only for fully dedicated physical or virtual machines, while maintaining an agile and efficient experience with full Docker cross-platform integration."

No lid on container tech

"At CoreOS, we want the world to be successful with containers and improve how compute infrastructure is run to help companies get their applications to market faster," says Brandon Philips, CTO of CoreOS. "Container technology is important for delivering what we call Google-like-infrastructure-to-everyone-else, or GIFEE."

Philips adds, "We are in the early days of containers, and as they are adopted by more and more companies, it is important to build specifications to continue the momentum. If we are going to use the analogy of the successful international shipping container standard then we need a shared, well-designed specification for software containers too."

As the concept of containers evolves and continues to gather mainstream steam, there will probably be more players that enter the market. There may be some hiccups and growing pains, but eventually we should arrive at integrated, interchangeable container technologies that put the power and control in the hands of the developers.

Topics: App DevDevOps