容器即服务,英文全称Container-as-a-Service,简写CaaS,它提供一种上传、运行、扩展以及管理应用程序容器的方法。这类服务全面提供执行这些功能的API或CLI,有些甚至提供GUI或Web门户。这里的容器可以是多种不同类型,包括Docker、LXD以及OpenVZ等等。听起来似乎跟PaaS差不了多少,但二者也有一些区别。下面我们从概念出发,看看二者之间的差异所在。
平台即服务(PaaS),以IaaS为基础构建而成。此外,也有一部分PaaS供应商也开始以CaaS作为服务基础。
从传统意义出发,PaaS解决的是应用程序的托管、打包与分发问题,强调零停机时间部署、自动规模伸缩与负载均衡功能。此外,它还可以集成多种开发人员工具以及运行状态与指标统计信息。PaaS的核心优势之一,在于开发人员可以轻松构建应用程序,而不再分神于应用程序运行所处的具体环境。像Cloud Foundry, Heroku以及Google App Engine等,都属于典型的PaaS供应商。
而CaaS提供一种轻松快捷的容器部署方式。它还能够保证全面完善的可移植性,确保容器能够在几乎任何位置上运行。CaaS还提供用于容器乃至容器集群的配置及管理功能。
从表面上看,CaaS与PaaS好像没什么不同。二者都管理着应用程序的部署与托管任务,而且基本功能也区别不大。PaaS的不少优势,都可以通过使用容器镜像加容器注册表的方式实现。此外,Kubernetes能够帮助用户滚动部署并实现负载均衡与自动规模伸缩。典型的CaaS解决方案包括Google Kubernetes Engine (GKE)与Azure Container Service。
要PaaS?还是要CaaS?
要PaaS?还是要CaaS?实际上,选择哪种解决方案要根据你的应用场景来决定。