1 月 19 日,云原生计算基金会 CNCF(Cloud Native Computing Foundation)成员之一的 Chris Aniszczyk 撰文,预判了有关云原生技术的九个趋势。
据了解,Chris Aniszczyk 目前是 Linux 基金会 CTO,同时还是云原生计算基金会 CNCF 的首席运营官,并负责开放容器标准(OCI)组织的相关工作。
(PS. 这里再科普一个小知识,CNCF 隶属于 Linux 基金会下,独立于任何厂商,负责推广云原生系统。例如,CNCF 拥有云原生软件堆栈的关键元素,包括 Kubernetes 和 Prometheus。CNCF 创建了一个中立的合作平台,将业内顶级开发者、最终用户和供应商整合起来,包括全球最大的云服务和企业软件公司,也有初创团队。)
首先,我们先来了解下过去一年 CNCF 基金会组织成员方面的一些变化。
成员方面:2020 年新增 150 多家新成员,目前总计超过 668 家成员。其中,Kasten by Veeam 和字节跳动旗下火山引擎在 2020 年加入或升级为白金会员;Cox Communications、HCL Technologies、Hewlett Packard Enterprise、Intuit、浦发银行和 T-Mobile 都在 2020 年加入或升级为黄金会员。
项目方面:2020 年,由 CNCF 托管的 Helm、Harbor、TikV、Rook、etcd 等 14 个项目,提升到毕业阶段;Argo、Contour 和 Operator Framework 则进阶孵化阶段;Buildpacks、Cortex、Dragonfly、Falco、SPIFFE/SPIRE 和 Thano 等 20 个项目,从沙箱进阶孵化阶段。
云原生技术不再是只为云服务。Builtin 宣称 “云原生技术正转向企业”,这意味着 “传统IT正向云原生觉醒”。云原生技术也在推动边缘计算领域扩张的同时,许多企业也意识到 “走云原生道路所带来的潜在经济效益”。
值得一提的是,Dan Kohn 先生,作为前 Linux 基金会公共卫生负责人、CNCF 执行总裁,于 2020 年 11 月日因病离世。他曾多次来到中国交流,对中国开源社区以及云原生技术的推广起到了一个非常重要的作用。这份报告中也特别缅怀了这位开源英雄。
回归正题,先来了解下 Chris Aniszczyk 根据过去一年观察所给出的九个开源技术和工具发展趋势。
1、云原生 IDE(集成开发环境)
相较于使用本地的 Emacs、VSCode,未来,开发人员写代码、架构、调试等开发全生命周期,将主要以云的方式进行。例如,开发人员可以为每次 pull request 请求获得完整的开发环境,不仅能预先配置,还能连接到自身的部署环境中。
GitHub 上开源的两个新项目:Codespaces、Gitpod,就是铁证。不过,Codespaces 仍处于测试阶段,可以使用 Prometheus 作为示例,在 Gitpod 上进行体验。
因为只需要一分钟,开发人员就可以实现一个带有编译器和预览的实时开发环境。
2、Kubernetes 在边缘计算中的应用
尽管 Kubernetes 诞生于大型数据中心,但 Kubernetes 会像 Linux 一样因环境改变而不断变化。例如,终端用户基于 Linux 不断扩展内核,以支持移动、嵌入式等操作系统的开发。实际上,Kubernetes 正有着类似的经历。美国电信行业和初创公司为探索 Kubernetes 在边缘计算中的应用,已经在通过将 VNF 转换为 CNF 以及其他开源项目 k3s、KubeEdge、k0s、LFEdge、Eclipse ioFog 等进行实践。(注:Virtual Network Functions (VNFs);Cloud Native Network Functions (CNFs))
未来几年里,支撑运营商的大规模云计算和边缘计算浪潮,加之对云原生软件的反复使用以及塑造强健生态的能力,将推动 Kubernetes 进一步发展为边缘计算核心平台。
3、云原生 + Wasm
Web Assembly(Wasm)是一门新兴技术,但有望成为云原生生态中日益增长的实用程序和工作负载,尤其是 WASI 变得越来越成熟,而 Kubernetes 也开始更多地被应用于边缘协调器( edge orchestrator)。
4、FinOps(CFM)兴起
全球疫情确确实实加速了企业IT向云原生的转变。因为在这场危机中,至少有一半的公司正加速云部署计划。根据刚刚公布的调研报告 State of the Cloud Report 2020,近 60% 的受访者表示,由于疫情的影响,他们对云的使用会超过原先计划。
其中,云成本优化(Cloud Financial Management,FinOps)对很多企业而言是一个需要关注的话题。坦率来讲,过去半年,有一半的讨论都是关于公司该如何启动云原生的实践。
尽管云服务商并没有主动简化云成本优化的规范和方案,因为这会导致客户更容易减少IT支出,但真正的问题在于,缺乏开源创新和围绕云成本优化的标准化管理。目前很多云服务的成本管理标准有很大差异。
在 CNCF 的项目中,很多也并没有将云成本优化当回事儿,像 KubeCost 项目其实也还在早期阶段。Linux 基金会最近启动了 FinOps 基金会,以帮助生态创新。
5、Rust 在云原生技术中将更为常见
Rust 仍是一个比较年轻的编程语言,如果以 Redmonk 编程语言排名来看,Rust 虽然小众但有一定的影响力潜能。鉴于目前少数 CNCF 项目在一些非常有趣的云原生项目中开始使用 Rust,如 microvm Firecracker,未来 Rust 可能会出现在越来越多的云原生项目中。
尽管 CNCF 的很多项目是用 Golang 编写的,但预计随着 Rust 社区的成熟,基于 Rust 的项目将在未来几年内与 Go 的项目相提并论。
6、GitOps+CD/PD 模型显著增长
GitOps 是云原生技术的持续交付模型,提供了一套可以统一部署、管理和监测应用(最初由 Weaveworks 知名人士 Alexis Richardson 创建)的最佳实践。
GitOps 最核心的部分,是描述通过声明方式在 Git 中进行版本化的期望系统状态。这实际使得一组复杂的系统更改能够被正确应用,并通过 Git 和其他工具启用的日志进行验证。
从实用的角度讲,GitOps 改善了开发者体验,并伴随 Argo、GitLab、Flux 等项目的增长,GitOps 工具预计在今年对企业生产将带来更大影响。结合目前 GitLab 上的数据,GitOps 仍处于早期实践中,大多数公司都没有太多相关的探索,这取决于是否有越来越多的公司在大规模采用云原生软件。
7、服务目录 2.0:云原生开发者看板
服务目录不是一个新概念,对于多数成熟的技术人而言,可能大家只会记得 CMDB 等类似的挑战。
但是,随着微服务的兴起和云原生的发展,对各类服务进行分类,并为各种实时服务源数据进行索引的能力,对于推动开发人员自动化至关重要。这包括使用服务目录以处理事件管理、管理 SLO 等。
还有一种趋势是:开发者看板不仅具备服务目录,同时还具备自动化扩展的能力。不过值得一提的是,任何具有一定云原生部署能力的公司往往会有一个试图构建类似能力的平台基础架构团队。
8、跨云不再是梦想
Kubernetes 和云原生技术浪潮表明,生产环境中可以使用云原生和多云管理的方式。相关数据清晰地表明:“93% 的企业会选择 Microsoft Azure,Amazon Web Services 和 Google Cloud 等多个云服务商的使用策略。”
随着 Kubernetes 在云市场的应用成熟,未来有望解锁编程式的跨云托管服务。一个具体示例是 Crossplane 项目,该项目提供了一个开源的跨云控制平台,可利用 Kubernetes API 的可扩展性来实现跨云工作负载管理。
9、eBPF 成为主流
eBPF 允许开发者在 Linux 内核中运行程序,而无需更改内核代码或加载模块,这种方式可以视为沙盒扩展机制。eBPF 允许新一代软件扩展 Linux 内核,以支持改进的网络、监视和安全性等能力。
从历史上看,eBPF 的缺点是需要一个高版本的内核才能利用,并且在很长一段时间里这对跟多公司都不是一个切实的选择。
但情况在发生变化,因为新版 RHEL 开始支持 eBPF 了,预计很快越来越多的项目开始采用这一方式。根据 Sysdig 发布的最新容器报告,可以看到 Falco 在生产环境中的采用率最近正大幅上升。