August 20, 2017

Containers are all the rage these days, but not every type of application lends itself to containers. In fact, most container applications in use today are stateless. In contrast, stateful applications, which typically require a database, are just now coming into their own. Couchbase, for example, recently announced version 4.5 of its namesake document database is now certified to run on Docker containers.

Ravi Mayuram, senior vice president of Products and Engineering for Couchbase, noted that, with the rise of microservices, it’s only a matter of time before more databases wind up being deployed via a container. In fact, a recent survey from Docker Inc. found that 42 percent of respondents have already deployed at least one database in a container.

Of course, a stateful application requires access to storage, and therein lies a fierce debate around a range of emerging technologies.

The first use of storage in creating a stateful application came about with the arrival of Flocker, an open-source data container manager from ClusterHQ that made it possible to hook up storage systems to container applications to provide access to the persistent storage needed to deploy a stateful application. As a container moved between clusters, Flocker made it possible for the underlying storage system to keep track of where that container was not physically located.

Mohit Bhatnager, vice president of Products, said most organizations underestimate the challenges associated with managing data at scale in container environments—especially when it comes to trying to move a stateful container. In fact, a recent survey of 205 IT professionals conducted by ClusterHQ found persistent storage to be the single-biggest challenged identified with deploying containers in a product environment.

More recently, however, EMC developed RackHD Machine Driver, a hardware-agnostic open-source project designed to connect Docker applications running on bare-metal servers to persistent forms of storage. Developed by the EMC {code} group with the Emerging Technologies Division of EMC, RackHD Machine Driver is now a core element of the Docker Volume Driver application programming interface (API), said Josh Bernstein, vice president of Technology for EMC {code}.

In the case of EMC, the API is being used to make its software-defined storage offering run on top of a Docker cluster. Bernstein noted EMC plans to launch similar open-source projects for other container-related technologies such as Mesos.

EMC is not the only vendor planning to make a persistent form of storage available on Docker. Red Hat has launched an implementation of Gluster that enables storage to deployed as a container on the same cluster as Docker containers. Joe Fitzgerald, vice president of Management for Red Hat, said the obvious implication of that approach is that I/O performance will be significantly better—not to mention less expensive—by eliminating the need for a separate cluster.

Meanwhile, Portworx has launched PX-Enterprise, which natively gives containers access to a set of virtual logical unit numbers (LUNs). Portworx CTO Goutham Rao said that, unlike a legacy file system trying to add support for containers, PX-Enterprise provides IT organizations with more granular control over data in a hyperconverged environment.

In a similar vein of thought, CoreOS is in the process of developing its own distributed storage system, dubbed Torus, to address persistent storage for both containers and virtual machines.

Of course, there’s another school of thought when it comes to containers and storage. Storage vendors such as Hedvig, ContainerX and Kaminario all are making the case for using APIs to make it possible to use the same distributed storage system to support both legacy applications and modern “cloud-native” applications built using containers and microservices. Kaminario CTO Shachar Fienblit said any approach to distributed storage needs to take into account the requirements of a multitude of existing legacy applications trying to access the same data.

Clearly, the debate over the best way to go about connecting stateful applications based on containers to storage systems is still in its infancy. But the one thing’s for certain: When it comes to deploying mission-critical applications using containers, IT organizations will be need access to persistent storage to run stateful applications. Without that capability, containers themselves never will evolve beyond being a more agile approach to developing lightweight disposable applications that ultimately won’t have the impact on the business that a only a truly stateful application can have.

Mike Vizard

Mike Vizard is a seasoned IT journalist with over 25 years of experience. He also contributed to IT Business Edge, Channel Insider, Baseline and a variety of other IT titles. Previously, Vizard was the editorial director for Ziff-Davis Enterprise as well as Editor-in-Chief for CRN and InfoWorld.