Containers as a service (CaaS) is a cloud service that allows software developers to upload, organize, run, scale, manage and stop containers by using a provider's API calls or a web portal interface. As is the case with most cloud services, users pay only for the CaaS resources – such as compute instances, load balancing and scheduling capabilities -- that they use.
Public cloud providers including Google, Amazon Web Services (AWS), IBM, Rackspace and Joyent all have some type of CaaS offering. For example, AWS has its Amazon EC2 Container Service (ECS), a high-performance container management service for Docker containers on managed Amazon EC2 instances. Amazon ECS eliminates the need for users to have in-house container or cluster management resources. Google's Container Engine service offers similar cluster management and orchestration capabilities for Docker containers.
The key difference between providers' CaaS offerings is typically the container orchestration platform, which handles key tasks, such as container deployment, cluster management, scaling, reporting and lifecycle management. CaaS providers can use a variety of orchestration platforms, including Google Kubernetes, Docker Machine, Docker Swarm, Apache Mesos, fleet from CoreOS, and nova-docker for OpenStack users.
Within the spectrum of cloud computing services, CaaS falls somewhere between Infrastructure as a Service (IaaS) and Platform as a Service (PaaS). However, CaaS is most commonly positioned as a subset of IaaS. The basic resource for CaaS is a container, rather than a virtual machine (VM) or a bare metal hardware host system, which are traditionally used to support IaaS environments.