Portworx announced this week that is working with Amazon Web Services (AWS) to enable deployment of stateful applications based on containers running on Kubernetes clusters hosted on the Amazon Elastic Container Service for Kubernetes (EKS). AWS announced general availability of EKS this week.
Michael Ferranti, vice president of product marketing for Portworx, says availability of Kubernetes in the largest public cloud will spur development of stateful applications. Portworx already makes its storage software for containers available on AWS. But Kubernetes is being deployed in on-premises environment as well, and IT organizations want to be able to deploy stateful applications on both on-premises and public clouds capable of supporting Kubernetes, he says. Portworx enables that flexibility so IT organizations aren’t locked into the software-defined storage service that AWS provides underneath its cloud services.
Ferranti says other EKS capabilities that will prove relevant to stateful applications include dynamic provisioning, high availability (HA) across cloud zones, application consistent snapshots and support for encryption.
Kubernetes pods running on Amazon EKS clusters can only fail over within a single availability zone (AZ), even if the EKS cluster itself spans AZs because AWS Elastic Block Store (EBS) is only available within a single zone. Every persistent volume created using PX-Enterprise is synchronously replicated across multiple availability zones, ensuring that if a stateful pod or host is lost, Kubernetes can reschedule it to run on any other host in the cluster or in another availability zone.
Portworx also enables auto-scaling groups without data loss. In addition, it manages the dynamic creation of volumes, so if a pod is rescheduled after a host failure, the pre-existing volume will be reused. If a database pod goes down, Kubernetes can reschedule the pod to another host in the cluster where Portworx has placed an up-to-date replica.
Finally, Portworx provides support for application-aware snapshots. Kubernetes administrators can define groups of volumes that constitute their application state and then consistently capture snapshots directly via kubectl.
In general, Ferranti says Portworx sees customers splitting deployments 50-50 between on-premises environments and public cloud. That’s not because organizations want to be able to dynamically move workloads in and out of the cloud; rather, IT leaders want to be able to take advantage of different clouds based on performance and cost. Achieving that goal means being careful not to get locked into proprietary interfaces on any one cloud or on-premises environment. That requirement will push IT organizations toward adopting software-defined storage software across what is becoming a highly distributed enterprise, says Ferranti.
It’s still early days when it comes to deploying stateful applications based on containers in production environments. But as organizations look to apply all the benefits of using containers to speed application development, it’s only a matter of time before stateful applications start to show up alongside stateless applications that already make extensive use of containers.
The challenge with stateful applications, of course, is mastering all the forms for persistent storage they will need to access across a distributed enterprise.