One of the fastest growing classes of applications running on VMware’s HCI offering (vSphere and vSAN) is next-gen applications, also known as cloud-native apps (CNA). These applications are typically containerized, comprise of many micro-services, they are distributed and often implement their own availability and fault-tolerance features. Running containers on top of virtual machines is not a controversial concept anymore. After all, many of the hyper-scalers that blazed the path use a virtualized infrastructure to run containerized apps (for example, Google has extensively documented that).
What may be surprising to some of the readers is that CNA are run on an enterprise storage platform like vSAN. First, there is a false perception that “Docker containers are for stateless applications.” Containers are (ideally) stateless and immutable. However, data does not disappear magically. Data live in named volumes that are accessible by containers. That data needs to be persisted. Their integrity and availability need to be ensured. They need to be backed up and protected from failures and disasters.
The majority of applications (or application components) that run in Docker containers are stateful as Datadog (a monitoring service for cloud-scale applications) reports:
A second perception is that CNA are deployed on local storage. Applications may take care of data redundancy and in some cases even offer features for remote replication to protect from disasters. That’s not always the case (e.g., MongoDB allows the use of the storage platform’s redundancy features, if the user prefers that). But even when redundancy features are not needed, a storage platform like vSAN offers a number of features that are highly desirable in enterprise environments. For example, data and metadata integrity with the use of checksums, encryption, or when necessary space efficiency through deduplication and/or compression. It also offers management benefits – it’s much easier to provision, configure, expand and shrink virtual volumes as opposed to physical disks.
Last but not least, most customers we talk to would rather not dedicate an entire physical cluster to a single application. Unlike the hyper-scalers, enterprise IT teams deal with multiple teams and a wide range of applications, both traditional and next-gen. So, a platform where you can run both, while each application receives the storage properties it needs, nothing more or less, is very desirable in those cases. And that’s exactly when vSAN with its fine-grained Storage Policy-Based Management (SPBM) shines in these use cases. You may use the same cluster to run a traditional transactional workload (e.g., MS SQL Server) which needs all the bells and whistles of SAN-like storage and a share-nothing application (e.g., Cassandra). The latter can use vSAN’s FTT=0 (no replication) policy in combination with compute-storage affinity. Moreover, vSphere Distributed Resource Scheduler (DRS) is aware of the policies of the different applications and does the right thing according to the application requirements. For example, it may migrate the SQL server VMs out of a host that goes in maintenance mode, but it makes no sense to do the same for a Cassandra data node.
Don’t get me wrong – deploying distributed, next-gen apps on any platform, including vSphere + vSAN, is not a walk in the park. To hear more about lessons learned and the patterns that are emerging from what our customers do, join the session by Cormac Hogan and myself at VMworld this year: https://my.vmworld.com/widget/vmware/vmworld18us/uscatalog?search=HCI1338BU
In that session, we will also outline the work that is going on in VMware to make vSphere + vSAN an even better platform for cloud-native workloads going forward. We discuss how we embrace Kubernetes as the orchestration tool for CNA, through Pivotal Container Service (PKS), and how vSphere (and vSAN) are evolving to support natively Kubernetes abstractions (clusters, abstractions, etc). vSAN is also evolving to support a range of different storage protocols including file and object storage. Our vision is to ultimately offer developers and devOps teams easy out-of-the-box storage and data features comparable to what they get on public clouds.
For more details, join us at VMworld, on Wednesday 8/29, 11am – 12pm.
You may be also interested in the following two related sessions:
A technical deep dive on vSAN and cloud-native apps: https://my.vmworld.com/widget/vmware/vmworld18us/uscatalog?search=HCI1813BU
The benefits of running Kubernetes on vSphere: https://my.vmworld.com/widget/vmware/vmworld18us/uscatalog?search=cna1553bu
Looking forward to seeing you at VMworld!