2022 及未来的容器编排

Blog
Author:
Omer MishaniaOmer Mishania
Published On:
1月 24, 2022
Estimated reading time:
1 minute

技术正以指数级速度发展。服务和技术生态系统变得更为复杂,而为测试或生产部署新的环境与十年前或更久以前相比则变得更加简单。促成这一现象的其中一个因素就是容器的使用。容器使得企业能够将代码和依赖资源打包到统一的环境中,这样运营团队在排除故障时就不必反复听人说“它在我的环境中是可以正常运行的”这句话。然而,管理容器可能是一项艰巨的任务。手动配置、编辑和回滚虚拟环境中的更改可能极其枯燥乏味,而且不易进行扩展。此外,容器环境正常运行所需的各种配置和脚本手动管理起来也非常麻烦。这时,容器编排在管理相应虚拟环境方面便派上用场。容器编排已彻底改变企业使用各种工具构建、部署和管理应用程序的方式,这些工具也将在未来几年得以普遍使用。

容器编排

容器编排是将运行容器化工作负载服务所需的操作任务自动化的过程。通过自动管理这些组件,消除了在容器环境中手动管理配置和变更的负担。这可以通过在服务器终端发送命令实现,也可以通过 YAML 或 JSON 文件的描述模板实现。目前可选的一些编排工具包括 Kubernetes、OpenShift 和 Docker Swarm。(参见我们的 Docker 对比 Kubernetes 博文)。在了解更多有关这些工具的详情之前,我们首先回顾一下容器的历史以及它们是怎样变得如此受欢迎的。

容器编排历史

容器的历史十分有趣。1979 chroot 诞生之际,人们开始使用这些小型的隔离计算机环境。chroot 则用于限制某个服务对 Linux 环境中文件的访问,这不仅提高了系统安全性,还保护外部系统免受潜在的漏洞威胁。自 chroot 出现后,更多新的隔离环境也被开发出来,比如 Borgcgroups。Borg 是由谷歌搭建的平台,用于改善自身企业服务的容器集群管理,而 cgroups 则用来帮助管理不同应用程序和服务的资源使用。

不过这两项技术的创造者并未料到他们的工作会继续朝着未来发展。例如,根据 Redhat 的资料,Linux 容器(通常被称为 LXC)由 IBM 在 2008 年创建。该工具改善了容器的用户体验,并且更充分地利用了虚拟环境的 cgroups 和 namespaces。这些进步进而促成了 Docker 的诞生,它是在 2013 年使用 Go 开发的引擎。Datadog 发布的一篇关于 Docker 采用情况的文章中提到,约有三分之二试用了 Docker 的公司最终都选择在其企业工作负载中应用该服务。文章还提到,从 2014 年到 2015 年,使用 Docker 的 Datadog 客户的占比从 1.8% 迅速扩大到 8.3%。短短一年时间内便实现 5 倍的增长量!随着容器在技术领域的应用不断扩大,2014 年,类似于 Kubernetes 的以编程方式管理这类容器化环境的容器编排工具出现了。

容器编排的价值和受欢迎程度

容器编排不断获得更多公司的青睐。容器编排如此受欢迎的其中一个最主要的原因就是,它们为运行应用程序和服务配置所需虚拟环境的速度非常快。容器编排的配置速度更具优势,因为与虚拟机不同,容器是将计算机的操作系统而不是底层硬件虚拟化。根据 IBM 的文章内容,容器只包含应用程序及其依赖资源,并且只利用主机操作系统提供的资源。就像 Gartner 发表的文章中解释的那样,容器的速度使其能够满足现代应用程序快速交付、敏捷性、可移植性、现代化和生命周期管理的需要,同时又足够灵活,可在内部环境或云环境中配置。

此外,相当数量提供容器编排工具和服务的开源供应商所做的只是让容器成为一个用于创建应用程序运行平台的流行方案。容器和容器编排的受欢迎程度日益增长的另一个影响因素便是全球疫情大流行。受疫情大流行影响,各企业开始更多地使用 Kubernetes 等编排工具,以便在远程环境中更快部署应用程序,同时满足新的远程办公和终端用户需求。

容器即服务

Market Watch 的容器编排报告显示,“容器即服务”平台的采用越发普遍是容器编排备受关注的原因之一。这使得工程师和开发人员能够利用控制容器底层基础设施的托管服务,更为有效地保障构建和部署服务优先级。

收入增长潜力/预测

云计算的采用也在很大程度上影响了容器和容器编排的发展。对支持在不同基础设施上运行相同代码的虚拟环境的需求持续增加,无疑为这项现代技术开辟了市场。事实上,预计容器编排市场规模将从 2018 年的 3.261 亿美元增长到 2023 年的 7.433 亿美元,2018 年至 2023 预测期内的年复合增长率 (CAGR) 为 17.9%。此外,Gartner 预测,到 2022 年,超过四分之三的全球组织将在生产中运行容器化应用程序。随着潜在的增长预测为相应收入增长水平提供理论支撑,毫无疑问,容器编排将成为工作负载管理的新常态。

最佳容器编排工具

conatiner-whale

以下是一些主流的编排工具,这些工具拥有的各种功能使得它们能够在 2022 年及未来持续发展:

Kubernetes

谈到容器编排,人们通常都会想到 Kubernetes。Kubernetes 是最受欢迎的容器编排工具。目前,Kubernetes 是由 AWS、Azure 和谷歌云等主要云服务供应商提供的主流工具。Container Journal 发布的 Kubernetes 采用情况报告显示,它也是 2021 年最受欢迎的 DevOps 工具之一。Kubernetes 能够在内部环境或云环境中运行,并能通过描述方式配置资源,毫无疑问,它是整个行业最受欢迎的编排工具。

OpenShift

仅次于 Kubernetes 的编排工具是 RedHat 自家的 Kubernetes 发行版——OpenShift。OpenShift 分为开源版本和付费企业版本,后者拥有更多工程师可以利用的托管功能。根据这篇 Simplilearn 文章中的内容,OpenShift 和 Kubernetes 之间还有一个区别,前者拥有一个被称为 Open vSwitch 的网络解决方案,但只能在 RedHat Enterprise Linux Atomic Host、CentOS 或 Fedora Linux 发行版中运行。虽然不像 Kubernetes 一样备受瞩目,但 OpenShift 正在慢慢打入 AWS 和 Azure 等主要云服务供应商的市场。事实上,AWS 目前提供的是 OpenShift 即服务,与 Kubernetes 类似。Azure 和谷歌云采用 OpenShift 也只是时间问题。不过这可能很快就会实现。Datadog 的另一份容器报告趋势显示,仅2021 年,OpenShift 的采用率就已经增长超过 28%。毋庸置疑,在企业使用的主流云原生技术领域,OpenShift 对于 Kubernetes 就犹如 Microsoft Azure 对于 AWS。

Hashicorp Nomad

Hashicorp 创建了一个名为 Nomad 的容器编排工具,用于管理容器和非容器工作负载。这十分适合尚未进行服务容器化但正在逐步推进基础设施容器应用工作的企业。尽管不像 Kubernetes 或 OpenShift 那样受欢迎,但它轻量灵活的功能使得用户能将应用程序和服务部署到内部环境或云环境中。此外,Nomad 能够很好地与 Terraform 集成,因为它们都以描述方式配置基础设施即代码。Hashicorp 称,Terraform 实现基础设施的配置,而 Nomad 则负责部署、安排和监控将在基于 Terraform 构建的基础设施上运行的应用程序。这一服务的发展潜力越发显著,不久后很有可能成为更受欢迎的编排工具。

Docker Swarm

Docker 拥有一个用来管理容器集群的名叫 Docker Swarm 的编排工具。Docker Swarm 在 Docker 引擎上运行,有着自己的 API,还有一个内部负载均衡器,因此更容易进行容器化工作负载的配置。鉴于 Swarm 与 Docker 能够很好地集成到一起,所以它的学习曲线更小。不过它不像其他编排工具一样被广泛使用。而且它不像 Kubernetes(可以支持像容器一样的其他容器运行时)之类的工具一样强大、可定制或具有灵活性。除了定制化方面的限制,使用 Swarm 也更难在 DevOps 管道中分离开发、测试和生产环境。这就使得开发或测试环境中可能破坏生产中应用程序的问题更难被发现。虽然 Swarm 不如 Kubernetes 或 OpenShift 受欢迎,但它可以帮助企业在为更高级的流程和工作流投入更多云原生编排工具前尝试采用和管理容器化工作负载来摸索门径。

Rancher

Rancher 也越来越受欢迎,尤其是因为它是基于 Kubernetes 建立的平台。根据 TechRepublic 发表的一篇文章内容,工程师可以使用 Rancher 在多个企业内部和云平台上管理多个 Kubernetes 集群。SUSE 近期收购了 Rancher,可以肯定的是,从现在到以后它都会是一个可供选择的解决方案。

2022 年值得关注的未来趋势

2021 已告一段落,以下是 2022 年值得关注的一些未来趋势:

容器化趋势

弗雷斯特 (Forrester) 市场咨询公司近期代表美国第一资本金融公司 (Capital One) 所做的一项研究表明,在全美参与调查研究的 263 名高级 IT 领导人中,有 86% 的人表示他们正在为应用程序使用容器。显然,容器和编排最近获得了许多正面反馈。Enterprisers Project 发表的一篇统计文章提到,由 Portworx 和 Aqua Security 赞助的 2019 年容器采用情况调查显示,高达 87% 的受访者表示他们目前都在使用容器技术。

正如这篇文章中谈到的一样,容器无疑带来了更多创建新的应用程序或将现有的应用程序重构为微服务的机会。将一个单体式应用程序分解成更小的互联组件使得集体服务的管理和监控更容易。就监控而言,微服务能够帮助 IT 团队将注意力转向服务级别的性能监控方面。这种方式正成为管理容器环境的最佳方案,因为它有助于构建易于复制和扩展的基础设施

多云环境

在云或混合云环境中运行服务是 2022 年值得关注的另一个趋势。Datadog 2021 10 月发布的报告中指出,超过 90% 的 Kubernetes 用户都在使用云托管服务。这在很大程度上受到了各种云服务供应商提供的高可用性、托管服务和可扩展性能力的影响。

此外,AWS 和 Azure 等主要云服务供应商提供的解决方案使得 IT 团队能够在多个云环境中运营。例如,2021 Kubernetes 采用情况调查指出,微软的 Azure Arc 允许用户将应用程序从 Azure 部署到位于 Azure 云环境内部或外部的 Kubernetes 发行版中。虽然是仅针对 Kubernetes 推出的服务,但它为企业打开了整合不同云服务供应商资源的窗口,以持续提高服务的可用性和可扩展性。

微型虚拟机

另一项备受关注的技术是微型虚拟机。微型虚拟机有助于检测和研究小型隔离虚拟环境中的恶意软件。安全团队因此能够了解如何降低可能损害工作负载的新的网络威胁。这篇 Kubernetes 文章探讨了微型虚拟机在分析恶意软件方面发挥的作用,AWS Firecracker 和 Ignite 等工具也因此采用微型虚拟机运行不受信任的服务。

GitOps

由于 GitOps 工具能够通过描述方式管理类似于 Kubernetes 的基础设施,因此它在 2022 年将会有更好的发展前景。人们熟悉的 ArgoCD 工具正在改变着 IT 团队管理 Kubernetes 集群的方式。他们不必再过于担心对集群和资源上运行的资源进行手动修改的问题,因为 Argo 会在与 Helm 图表或 YAML 清单相同的 Git 仓库内自动修改资源。有了对基础设施和资源进行版本控制的能力,GitOps 在未来定有很大的发展潜力,因为它将帮助成千上万的 IT 团队更新和回滚对企业服务所做的修改。

无服务器

无服务器技术与容器编排一样前景光明。它们使团队能够更快将代码投入生产环节,而不必过多地担心内部基础设施。无服务器函数已在云端广泛应用。随着云服务供应商提供类似于 Amazon Lambda、Azure Serverless Functions 和 Google Cloud Functions 的服务,无服务器函数也获得了越来越多的关注。根据 Datadog 的数据,Amazon Lambda Functions 在 2021 年的调用量是 2019 年的 3.5 倍。企业每天都在考虑如何在基础设施上投入更少的时间,怎样更多地关注应用程序本身。因此,无服务器技术会在 2022 年及未来更为广泛地被采用。

结语

技术日新月异,时刻留意最新趋势因此至关重要。各企业和工程师不断寻找着最大化利用容器和编排的方法。不出意料,大部分公司会在几年时间内将自家的应用程序和服务彻底容器化。此外,编排相应的环境以提供更新和回滚能力以及可扩展性和安全性有助于运营团队通过比以往更容易的方式控制基础设施。可以放心,这些新工具和新方案不会很快淘汰。容器编排有着大好前景,应用程序和服务的部署或管理方式也将继续改善。新的功能将覆盖新的领域并支持管理随着时间推移越来越大、越来越复杂的系统,解决现有难题的同时,新的挑战也很可能会出现。