在 NGINX Sprint 3.0 大会上,我主持了一场关于开源生态系统的讨论,邀请了三位行业专家:Fermyon 首席执行官 Matt Butcher,JFrog 开发者关系副总裁 Stephen Chin 和 SUSE 高级技术布道师 Robert Sirchia。聆听他们的真知灼见后,我不禁提出了一个问题:未来三年,什么技术将变得至关重要?同时这些技术我们现在就应该开始关注。
现在,这个问题看来可能有点奇怪。考虑到现在就已经很难跟上开源生态系统的快速扩张了,谁还有时间去展望三年后的情况?但这也正是我们需要这么做的原因。如果您能够在一个项目的早期阶段就参与其中,就可以逐渐增加自己的只是,随着技术的范围扩展而成长。
许多开源项目的灵感就是改进当前解决方案,因为当前解决方案太过复杂或过于依赖人工操作而难以在生产环境中广泛采用或轻松扩展。新解决方案的第一步通常是抽象化当前解决方案中需要处理的各项细节。但随着工作的开展,通常会发现相关的问题,而且必须解决这些问题才能确保解决方案的顺利实施。这样就不得不使用更高复杂度的解决方案,当新解决方案最终引起注意的时候,它已经相当庞杂,无法快速、轻松地理解。
简而言之,抽象化可以让生活更轻松,但并不总是如此。Kubernetes 就是一个很好的示例,现在它是容器编排的首选。Kubernetes 于 2015 年 7 月进入公众视野。它基于 Google 内部一个非常成功的项目 (Borg) 开发而成,并迅速在生产系统中占得一席之地。在 2015 年了解 Kubernetes 似乎并不是一件重要的事情(当时存在多项竞争性技术),但如果您今天想构建和部署现代应用,就必须先了解 Kubernetes。
那么,Matt、Robert、Stephen和我认为您现在需要关注什么技术呢?我们讨论确定了三项候选技术:OpenTelemetry、OpenSSF 和 WebAssembly。
OpenTelemetry:监控现代应用的关联数据流
OpenTelemetry (OTel) 诞生于 2019 年 3 月。它席卷了可观测性领域,并成为云原生计算基金会 (CNCF) 最活跃的开源项目之一。你可能已经很熟悉 OTel,但也不能忽视几个重要因素,这些因素将很快改变您应用管理的方式。
OTel 始于分布式追踪,这对新兴云原生应用来说非常重要。但 OTel 开发人员很快意识到,仅仅追踪还是不够的,现代应用监控还需要将多种数据类型(跟踪、指标和日志)整合到统一视图并对这些数据进行关联,以便快速、清晰地了解任何位置和任何时间点应用环境的状况。
每种数据类型的发展节奏不尽相同。其中,追踪处于领先地位,指标紧随其后。现在,最后一种数据类型日志也正趋于完善,它可能是大家最熟悉的应用洞察源,或许已被您应用于各种开源项目。
随着 OTel 将日志纳入其提供的可观测性数据的统一视图中,我们需要尽快了解由此生成的新洞察将如何改变我们识别和响应应用问题的速度,无论是服务中断、错误的结果,还是超过用户耐心的请求事务持续时间。
密切关注 OTel,了解其在所有三种数据类型上取得的最新进展。关于在现代应用环境中采用 OTel 的实用建议,请阅读我们的博客,了解我们在将其纳入 NGINX 现代应用参考架构 (MARA) 方面总结的经验。
OpenSSF:保护开源的未来
在现代应用世界中,安全是极其重要的一部分。当我们创建集成了多个独立项目的解决方案时,安全有时会被忽略。我们已经看到了多个安全漏洞在各种开源项目中激增和重现的例子。我们应如何应对?
幸运的是,您并不必独自解决这个问题。 开源安全基金会 (OpenSSF) 是 Linux 基金会的一部分,它将广泛的社区、公司和项目团结起来,共同推动所有开源项目的安全性。OpenSSF 是一个相对较新的基金会(于 2020 年创立)。虽然它有自己的重点发展项目,但它将影响几乎所有涉及开源的领域。您需要了解安全的开源供应链意味着什么,如果您负责日常生产运营,则更需要了解。您需要深入研究 OpenSSF 的建议,以保护我们所依赖的仓库,进而保护您自己的项目。
目前 OpenSSF 正处于早期阶段,因此如果从现在就参与其中,您不仅可以提前了解其当前正在开展的项目,还可以直接影响它们的未来。利用您的经验来帮助完善最佳实践的定义,并提供有关 OpenSSF 安全模型如何影响像您这样的企业运营的见解。F5 很高兴成为 OpenSSF 的正式成员,为保护开源供应链和关键项目贡献一己之力。
WebAssembly:交付下一代 Web 应用
WebAssembly (Wasm) 显然在网络应用交付领域快速占据主导地位。这是几十年来 Web 浏览器采用的第一种新语言,并且早期被诸如 Photoshop 和 AutoCAD 等技术所使用。Wasm 专注于性能和语言独立性,在浏览器内提供近乎原生的应用性能(由前端或后端使用驱动)。虽然它不会取代 JavaScript,但它将通过优化前端性能来扩展和增强现代应用(我们都知道用户喜欢快速响应的应用)。
Wasm 安全简单,它是一种类似汇编的低级代码,使以前无法在浏览器中运行的语言能够在其中运行。它通过为诸如 C、C++ 和 Rust 等语言提供一个高效的编译目标,实现这些语言可以与 JavaScript 和 Python 等语言一起运行。
但是,现在为什么就要了解 Wasm 呢?它的功能可能并不完备,但已经被广泛使用且功能强大。它将日益影响 Web 应用的设计和交付,无论是云原生微服务、无服务器函数,还是更传统的重构应用。它将通过为您的未来项目提供新功能、新客户、新功能甚至新架构来改变应用开发的性质。从某种意义上说,我们把最重要的留到了最后,在我们看来 Wasm 是三项技术中最重要的技术,开发者应该尽快理解它,阅读本文深入了解 WebAssembly。
本文总结
文中列出了一份候选技术清单,这些技术将在未来几年对您产生巨大的影响,并且现在就可供您使用。根据您在开源世界中的不同角色,您可能需要先专注于其中一种技术。但我们预计,三年后这三项技术的重要性都将远胜于今天。