One of the key attributes of cloud native systems is portability, which is possible only when the infrastructure is consistent across environments. Kubernetes is the lowest common denominator of infrastructure and also the foundation of the cloud native stack. We also learned in the previous article that Kubernetes is fast becoming the preferred control plane for scheduling and managing jobs in highly distributed environments.
While Kubernetes is an important element of the cloud native stack, developers and DevOps engineers need additional software to deploy, scale and manage modern applications. Platform vendors such as Red Hat and VMware offer end-to-end platforms based on Kubernetes. Public cloud vendors — including Amazon Web Services (AWS), Google Cloud Platform (GCP) and Microsoft Azure — offer Kubernetes-based managed services running on existing compute, storage, and network infrastructure.
Integrated container management platforms based on Kubernetes created a new category of application delivery model: Containers as a Service (CaaS). Similar to Platforms as a Service (PaaS), the container management platform can be deployed behind the firewall running in an enterprise data center, or consumed as a managed cloud service offering.
With CaaS as the common fabric across the data center and the public cloud, organizations can build hybrid applications that securely connect internal assets to the public cloud. CaaS is fast becoming an enabler of the hybrid cloud and multicloud deployments. Developers and operators can easily move applications across disparate environments.
Key Attributes of a Container Management Platform
Irrespective of where it is deployed, the container management platform has to meet the below requirements:
- Consistent platform: Developers and operators expect a consistent experience in public cloud and on-premises environments.
- DevOps processes: Integration with proven DevOps practices that ensure the rapid delivery of software.
- Security: Container management platforms must ensure the security of infrastructure and applications. They should detect vulnerabilities before deploying applications, while constantly monitoring the infrastructure for potential violations.
- Infrastructure reliability: The platform should support a service-level agreement (SLA)-driven service delivery model that delivers maximum uptime of both the infrastructure and platform.
- High availability of workloads: Apart from infrastructure, business applications deployed in the platform need to be highly available.
- Observability: The platform should provide insights into the infrastructure, resources and applications by capturing metrics, events, logs and traces from the entire stack and storing them in a centrally accessible location.
- Multitenancy and policy-driven management: Optionally, the container management platform has to provide strong isolation among the tenants utilizing the platform. Application deployment and management should be governed by well-defined policies.
The Big Picture of Container Management Platforms
The modern cloud native stack delivered as an integrated container management platform is composed of multiple building blocks. Some of these building blocks are available as open source projects, while others are commercial offerings sold by independent software vendors.
The bottom-most layer represents the physical infrastructure of the cluster in the form of compute, storage and network components. The platform adds various layers of abstraction, to optimally utilize the underlying physical infrastructure.
The rest of this article series will take a closer look at each of these layers, starting with the container-optimized operating system and container runtime.
Amazon Web Services, Red Hat and VMware are sponsors of The New Stack.