Cloud Native Applications Software-Defined Storage vSAN

Stateful Containers on vSphere with the Orchestrator of your choice – Docker Swarm or Google Kubernetes

If you analyze the list of most pulled images on Docker Hub, images for running data intensive workloads in containers are among the most used of the top 10-15 images. Mongo, MySQL, Redis, Postgres, etc. each have over 10 million pulls and this tells a story by itself. Additionally, containers do not meet the requirements for effortlessly running data intensive applications and persisting state. Containers lack security, data integrity, data protection, etc. all qualities which are currently available in the vSphere eco-system.

 

 

Picture1

 

Data intensive applications are among the top 10-15 most pulled images on Docker Hub (image from Docker Hub)

It is this very hurdle .i.e. effortlessly running stateful applications with containers, that the Storage and Availability Business Unit at VMware have been working to solve and solve we have. The formula that we have used is simple. It is:

 

Container Scheduler (K8S | Swarm) + vSphere Storage Stateful Apps!

 

We want to empower an IT Administrator to provide software defined storage to their developers to run stateful, data intensive applications in containers on their preferred platform.

 

We have created two persistent volume offerings, one for Docker and one for Kubernetes, which run both on vSphere as well as Photon platform. By using container storage carved out of the same VM storage (I.e. running VMs and containers side-by-side) you get the benefit of all the enterprise capabilities that are already available for VM storage for container storage as well. So you as a user get the best of both worlds.

 

Picture2

 

The first offering is the vSphere Docker Volume Service. With this offering, you can create highly available Docker Volumes by using either vSAN, NFS or VMFS as the underlying storage. Docker Volumes are backed by VMDK on underlying vSphere Storage also shared by VMs and an Administrator can define safeguards in terms of access control, quotas, read/write access, etc. across hosts, datastores and VMs from a single location. The vSphere Docker Volume Service supports data services such as cloning and snapshots which ensures that your data is resilient and available. Additionally, when using vSAN as the underlying storage layer, you can apply storage based policies such as host failures to tolerate, QoS, etc. thereby harnessing the power of hyper-converged infrastructure with containers on vSphere. To learn more you can visit our github page at https://vmware.github.io/docker-volume-vsphere/

The second offering that we have developed is the vSphere Cloud provider for Kubernetes. With this, we target 3 use cases to achieve data persistence:

  • Persistent Volumes where storage which has been provisioned by an Administrator
  • Persistent volume claims where a user requests for storage
  • Dynamic Provisioning where a cluster may provision a volume based on a persistent volume claim, which gets automatically bound to a suitable PersistentVolume

Like the vSphere Docker Volume Service, you can now achieve data-persistence with Kubernetes for any VMware supported storage format.

 

Some of the benefits of the vSphere Docker Volume Service and the vSphere Cloud Provider for Kubernetes  are:

  • Proven Persistent shared storage You can now use any VMware supported enterprise class storage backed by vSAN, VMFS and NFS.
  • Multitenancy, Security and Access Control: vSphere Admins can effortlessly set access permissions for shared storage across hosts, datastores and VMs from a single location (only supported by the vSphere Docker Volume Service)
  • Operational Consistency & Simplicity: Zero Configuration, zero credential management. It is easy to deploy and manage. (only supported by the vSphere Docker Volume Service)
  • Single HCL: This enables customers to use same vSphere Storage for VMs and Containers and allows them to run side-by-side on same vSphere infrastructure

Using these two offerings, our customers have successfully deployed various stateful applications such as Oracle, MySQL, Cassandra in production.

 

Over the next few weeks, we will be releasing a series of blogs about the added benefits and features of the vSphere Docker Volume Service and Kubernetes Cloud provider. We will also be at DockerCon in April. So stop by at Booth No G9 to learn more about what we have to offer.

If you are interested in contributing code or have any questions about the two offerings, you can reach us at

In the meantime, stay tuned for more!