Containers themselves are meant to be stateless; they blink into existence with no knowledge of history. But most enterprise applications have grown up stateful; the application needs to know its place in the network, for instance, and if the application restarts, the new version needs to “remember” the state it was in.
Persistent storage is the key to restoring state. So, by acquiring Infinit’s technology for secure distributed storage, Docker can make it more reasonable to run stateful services in containers. Moreover, support of those older, stateful applications is crucial for Docker to capture an enterprise audience.
What’s interesting about the Infinit purchase was that Docker had other options, because other companies have been working to make containers support stateful services. Startup Portworx emerged earlier this year, targeting persistent storage. ClusterHQ was addressing the problem as early as 2014 with Flocker, its data volume orchestrator.
Container orchestration is starting to support stateful applications as well. Recently, CoreOS introduced what it calls Operators, application-specific agents that apply Kubernetes orchestration to containers. Operators should be able to support stateful applications, the company claims. And Kontena, developing container orchestration that competes with Kubernetes, claims it supports stateful applications.
Infinit will become an optional feature available to Docker users. Docker also plans to release the startup’s code in open source form sometime in 2017.