The typical process followed by developers is to develop and test their application on their private or public cloud, and then deploy the application to all sites across cloud and edge. This implies that developers don’t want to rewrite the application when deploying across cloud and edge. Therefore they need a uniform application runtime & scheduling layer across multiple public clouds (AWS, Azure, GCP), private clouds (physical data center) and edge sites such as manufacturing factories, retail stores, restaurants, and charging stations.
VoltStack offers a uniform application runtime and scheduling layer that provides a consistent workflow to deploy distributed applications across heterogeneous sites with automatic verification and rollback. VoltStack provides a uniform application run-time and scheduling layer via a managed Kubernetes service on every cluster. Customers cannot consume the managed Kubernetes service directly as it is under the control of Distributed Application Management Service. They have to consume APIs from Distributed Application Management Service to manage their applications.
Managed Kubernetes Features
Key features of managed Kubernetes are highlighted next.
- Volterra software and customer applications run as Kubernetes workloads on every cluster. Volterra software runs in the ves-system namespace while customer applications run in one or more customer namespaces.
- VoltStack automatically places workloads on nodes within a cluster based on their resource requirements and other constraints.
- Application developers can specify resource requirements such as the amount of CPU and memory as well as limits. VoltStack service ensures the quality of service across multiple tenants and namespaces by evicting workloads if their consumption exceeds CPU and memory limits.
- Quality of service guarantees enables operators to mix critical and best-effort workloads to drive up utilization and save resources.
- Voltstack service provides self-healing capabilities for workloads. It restarts workloads that fail, replace and reschedule workloads when nodes die, kills unhealthy workloads and checks for readiness before making workload available to serve.
- For every application deployment, VoltStack service uses application readiness check and liveness check to determine if the deployment was successful. If the deployment was not successful, it automatically rolls back deployment change.
- Lastly, it allows customers to scale applications up and down using replicas
The following concepts are used by Managed Kubernetes features. Click on each one to learn more: