容器云平台选型指南
容器即服务平台,能够让开发人员更轻松地部署Docker容器,并将其引入应用程序当中。以往,企业大多会使用Kubernetes完成这方面工作。随着现代容器化应用程序在企业中应用范围的不断增长,各大服务供应商开始以「即服务 」的方式提供容器基础设施与管理方案。
根据Flexera发布的《2020年云计算现状报告》,容器技术在全球企业中的使用范围不断增长,有65%的受访组织表示他们正在使用Docker容器,58%的企业表示他们正在以某种方式使用Kubernetes编排系统。结合调查结果,目前资源与专业知识的欠缺已经成为使用容器技术构建并维护应用程序的主要挑战。也正因为如此,开发人员开始越来越多地转向容器即服务(CaaS)类产品,而三大主要云服务商在CaaS领域也不出意外地占据着优势。
将容器基础设施交给云供应商打理
云服务商实际上向用户提供的是一套托管形式的容器编排引擎(其大多数源自谷歌极具人气的Kubernetes开源项目),用以部署并运行容器、管理集群、实现自动化扩展与故障管理,并维护通用基础设施层中的治理及安全性问题。总体来看,CaaS平台能够处理一切联网、负载均衡、监控、日志记录、身份验证、安全性、自动扩展以及持续集成/持续交付(CI/CD)功能。
正是凭借这种强大的能力,企业得以在CaaS的支持下既利用云基础设施的优势,也能够顺利避免PaaS所带来的供应商锁定问题 (例如AWS Elastic Beanstalk, Azure App Service或者Google App Engine),将容器承载的工作负载轻松在不同环境之间往来迁移。
而CaaS与经典基础设施即服务(IaaS)之间的核心区别在于,企业自身是否需要掌握Kubernetes(或其他容器编排工具)的相关资源及管理技能。很明显,CaaS能够帮助我们摆脱这种硬性要求,将相关工作交由云服务商打理。此外,CaaS还具有更灵活的可移植特性,不少供应商都提供可部署在本地或云端的CaaS平台,以供自己的容器环境能够跨多种云及/或本地环境加以运行。
前德意志银行员工、现任BBC开发人员Rob Isenberg提到,“大家可以在基础设施层级上管理任务并自行设置编排工具,也可以使用容器平台来处理基础设施并提供预先安装的编排工具,借此部署并扩展容器环境。”
实现更大的灵活性与可扩展性
在CaaS上运行容器,类似于在IaaS上运行虚拟机,其主要优势在于良好的部署速度及易用性、即付即用的云模型简单性,以及之前提到的不受供应商锁定影响的灵活性。
将容器基础设施交由云供应商打理之后,企业可以直接启动并运行容器,而无需投资采购自有硬件亦无需构建并运行自有Kubernetes集群或者其他容器编排系统。此外,通过容器化应用程序,企业也可以更轻松地将应用程序迁移至不同的环境或者供应商生态系统当中,由此实现更大的灵活性与可扩展性。
所有这一切都将显著提高成本效率,包括使用容器以更好地根据需求执行横向扩展,并保证企业只需要为实际使用的云资源付费。容器的轻量化程度也远高于虚拟机,这意味着它们的资源消耗量更低,因此通常拥有更快的运行速度与更低的使用成本。
设备与日志的一致性还带来另一大优势,即隔离在容器中的各项服务都只可以通过流行的SiderCar部署模型建立起更高效的日志聚合与集中监控机制。
但必须承认,将传统应用程序迁移至容器仍是一项艰难的工作,即使是在基于CaaS的应用程序之上也是如此。Flexera的云现状报告提到,有34%的受访者在这方面遇到了挑战。在面向容器的应用程序迁移当中,往往涉及将单体式应用程序拆分为微服务架构;对于历史较长且规模较大的企业来说,这背后往往对应着重大的文化与技术转变,难度可想而知。
云服务商哪家强?
大多数主要云服务商都提供自己的CaaS产品,此外其他几家供应商也都希望在这片市场上一展拳脚。
云服务市场的领导者Amazon Web Services (AWS)掌握的Kubernetes-less Elastic Container Service (ECS)与Elastic Kubernetes Service (EKS)都有着强劲的市场表现。同样的,根据Flexera的分析报告,Azure Kubernetes Service与Google Kubernetes Engine (GKE)也都在近期迎来了强劲的增长势头。
三大云巨头现在还提供无服务器Kubernetes服务,其中包括AWS ECS on Fargate、Google Cloud Run on GKE以及Azure Container Instances。与EKS、AKS以及GKE不同,这些服务彻底消除了服务器管理任务,以按需消费方式进一步降低了容器方案的使用门槛。
目前,Google Cloud的大部分容器管理功能都被归入Anthos,此功能可跨本地基础设施与各大主要公有云(目前支持Google Cloud Platform与AWS,未来亦有计划支持Azure)管理基于容器的应用程序。Anthos将GKE for cloud workloads, GKE On-Prem以及 Anthos Config管理控制台结合起来,供用户在混合及多云Kubernetes部署当中集中执行管理、策略及安全保护等任务。
除了三大云服务巨头之外,包括IBM/Red Hat、VMware、SUSE/Rancher、Canonical、D2iQ(原Mesosphere)、Rackspace、甲骨文、HPE、阿里巴巴、华为以及腾讯在内的各服务商也都推出了自己的托管CaaS方案选项。其中相当一部分产品能够在本地、公有云乃至混合环境中进行部署。
在Gartner发布的《竞争格局:公有云容器服务》报告中,将Google的GKE确定为领先的托管Kubernetes选项。
Forrester的分析师们则在2020年第三季度的多云容器开发平台研究报告中,将红帽、Googel和Rancher列为了领导者。根据报告的表述,OpenShift 是部署最广泛的多云容器平台,在许多公共和本地平台上拥有强大的开发和统一运维体验。Red Hat 率先为基础架构和应用程序管理推出了“Operator”模式,并提供了丰富的合作伙伴生态系统和热门市场。报告认为Google 通过其抽象化和强大的 DevOps 自动化,在云原生应用程序生命周期中展示了卓越的开发人员和运维人员体验,对Rancher的评价是极大地简化大规模的多云 Kubernetes 管理。
Flexera的报告发现,使用AWS EKS/ECS的企业占比为55%,另有23%的企业受访者已经有计划未来采用CaaS。Azure Kubernetes Service的采用率达到了50%,另有26%的企业已经有计划使用。Google Kubernetes Engine采用占比为26%,有27%的企业受访者则计划使用GKS。但相比之下,Flexera报告发现仍有63%的企业受访者正在使用自主管理的Kubernetes解决方案。
结语
关于CaaS产品的信息主要来自各服务供应商自身,所以我们难以做出真正客观且公正的选择。如上所述,Forrester与Gartner虽然各自深入研究了这一领域,但关注的主要是供应商之间的竞争关系,而并非CaaS的实际发展节奏。