阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

容器云开发必备知识

34次阅读
没有评论

共计 2541 个字符,预计需要花费 7 分钟才能阅读完成。

导读如今,「即服务」的时代已经到来,将能力服务化,万物皆可具备基础设施的特征。在 IT 界更是如此,譬如,基础设施即服务 (IaaS)、平台即服务(PaaS)、软件即服务(SaaS) 等等。容器即服务 (CaaS) 无疑是这波浪潮中的又一位重量级参与者。

那么作为开发者,想探究 CaaS 的「真谛」,首先应该明白这一系列问题——Caas 是什么? 它能干什么? 和 PaaS 的区别是什么? 构成 CaaS 有哪些基本要素? 有什么代表性的产品值得了解? 在本文中,我们将探讨这一系列问题,帮助开发者「破除迷雾」、「看清真相」。

容器云开发必备知识

什么是容器?

容器即服务,英文全称 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? 实际上,选择哪种解决方案要根据你的应用场景来决定。

这二者都能帮助开发人员部署并运行应用程序。但是,PaaS 会隐藏一部分容器化任务。换句话说,使用 CaaS,开发者仍然需要管理一部分应用程序容器化任务; 但使用 PaaS,开发者就不用额外操心了。再有,PaaS 在所使用的语言及技术方面也有更多要求。虽然能够支持多种不同语言,但数量毕竟有限,这是因为 PaaS 通常依靠构建软件包来运行应用程序,而不像 Docker 那样使用通用型容器。

此外,CaaS 能更轻松地运用多云托管功能,这也是因为它不像 PaaS 那样「独断专行」。只要云服务商支持容器,开发者也可以借此发布并运行自己的服务。

如果企业拥有强大的基础设施团队,或者已经习惯于处理网络及运营问题,那么使用 CaaS 将帮助企业更好地发挥自身技术优势。但如果企业并不熟悉该如何将服务部署至云端,或者运营团队在这方面的经验不是很丰富,那么 PaaS 无疑是更理想的入门级选项。

在 PaaS 与 CaaS 之间进行选择时,另一大重要考量因素在于速度与控制。如果企业希望快速推出应用程序,又不想为其他事情分神,那么 PaaS 的效果更好。但如果打算更好地控制服务的容器化及管理方式,那么 CaaS 解决方案将成为最佳选择。

说了半天,好像净是好事。但 CaaS 难道就没有任何缺点了吗?

当然有。首先,根据云服务商的具体方案,大家会发现其可能并不支持某些容器类型。绝大多数服务商当然都在支持 Docker,但现在 CaaS 当中限定容器类型的现象正愈发普遍。云服务商越来越多地将其产品耦合起来,确保客户能够满足云服务提出的种种使用要求。因此如果企业希望在容器类型当中做出选择,至少应确保其符合多数 CaaS 供应商提出的 OCI 标准。

此外,由于 CaaS 并不怎么强制限定能够在容器中运行的服务类型,所以企业往往难以找到适当的工具与监控方案。请确保使用 Scaylr 等工具持续监控容器运行,目前大多数 CaaS 供应商要求用户自行跟踪容器状态。

构成 CaaS 的基本要素

下面来看构成 CaaS 的各类组件。

(1) 容器注册表

容器注册表是容器镜像存储库,我们可以将它视为容器的 Maven 库。在将镜像放入存储库后,容器管理系统即可提取镜像并加以运行。

大多数开发者最熟悉的注册表当数 Docker Hub,可以使用这类公共注册表,也可以使用某些本地内部版本。

(2) 容器管理

CaaS 的容器管理与编排组件负责管理容器与容器集群。常见的容器管理工具包括 Kubernetes 与 Docker Swarm。

首先,容器管理能够自动执行容器部署。这类组件会创建新实例,监控这些实例以确保其正常启动,并在发生问题时加以回滚。一旦应用程序顺利启动并开始运行,容器管理还可监控服务运行状态。如果某个服务实例发生故障或无法响应,则容器管理组件将启动新实例以接管相应负载。

容器管理组件还帮助实现负载均衡并控制容器之间的通信。例如,其仅允许客户端应用程序及容器在完全启动并运行之后,方可调用服务实例。

(3) 开发者工具

除了容器管理与注册表,CaaS 解决方案中还提供多种开发者工具。最常用的工具包括 CLI 或 API。这些工具将帮助监控并管理容器实例。虽然很多开发者希望以自动化或脚本化方式处理大部分管理任务,但这些开发者工具还是可以帮助快速对实例进行规模伸缩、或即时修改配置与部署选项。

总结

多年以来,容器已经凭借自身强大的特性进入主流市场,但 CaaS 供应商并没有丝毫松懈。他们以更灵活的方式满足着大多数开发团队的需求,成功从 PaaS 手中夺下不少市场份额。但是,CaaS 并不适合所有用户、所有场景。换言之,它只是我们日益庞大的开发者空间中的另一款工具。究竟适不适合,请务必认真考量。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计2541字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中