博客 | NGINX

NGINX 的未来: 回归开源本源

NGINX-F5-horiz-black-type-RGB 的一部分
Rob Whiteley 缩略图
罗布·怀特利
2022 年 8 月 23 日发布

当你玩得开心的时候,时间就过得很快。 因此很难相信 NGINX 如今已经有 18 岁的历史了。 回顾过去,社区和公司共同取得了许多成就。 我们最近达到了一个巨大的里程碑 - 截至撰写本文时,55.6%的网站都由NGINX提供支持(无论是通过我们自己的软件还是基于NGINX构建的产品)。 我们也是市场份额第一的网络服务器。 我们对此感到非常自豪,并感谢 NGINX 社区给予我们如此强烈的信任。

我们也越来越认识到开源软件正在继续改变世界。 越来越多的应用采用开源源代码构建。 从彭博终端和新闻到华盛顿邮报、Slack、Airbnb、Instagram 和 Spotify,全球数以千计的最知名品牌和资产都依赖 NGINX 开源来支持他们的网站。 在我自己的生活中——在工作会议中使用 Zoom,晚上看 Netflix——我可能每天 80% 的时间都在使用基于 NGINX 构建的应用。

NGINX 只是开源成功故事的一个元素。 如果没有这些令人惊叹的开源项目,从 Kubernetes 和容器到 Python 和 PyTorch,从 WordPress 到 Postgres 再到 Node.js,我们将无法构建数字世界,也无法控制和管理物理世界。 开源改变了我们的工作方式。 GitHub 上有超过 7300 万名开发者,他们总共合并了超过 1.7 亿个拉取请求 (PR)。 这些 PR 中的很大一部分都位于具有开源许可证的代码库中。

我们很高兴 NGINX 在开源的崛起和成功中发挥了如此重要的作用——我们打算继续努力并回馈社会。 与此同时,我们需要反思我们的开源工作并适应运动的不断发展。 从开源中获利的公司的商业模式有时会引起争议。 这就是为什么 NGINX 一直试图明确什么是开源、什么是商业。 最重要的是,这意味着我们永远不会对我们在软件的开源版本中包含的功能或性能收取费用。

开源正在快速发展。 NGINX 也在不断发展。

我们现在意识到,我们需要认真思考对开源的承诺,在我们的开源产品中提供更多的价值和功能,当然,也要提高我们在商业领域的竞争力。 我们不能继续像过去一样收取同样费用,因为世界已经改变——一些仅包含在我们的商业产品中的功能现在已成为开源开发者的必备条件。 我们还知道,开源安全是开发人员最关心的问题。 因此,我们的开源项目需要与我们的商业产品一样安全。

我们也必须承认现实。 在内部,我们习惯说开源并不真正适合生产,因为它缺乏功能或可扩展性。 一段时间以来,世界一直在证明我们的观点是错误的:成千上万的组织在生产环境中运行 NGINX开源软件。 这是一件好事,因为这表明他们对我们的开源版本有多么信任。 我们可以在此基础上继续发展。

事实上,我们一直在对我们的核心产品进行这样的改进。 对于那些说 NGINX 原有产品系列已经过时的人,我想说你们没有密切关注我们:

  • 对于核心的NGINX开源软件,我们不断添加新特性和功能并支持更多的操作系统平台。 我们将在下一版本中推出两项针对 Web应用和流量的安全性和可扩展性的关键功能: HTTP3 和 QUIC
  • NGINX 世界中一个安静但极具创新性的角落是NGINX JavaScript (njs) ,它使开发人员能够将 JavaScript 代码集成到 NGINX HTTP 和 TCP/UDP(流)模块的事件处理模型中,并扩展 NGINX 配置语法以实现复杂的功能。 我们的用户做了一些非常了不起的事情,从创新的缓存清除和标头操作到对 MQTTv5 等更高级协议的支持。
  • 我们的通用 Web应用服务器NGINX Unit是由 NGINX Open Source 的原作者Igor Sysoev构思的,并且它在不断发展。 Unit 在我们对现代应用和现代应用堆栈的愿景中占据着重要的地位,远远超出了我们对数据平面和安全性的主要关注点。 在开发 Unit 的过程中,我们正在重新思考应如何为不断发展的 Web 构建应用,并赋予其更多云原生功能以及为分布式和高度动态的应用程序设计的功能。

现代应用程序参考架构

我们希望继续尝试并推动各种方法,以帮助我们的核心开发人员更高效、更轻松地部署现代应用。 去年在Sprint 2.0 上我们发布了NGINX 现代应用参考架构(MARA),我很高兴地宣布它最近以 1.0.0 版本的形式全面上市MARA是一套经过精心策划和深思熟虑的工具堆栈,其中包括 Kubernetes,我们将它们连接在一起,以便于以代码形式部署基础设施和应用架构。 只需单击几下,您就可以配置和部署 MARA 参考架构,该架构集成了创建生产级云原生环境所需的一切 - 安全性、日志记录、网络、应用服务器、配置和 YAML 管理等。

NGINX 现代应用参考架构拓扑图

MARA 是一种模块化架构,并且是经过精心设计的。 您可以选择自己的冒险,并从现有模块中设计一个可以实际运行应用的定制参考架构。 社区支持我们的想法,我们已经与许多创新技术公司在 MARA 上进行了合作。 Sumo Logic 已将其日志记录功能添加到 MARA,而 Pulumi 则贡献了用于自动化和工作流程编排的模块。 我们希望,借助 MARA,任何开发人员都可以在几分钟内启动并运行完整的 Kubernetes 环境,并配备所有支持部分,确保安全,且可以随时部署应用程序。 这只是一个例子,说明我们如何能够齐心协力推动行业的重大举措。

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

每年,在我们的虚拟用户大会 NGINX Sprint 上,我们都会为来年做出新的承诺。 今年也不例外。 我们对未来十二个月的承诺可以用三个词来概括:现代化优化扩展。 我们旨在确保这些不仅仅是商业流行语;我们针对每一个都有实质性的计划,我们希望您能让我们信守承诺。

承诺#1: 实现我们的方法、存在和社区管理的现代化

显然,我们正在迅速更新我们的代码并推出新的产品和项目。 但现代化不仅仅涉及代码——它还包括代码管理、决策透明度以及我们如何在社区中展现自己。 虽然从历史上看,NGINX 开源源代码库一直在 Mercurial 版本控制系统上运行,但我们认识到开源世界现在存在于 GitHub 上。 展望未来,所有 NGINX 项目都将诞生并托管在 GitHub 上,因为这是开发人员和开源社区工作的地方。

我们还将对 NGINX 项目的治理和管理方式进行现代化改造。 我们承诺对贡献更加开放,我们的管理更加透明,并且更加平易近人。 我们将遵循现代开源工作的所有预期惯例,重建我们的 GitHub 形象,为我们所有的项目添加行为准则,并密切关注社区反馈。 作为现代化承诺的一部分,我们在 Slack 上添加了 NGINX 社区频道。 我们将安排我们自己的专家在该频道解答您的问题。 而且,你们,以及整个社区,也将通过你们日常工作中使用的通讯工具,互相帮助。

承诺#2: 优化我们的开发人员体验

开发人员是我们的主要用户。 他们构建并创建了让我们成为现在的样子的应用。 我们的宗旨一直是NGINX易于使用。 这基本上是正确的——NGINX 不需要花费几天的时间来安装、启动和配置。 话虽如此,我们可以做得更好。 我们可以通过缩短学习曲线和简化配置过程来加速开发人员在我们产品上体验的“价值实现时间”。 我所说的“价值”是指在生产中部署能够完成真正有价值的事情的代码,仅此而已。 我们将通过简化安装体验、改进文档以及增加社区论坛的覆盖范围和影响力来改进我们的开发人员体验。

我们还将发布一款与 NGINX 开源原生集成的新型 SaaS 产品,帮助您在几秒钟内使其变得有用且有价值。 无需注册、无需大门、无需付费墙。 该 SaaS 将永久免费使用。

此外,我们认识到,许多被开发人员视为必需品的关键功能对于 NGINX Open Source 和 NGINX Plus 来说并不属于付费范围。 例如,DNS 服务发现对于现代应用程序至关重要。 我们的承诺是将这些关键功能添加到 NGINX 开源中并免费提供。 我们尚未决定移动所有功能,我们需要您的意见。 告诉我们如何优化您作为开发人员的体验。 我们正在听。

承诺#3: 扩展 NGINX 的功能和能力

尽管 NGINX 如今已经很流行,但我们知道,如果我们希望十年后仍然流行,就需要不断改进。 我们的雄心勃勃的目标是:我们希望创建一个完整的 NGINX应用和支持功能,以大规模管理和操作现代应用。

到目前为止,NGINX 主要用作第 7 层数据平面。 但开发人员必须在 NGINX 周围搭建大量框架才能使其正常运行。 您必须连接自动化和 CI/CD 功能、设置适当的日志记录、添加身份验证和证书管理等等。 我们希望更好地扩展 NGINX,让测试和部署应用的所有主要要求都由一个或多个与 NGINX 无缝集成的高质量开源组件来满足。简而言之,我们希望在堆栈的每一层都提供价值,并使其免费。 例如,如果您使用 NGINX Open Source 或 NGINX Plus 作为 API 网关,我们希望确保您拥有管理和扩展该用例所需的一切 - API 导入、服务发现、防火墙、策略规则和安全性 - 所有这些都可作为高质量的开源选项使用。

总而言之,我们的梦想是围绕 NGINX 构建一个生态系统,延伸到应用管理和部署的各个方面。 MARA是构建该生态系统的第一步,我们希望继续吸引合作伙伴。 我的目标是,到 2022 年底,整个预连接的应用程序可以在 NGINX 环境中几分钟内启动并运行,并配备全套功能——分布式跟踪、日志记录、自动扩展、安全性、CI/CD 挂钩——所有功能都已准备好执行工作。

介绍 Kubernetes API Gateway、全新 Amplify 和 NGINX 代理

我们致力于这一切。 这是我的三个承诺的三笔定金。

  1. 今年早些时候,我们基于 Kubernetes API Gateway SIG 的参考架构推出了 NGINX Kubernetes Gateway<.htmla>。 这使我们的产品系列更加现代化,并使我们与云原生的持续发展保持一致。 NGINX Kubernetes Gateway 也是我们向社区伸出的橄榄枝。 当我们为 Kubernetes 创建商业和开源 Ingress 控制器时,我们意识到事情变得复杂,它们都不同于社区 Ingress 解决方案(也是基于 NGINX 构建的)。 如此多的选择让社区感到困惑,并让我们陷入了困境。

    很明显,Gateway API 将取代 Kubernetes 架构中的 Ingress 控制器。 因此,我们正在改变我们的方法,并将 NGINX Kubernetes Gateway(仅作为开源产品提供)作为我们 Kubernetes 网络工作的重点(与不断发展的标准保持同步)。 它将集成并扩展到其他 NGINX 产品中,并优化 Kubernetes 上的开发人员体验。

  2. 几年前,我们推出了NGINX Amplify ,一种针对 NGINX 集群的监控和遥测 SaaS 产品。 我们实际上并没有大力宣传它。 但成千上万的开发人员发现了它并且至今仍在使用它。 Amplify 过去是免费的,现在仍然是免费的。 作为我们现代化承诺的一部分,我们正在为 Amplify 添加大量新功能。 我们的目标是让它成为您值得信赖的副驾驶,以便实时支持、监视和管理大规模 NGINX 产品。 Amplify 不仅会监控您的 NGINX 实例,还会帮助您配置、应用脚本和排除 NGINX 部署故障。
  3. 我们正在推出 NGINX Agent,这是一款与 NGINX 开源实例一起部署的轻量级应用。 它将包括以前仅在商业产品中提供的功能,例如动态配置 API。借助 NGINX Agent,您将能够在更多用例中使用 NGINX 开源,并且具有更大的灵活性。 它还将包括更精细的控制,您可以使用它来扩展您的应用和基础设施。 Agent 可帮助您就管理、部署和配置 NGINX 做出更明智的决策。我们正在努力开发 NGINX Agent - 请关注未来几个月内发布的博客,了解其可用性!

展望未来

一年后,我希望你会问我这些承诺。 如果我无法报告这三个方面的真实进展,那么请让我兑现诺言。 请理解——我们已经做好准备与大家进行交谈。 你是我们最好的产品路线图。 请参加我们的年度调查。 加入NGINX 社区 Slack并告诉我们您的想法。 在我们的GitHub repo上对项目进行评论并提交 PR。

这将是伟大的一年,有史以来最好的一年。 我们期待收到您的更多消息,也请相信我们也会继续努力。 帮助我们帮助您。 这将是伟大的一年,有史以来最好的一年。 我们期待收到您的更多消息,也请相信我们也会继续努力。


“这篇博文可能引用了不再可用和/或不再支持的产品。 有关 F5 NGINX 产品和解决方案的最新信息,请探索我们的NGINX 产品系列。 NGINX 现在是 F5 的一部分。 所有之前的 NGINX.com 链接都将重定向至 F5.com 上的类似 NGINX 内容。”