Kubernetes 的使用增加,谷歌创建的开源编排系统并未出现在 IT 基础设施的所有领域,但它已经完全占领云原生应用程序的部署。
自计算机时代伊始,IT 就被操作系统(MS-DOS、Unix、Linux、Windows、macOS、Android、iOS)定义为四分卫。新的研究表明,2023 年的主要参与者和市场份额保持不变,但随着我们进入神秘的新 Web3 时代,地平线上还有一颗冉冉升起的新星。
令少数人惊讶的是,这颗明星就是 Kubernetes。云原生计算基金会 (CNCF) 报告如是说,这是一个“操作系统”——好吧,实际上是现代 IT 技术栈中操作管理的基础层—— Kubernetes 已经成功地向迈进了云计算的主流,并见证了它的实例数量在短短几年内大幅增加。
71% 的组织在 Kubernetes 中运行数据库和缓存,同比增长 48%。与消息中间件(增长 36%)一起,组织越来越多地使用数据库和缓存来保存应用程序工作负载状态。
Kubernetes 起源
Kubernetes 普遍使用还不到十年,它使用微服务编排和部署容器来运行工作负载。CNCF 调查的受访者中有 44%(包括 2,063 名合格专业人员)已经在几乎所有应用程序和业务部门中使用容器,另有 35% 的受访者表示容器至少用于一些生产应用程序。这些虚拟机技术已很好地嵌入数据系统 20 多年,但在生产用例中正在迅速被取代,这对虚拟机等竞争技术构成了重大威胁。
Kubernetes 最初由 Google 工程师Craig McLuckie、Joe Beda和Brendan Burns于 2013 年开发和设计,现已迅速发展成为全球最受欢迎的开源项目之一。然而,编排系统的使用增加并不是在 IT 基础设施的所有角落都很明显。
因此,Kubernetes 正在发生的事情是我们越来越多地使用它以及越来越复杂的(云原生)应用程序,但那些(细分市场)根本就没有增长。这些没有使用 Kubernetes 的组织大多来自一些小公司,只要是增长的应用程序都在云原生中。
企业正在尝试不同的方法在云中部署 Kubernetes 并取得成功。Dynatrace 在其Kubernetes in the Wild 2023 报告中指出,在 2021 年,在典型的 Kubernetes 集群中,应用程序工作负载占了大部分 pod (59%)。那时,所有非应用程序工作负载(系统和辅助工作负载)所起的作用相对较小。
然而,一年后,这幅画很快就被扭转了。到 2022 年,随着组织越来越多地采用安全控制、服务网格、消息传递系统和可观察性工具等先进的 Kubernetes 平台技术,辅助工作负载数量超过应用程序工作负载(63% 对 37%)。与此同时,组织尝试将 Kubernetes 用于更广泛的用例,例如构建数据管道、调度实用程序工作负载和其他任务。
因此成为云原生应用程序的虚拟“操作系统”,Kubernetes 成为运行几乎任何应用的平台——多功能性是其至高无上的荣耀。
容器是新常态,WebAssembly 是未来
CNCF 还发现,随着容器在 2022 年成为主流,无服务器架构的采用正在为 WebAssembly 奠定基础,这在本次调查中首次被问及。总体而言,37% 的组织表示有一些使用 WebAssembly 部署应用程序的经验。尽管许多人仍在亲自测试它们,但 WasmEdge 和 WAMR 是使用最多的运行时。
WebAssembly 或 Wasm 被证明是一种非常实用的方法,可以在网络浏览器上运行代码,充当各种编译器,它作为一种语言运行得非常好,万维网联盟 (W3C)在 2019 年将其命名为网络标准,从而成为与 HTML、CSS 和 JavaScript 并列的第四个网络标准。
WebAssembly 被视为容器的有效负载,一种对服务网格等边车服务进行编程的方式,以及一种向边缘设备交付和编排工作负载的替代方案。
2022 年 CNCF 项目的采用率增加
该报告的其他亮点包括:
- 响应者报告的使用和部署容器的最大挑战是缺乏培训和安全性。事实上,缺乏培训是阻碍采用的最重要障碍;这是 44% 尚未在生产中部署容器的人和 41% 有限使用容器的人提到的最大挑战。一旦容器被用于几乎所有应用程序,那么安全性就成为首要挑战。
- CNCF 孵化和毕业项目的采用在 2022 年有所增加,其中OpenTelemetry和Argo 的使用量跃升幅度最大。前者从 2020 年的 4% 上升到 2022 年的 20%,后者从 10% 上升到 28%。同时,Containerd(36% 到 56%)和CoreDNS(48% 到 56%)是使用和评价增幅最大的毕业项目。
- 持续集成和交付(CI/CD) 技术同比增长 43%,这表明组织正在将更多的 Kubernetes 集群用于运行软件构建、测试和管道部署。