容器即服务(CaaS)平台使开发人员可以更轻松地部署Docker容器,并将其组装到应用程序中,而大多数情况下则需要Kubernetes来完成这项工作。
随着现代的容器化应用程序在组织中继续受到欢迎,主要供应商开始提供容器基础设施和管理的“即服务”只是一个时间问题。
根据Flexera公司最近发布的2020年云计算状态调查报告,全球企业对容器的使用正在稳步上升,其中65%的组织表示他们使用Docker容器,而58%的组织表示以某种方式使用Kubernetes编排系统。
在使用容器构建和维护应用程序时,缺乏资源和专业知识经常被认为是主要的挑战。因此,开发人员越来越多地转向容器即服务(CaaS)产品所提供的自动化技术,而全球三大主要云提供商无疑都在这方面处在领先地位。
容器即服务(CaaS)
通过容器即服务(CaaS),云计算供应商实质上可以提供托管的容器编排引擎(通常基于源自谷歌公司的很受欢迎的Kubernetes开源项目),以部署和运行容器、管理集群、自动化扩展和故障管理,并维护通用基础设施层,其中包括治理和安全性。
通常情况下,所有联网、负载平衡、监视、日志记录、身份验证、安全性、自动缩放和持续集成(CI)/持续交付(CD)功能都由容器即服务(CaaS)平台负责。
容器即服务(CaaS)使组织可以利用云计算基础设施的优势,同时帮助避免典型的平台即服务(PaaS)所带来的供应商锁定,例如AWSElasticBeanstalk、AzureAppService,或GoogleAppEngine,这是因为容器本身允许跨各种环境进行简单的迁移。
如果要使用容器,那么容器即服务(CaaS)与在基础设施即服务(IaaS)上运行之间的区别在于组织是否具有实施和管理Kubernetes(或其他容器编排)的资源和技能。还是将其交给云计算提供商来实现和管理。这个决定还可以决定组织的容器环境是否必须跨越多个云平台或内部部署环境。许多供应商提供的容器即服务(CaaS)平台既可以部署在内部部署数据中心,也可以部署在云平台中。
曾在德意志银行和英国广播公司(BBC)任职的开发人员RobIsenberg在其由O'Reilly出版的著作《面向Rails开发者的Docker》中指出:“用户既可以在基础设施层面管理事务并自行设置编排器,也可以使用一个容器平台来处理底层基础设施,并提供一个预装的编排器,供其部署和扩展容器。”
容器即服务(CaaS)的好处
在容器即服务(CaaS)上运行容器类似于在基础设施即服务(IaaS)上运行虚拟机:其主要优势在于部署速度和易用性,即付即用云模型的简单性以及上述不受供应商锁定的自由。
通过将容器基础设施留给云计算供应商,组织无需投资于自己的硬件,也无需构建和运行自己的Kubernetes集群(或其他容器编排系统),就可以开始运行。此外,通过容器化应用程序,组织可以更轻松地将应用程序迁移到不同的运营环境或供应商生态系统中,从而提供更大的灵活性和可扩展性选项。
所有这些都为提高成本效率提供了非常重要的机会,因为容器可以更好地根据需求进行水平扩展,允许组织只为他们使用的云计算资源付费。容器比虚拟机轻得多,这意味着它们的资源消耗较少,通常可以提高速度并降低成本。
仪器和日志记录的一致性带来了另一个好处,因为在容器中隔离单个服务可以通过流行的Sidecar部署模型实现更有效的日志聚合和集中监控。
根据Flexera公司发布的2020年云计算状态报告,34%的受访者指出,将传统应用程序迁移到容器中仍然是采用的一个重大障碍,即使在容器即服务(CaaS)上运行也是如此。迁移到容器通常需要将单一的应用程序分解为微服务,对于大型传统组织来说,这可能是一个重大的文化和技术转变,不应掉以轻心。
行业领先的容器即服务(CaaS)选项
大多数主要的云计算提供商都提供容器即服务(CaaS)产品,还有其他几家提供商希望参与其中。
云计算服务市场领导者AWS公司见证了其Kubernetes无弹性容器服务(ECS)和Elastic Kubernetes服务(EKS)的广泛采用。同样,根据Flexera公司的分析,Azure Kubernetes服务的采用率也显著提高,Google Kubernetes Engine(GKE)也是如此。
这三家云计算巨头现在都提供了无服务器的Kubernetes服务,其中包括Fargate上的AWSECS、GKE上的Google CloudRun和Azure容器实例。与EKS、AKS和GKE不同,这些服务消除了执行服务器管理任务的需要,是按需消费用例的理想选择。
现在,谷歌云平台的大部分容器管理功能都位于Anthos的保护伞下,该它可以跨内部基础设施和主要的公共云(现在是谷歌云平台和AWS,并正在提供Azure支持)管理基于容器的应用程序。Anthos结合了用于云计算工作负载的GKE、GKEOn-Prem和Anthos Config Management控制台,该控制台允许在混合和多云Kubernetes部署中进行集中管理、策略和安全性。
除了全球三个主要的云计算供应商之外,其中包括IBM/RedHat、VMware、SUSE/Rancher、Canonical、D2iQ(以前为Mesosphere)、Rackspace、Oracle、HPE、阿里巴巴、华为和腾讯在内的供应商都具有某种托管容器即服务(CaaS)选项的能力。许多这样的产品可以在内部部署数据中心或公共云上,或在两者中都进行部署。
哪种容器即服务(CaaS)比较好?
调查机构Gartner公司并未为容器即服务(CaaS)提供商设置魔力象限图,但在其分析师Wataru Katsurashima撰写的《公共云容器服务》报告中,该公司将谷歌公司的GKE确定为行业领先的托管Kubernetes选项。
调研机构Forrester公司分析师认为,AWS公司在2019年第三季度最新的公共云企业容器平台浪潮中处于领先地位,微软公司和谷歌公司紧随其后。值得注意的是,Forrester公司的调查报告只列出了7家供应商,并且侧重于公共云部署。
Forrester公司分析师Dave Bartoletti和Charlie Dai表示,AWS公司在部署选项、安全性和深度集成方面处于领先地位。凭借广泛的完全托管(和无服务器)Kubernetes消费选项,以及直接部署到其云基础设施的大多数容器,AWS公司继续创新,并将其容器平台与其领先的安全和网络功能深度集成。
Forrester公司的调查报告敦促微软公司和谷歌公司简化他们的容器平台。微软公司因其更强大的开发经验和全球影响力而倍受赞誉,但其复杂性受到用户的批评。谷歌公司凭借其深厚的Kubernetes专业知识和在多云环境中的努力赢得了赞誉,但同样也因其复杂性而受到批评。
尽管如此,根据CNCF公司在2019年进行的调查,AWSEKS仍然是最常用的容器管理平台,GKE、DockerEE/CE和AKS紧随其后。
Flexera公司发布的2020年云计算状态报告指出,AWSEKS/ECS的使用率为55%,另有23%的受访者计划在未来使用这些容器即服务(CaaS)选项。Azure Kubernetes Service的采用率达到50%,另有26%的受访者表示计划在将来使用AKS。而Google Kubernetes Engine达到了26%,其中27%的受访者计划使用GKS。但是,根据Flexera公司的这份报告,在63%的受访者中,自我管理的Kubernetes仍然超过所有容器即服务(CaaS)选项。
容器即服务(CaaS)资源
有关容器即服务(CaaS)的主要信息来源是供应商本身,因此很难做出明智公正的选择。如上所述,Forrester公司和Gartne公司都已深入了解这一领域,但他们的视角通常取决于供应商如何脱颖而出,而不是如何跟上生产中的容器即服务(CaaS)步伐。
关于该主题的书籍还很少,但是O'Reilly公司出版的《软件设计师手册》提供了很好的概述。
Docker多年来一直是容器和容器管理的中心,并且在该主题上还有一些很好的视频内容。