“巅峰一代”Nginx 之父离职7个月后,该项目未来一年的规划公布了

作者 | Rob Whiteley

译者 | 核子可乐

策划 | 钰莹

今年 1 月 18 日,Nginx 公司副总裁兼总经理 Rob Whiteley 在 Nginx 官网发布了一篇告别信,正式宣告 Nginx 的作者和 Nginx Inc. 的联合创始人 Igor Sysoev 退出 Nginx 和 F5 Networks。不少开发者对 Igor 所做出的贡献表达了崇敬和感谢,也有网友感慨“巅峰一代落幕”。Nginx 如今归属于 F5 Networks。在 Igor 离职 7 个月之后,F5 近日公布了 Nginx 的未来新规划。

如果没有这么多令人惊叹的开源项目,包括 Kubernetes、容器、Python、PyTorch,乃至 WordPress、Postgres 和 Node.js,NGINX 根本就无法构建起一个全面接管并控制物理世界的数字空间。开源已经改变了我们的工作方式。目前,GitHub 上有超过 7300 万开发人员,总计合并了超过 1.7 亿个 PR,其中很大一部分位于采用开源许可证的代码仓库当中。

我们也很高兴 NGINX 能在这股开源的兴起浪潮中发挥自己的作用,并将继续推动项目向前发展。当然,我们也需要反思自己的开源工作,适应潮流的持续演变。通过开源获得的商业模式经常被推向舆论的风口浪尖,所以我们 NGINX 一直希望推广员清楚什么叫开源、什么叫商业,二者的边界能否交融。而且最重要的是,我们永远不会对软件开源版本已经包含的任何功能特性收费。

开源快速演变

NGINX 也在不断发展

我们现在意识到,必须认真思考自己对开源做出的承诺,努力在开源和商业两大领域提供更多价值和功能。我们不能再像过去那样简单开放收费版本,因为市场趋势已经发生变化,不少商业版本中的功能已经成为开源开发者不可或缺的重要工具。另外,我们也清楚大家对于开源安全的期许,必须保证开源版本与商业产品一样安全。

但另一方面,我们也得承认现实。在内部,我们常会说开源版本存在种种功能或者可扩展性欠缺,还没有为业务生产做好准备。不过结合过去一段时间的经历,我们发现这种认知是错的:成千上万的组织已经在生产环境中运行 NGINX 开源软件。这是件好事,代表着客户对我们开源版本的高度信任。而我们也应当以这份信任为基础,继续勇敢开拓。

事实上,我们一直在通过 NGINX 核心产品服务大众。有声音认为 NGINX 的原始产品家族已经陈旧落后,但其实我们一直没有停止过更新的脚步:

对于核心 NGINX 开源软件,我们不断添加新的功能特性,并支持更多操作系统平台。在即将发布的下个版本中,我们将通过 HTTP3 和 QUIC 增强 Web 应用程序和流量的安全性与可扩展性。

NGINX 生态体系中还有一支声名不显,但却锐意进取的创新力量,这就是 NGINX JavaScript(njs)。它能帮助开发人员将 JS 代码整合至 NGINX HTTP 和 TCP/UDP(Stream)模块的事件处理模型当中,同时扩展 NGINX 配置语法以实现更多复杂功能。我们的用户已经借此做出不少了不起的尝试,例如创新的缓存清理、标头操作以及对 MQTTv5 等高级协议的支持等。

我们的通用 Web 应用服务器 NGINX Unit 是由 NGINX 开源版的原作者 Igor Sysoev 构思而成,目前仍在不断发展。Unit 在 NGINX 的现代应用堆栈发展路线中占据重要位置,甚至远远超越数据平面和安全性等主要关注点。在开发 Unit 期间,我们还重新思考该如何为不断发展的 Web 构建应用程序,引入更多云原生功能,同时也采取了面向分布式 / 高度动态应用程序的设计元素。

现代应用程序参考架构

我们希望继续开展试验,帮助核心开发者们更高效、更轻松地部署现代应用程序。在去年的 Sprint 2.0 上,我们公布了 NGINX 现代应用程序参考架构(MARA),相应的 1.0.0 正式版最近也已经发布。MARA 是一套精心设计而成的工具堆栈,其中也包括 Kubernetes,我们希望通过这样的配置轻松实现基础设施与应用程序架构的“即代码”式部署。只需单击几下,用户就可以配置并部署 MARA 参考架构,并享用其中集成的一切生产级云原生环境创建选项——安全性、日志记录、网络、应用程序服务器、配置和 YAML 管理等,可谓无所不包。

MARA 是一套由模块化思维设计而成的架构,您可以按自己的方式使用,并利用现有模块设计出符合实际应用需求的定制化参考架构。社区也热情支持我们的探索,有多家创新技术公司已经在 MARA 上与我们合作。Sumo Logic 已经将自家日志记录功能引入 MARA,Pulumi 则带来用于自动化和工作流编排的模块。我们希望在 MARA 的帮助下,每一位开发人员都能在几分钟内启动并运行起完整的 Kubernetes 环境,涵盖所有支持部件、安全机制以及应用程序部署条件,而这还只是我们集体创新成果中的一小部分。

NGINX 的未来:现代化、优化、扩展

在每年的用户线上大会 NGINX Sprint 中,我们都会面向来年做出新的承诺。今年也是一样,我们对接下来十二个月的承诺可以概括成三个词:现代化、优化、扩展。我们的承诺当然不会流于表面,而是为每个项目都制定了大量计划,也将努力兑现这三大关键词。

承诺一:推动方法、现有成果和社区管理的现代化

我们正在快速更新代码并引入新的产品和项目,但这里需要进行现代化升级的可不仅仅是代码,还包括代码管理、决策透明度以及整个社区的运营水平。虽然之前 NGINX 开源代码库一直运行在 Mercurial 版本控制系统上,但我们意识到 GitHub 才能承载整个开源世界的环境。因此在未来,所有 NGINX 项目都将由生于 GitHub、托管于 GitHub,契合开发者和开源社区的现实习惯。

我们还将推动 NGINX 项目管理 / 治理方式的现代化。我们承诺进一步加强对贡献的开放接纳,提升管理透明度,让整个社区更加友好舒适。我们将遵循现代开源工作的所有惯例,在 GitHub 上重建现有成果,将这些准则引入 NGINX 全体项目当中,同时密切关注社区反馈。我们还将在 Slack 上创建 NGINX 社区频道,届时将有我们自己的专家为开发者解答疑问。当然,各社区成员之间也可以通过该频道相互帮助,而且整个体验就是大家熟悉的 Slack 味道。

承诺二:优化开发者体验

我们的主要用户群体就是开发者,正是他们创建的应用程序让 NGINX 能够走到今天。我们一直在强调 NGINX 的易用性原则,要求保证 NGINX 能够快速安装、启动和配置。但我们完全可以做得更好,例如通过调整学习曲线、简化配置过程,我们能够加快开发者获得产品体验和实现价值的速度。这里的“实现价值”,是指在生产环境中部署真正有价值的代码。我们会简化安装流程、改进说明文档,并进一步增加社区论坛的话题覆盖面,为广大开发人员带来更好的使用体验。

我们还将发布新的 SaaS 产品,它与 NGINX 开源版本原生集成,能帮助大家在几秒内快速用到 NGINX。无需注册、不必付费,我们承认这项 SaaS 服务永远免费开放。

另外,我们还意识到开发者们高度依赖的不少关键功能,目前被划进了付费版本当中。例如,DNS 服务发现对于现代应用程序而言至关重要,但只面向 NGINX Plus 付费用户开放。我们承诺将这些关键功能纳入 NGINX 开源版本,真正实现全面免费开放。目前我们还在筹划具体应免费开放哪些功能,希望大家能多提建议和意见,告诉我们该如何优化开发者体验。您的声音,我们一直用心在听。

承诺三:扩展 NGINX 的功能与能力

NGINX 目前确实生机勃勃,但要想让它能在十年后仍葆青春,就需要对项目不断做出改进。我们为此提出了极具雄心的目标:希望建立完整的 NGINX 应用程序与支持功能集,用以大规模管理和操作现代应用程序。

迄今为止,NGINX 主要作为 L7 数据平面层使用。但开发者需要在 NGINX 周围搭起很多“脚手架”,才能让它正常发挥作用。比如需要配合连接自动化与 CI/CD 功能、设置正确的日志记录方案,添加身份验证与证书管理等等。我们希望对 NGINX 做出进一步扩展,为 NGINX 无缝集成一个或多个高质量开源组件,从而满足应用程序测试和部署中的各种常见需求。简而言之,我们希望能在堆栈的每个层级都创造价值,并向开发者免费开放。例如,如果大家使用 NGINX 开源版或者 NGINX Plus 作为 API 网关,我们希望能同步向您提供管理和扩展该用例的一切——API 导入、服务发现、防火墙、策略规则和安全性等等,且全部选择高质量的开源工具选项。

我们的梦想,是围绕 NGINX 构建一个全面覆盖应用程序管理及部署需求的完整生态系统。MARA 正是建立这套生态的第一步,我们也希望能继续吸引到合作伙伴的参与。我们的目标是到今年年底,能在几分钟内通过 NGINX 环境启动并运行一个完整的预连接应用程序,同时配备完整的分布式跟踪、日志记录、自动规模伸缩、安全保护、CI/CD 挂钩等功能。

发布 Kubernetes API Gateway

全新 Amplify 及 NGINX Agent

为了向大家证明我们践行承诺的决心,这里要公布三笔“预付款”:

今年早些时候,我们基于 Kubernetes API Gateway SIG 参考架构,推出了 NGINX Kubernetes Gateway。这既实现了产品家族的现代化升级,也让我们能够与云原生趋势保持一致。NGINX Kubernetes Gateway 代表着我们向社区伸出的橄榄枝。当我们为 Kubernetes 创建商业和开源 Ingress 控制器时,已经意识到这项工作非常复杂,而且与社区版 Ingress(同样基于 NGINX 构建)有很大区别。这种差异会提高社区开发者的理解门槛,影响 NGINX 的生态健康。

很明显,Gateway API 终将取代 Kubernetes 架构中的 Ingress 控制器。因此,我们决定改变既往方法,将之前仅在开源版本中提供的 NGINX Kubernetes Gateway 作为下阶段的 Kubernetes 网络开发重点(也是为了与不断发展的行业标准保持同步)。该网关将被集成并扩展至其他 NGINX 产品,优化 Kubernetes 上的开发者体验。

几年前,我们推出了 NGINX Amplify,一款用于 NGINX fleet 监控和遥测的 SaaS 产品。虽然没有大力宣传,但 Amplify 仍然得到众多开发者的喜爱和支持。无论过去还是现在,Amplify 都免费供大家使用。作为现代化承诺的一部分,我们正在为 Amplify 添加更多新功能,希望能让它成为值得依赖的可靠工具,帮助大家实现对 NGINX 产品的规模化启动、监控与管理。除了监控 NGINX 实例之外,Amplify 还将帮助您完成 NGINX 部署配置、脚本应用以及故障排查等日常任务。

我们还在着手发布 NGINX Agent。通过这款能够与 NGINX 开源实例一同部署的轻量级应用程序,您可以享受到多种以往仅供商业版使用的功能,例如动态配置 API。使用 NGINX Agent,您可以在更多用例中使用 NGINX 开源版,获得更大的灵活性空间。其中还将囊括更为精细的控件,帮助您扩展应用程序与基础设施。Agent 将帮助大家在 NGINX 的管理、部署和配置方面做出更明智的决策。我们正在努力推进开发工作,并将在完成后第一时间向大家汇报。

展望未来

一年为期,欢迎大家监督我们是否践行了承诺。我们也期望听到您的真实需求,并加入 Slack 上的 NGINX 社区频道(https://community.nginx.org/joinslack)。另外,也欢迎大家在我们的 GitHub 仓库(https://www.github.com/nginxinc)上发表评论、提交 PR。

原文链接:

https://www.nginx.com/blog/future-of-nginx-getting-back-to-open-source-roots/