Modern applications are distributed, microservices-based affairs that consist of multiple workloads operating across multiple fault domains. Kubernetes has become the de facto orchestrator for cloud-native applications with a rich and ever-growing ecosystem, but challenges remain. Among those, security, networking and analytics stand out at the top, based on user surveys.
Containers are a resource-efficient way to isolate workloads from one another while still providing them with the execution environment they require to operate. Unfortunately, containers are designed for non-persistent workloads and, as a result, often don't come with all the bells and whistles that virtual machines come with.