When you look at Docker adoption today, it’s almost hard to believe that it was only a little over three years ago that the open source project was launched. In that time, there have been more than 5.4 billion Docker downloads. We are proud to say that we were early adopters of Docker containers, using them first in a project in early 2013 as a multi-tenant solution. Since then we’ve been big advocates and our solutions have been featured twice at DockerCon, Docker’s annual user conference.
As heavy users of Docker's container technology, we can attest to the agility it provides our customers. (Additional reading on that can be found here.) So, we were definitely intrigued when we saw Docker’s announced acquisition of Infinit. As a small shop based in Paris, Infinit has been working on a distributed Docker persistent storage system that addresses one of Docker’s most frequently requested features. Indeed, we too have seen a need for distributed storage that works well with other, existing storage systems.
According to the company, Infinit is an open-source decentralized software-based storage platform for modern environments. It makes use of multiple nodes in a peer to peer model, is self-healing and fault tolerant. Infinit's decentralized storage platform transforms commodity servers into multiple flexible, scalable, and secure storage infrastructure tailored for your applications.
The Infinit platform allows for container migration and stateful application scaling, solving two Docker issues that we’ve had to solve with workarounds created outside of Docker. The first is containerizing stateful applications. As more and more organizations are looking to migrate to the cloud and reap the benefits of Docker for both stateless and stateful (including legacy) applications, being able to have a persistent data store for data collected by stateful applications is critical. In the past, we’ve had to work around this challenge with configurations outside of Docker.
Now with Infinit in conjunction with Docker, containers can access a replicated storage pool without the need for side storage. More troublesome with work arounds was that everything could die at any time and as a result we could lose data. In instances where that is not tolerable, especially in a clustered environment where a Docker container can be brought up in any machine in the cluster, we setup a distributed file system like NFS. In this regard, on our AWS projects, we’ve defaulted to using EFS while occasionally using S3FS. In an on-premise implementation, we set-up NFS or GlusterFS. However, today with Infinit and Docker, should a node crash, a newly instantiated container can still access the persistent data kept on a shared drive.
Second, this solution makes stateful applications more portable across infrastructure as its distributed storage engine is equally portable.This is important as more and more organizations are interested in moving stateful and legacy applications from on-premise to the cloud and in doing so want to reap the full benefits of cloud agility and flexibility that are especially achieved when combined with Docker containers. At the end of the day, this built-in support removes the requirement that we set-up distributed sharing between containers and removes the overhead of having yet another thing to run and share. In the process, Docker reduces config time and resource cost as this is now part of the ‘out of the box’ package.
For additional background on Dockerizing stateful applications, we recommend two presentations recently given at re:Invent featuring Aater Suleman, Flux7 CEO:
AWS re:Invent 2016: Deploying Scalable SAP Hybris Clusters using Docker and Getting Technically Inspired by Container Powered Migrations both of which discuss using Docker containers in the migration of SAP Hybris to AWS. If you are interested in learning how your organization can use containers with stateful applications, please reach out to us today.
Did you find the insights in this article helpful? Please sign up below to get regular news and analysis like this to your inbox.