NGINX 的未来:回到开源的初心
原文作者:Rob Whiteley of F5
原文链接:NGINX 的未来:回到开源的初心
转载来源:NGINX 官方网站
编者按:
本文发布于 2022 年 NGINX 全球 Sprint 线上大会期间,其中不仅回顾了 NGINX 在过去取得的成就,同时面向来年提出了三项重大承诺和三项重要发布。
NGINX Sprint China 2022 是 NGINX Sprint 全球线上大会的本地分支版本,也是 F5 NGINX 中国区全年最盛大的线上旗舰会议。本次会议预计将于 2022 年 12 月初举办,我们将分享最热门的行业趋势以及 NGINX 的最新动态,并且探讨与 NGINX 以及更多热门开源项目相关的行业案例和最佳实践。NGINX 官方团队也会借此机会与社区进行深入交流,期待听到您的声音和反馈。
我们非常希望有更多的 NGINX 用户参与到会议中来,您可以在 20 分钟的演讲时间内分享任何与 NGINX 相关的内容。欢迎您点击通过表单提交议题,我们期待着与您相约 NGINX Sprint China 2022 线上大会!
愉快的时光总是过得飞快,难以置信 NGINX 至今已走过 18 个年头。回顾过去,我们与 NGINX 社区共同取得了诸多成就。最近我们又达到了一个重要里程碑——截至本文撰写时,55.6% 的网站由 NGINX 提供支持(通过 NGINX 自有软件或基于 NGINX 构建的产品)。NGINX Web 服务器的市场份额排名第一 。我们为此深感自豪,并衷心感谢 NGINX 社区长期以来对我们的高度信任。
与此同时,我们越发认识到开源软件将继续改变世界,愈来愈多的应用将使用开源代码构建。从彭博终端和新闻、华盛顿邮报,再到 Slack、爱彼迎、 Instagram、 Spotify,全球成千上万的知名品牌和企业都依靠 NGINX 开源版来支持其网站。就我个人而言,我白天使用 Zoom 召开工作会议,晚上观看 Netflix ,每天大约 80% 的时间都花在了基于 NGINX 构建的应用上。
然而在开源成功的背后,NGINX 只是幕后推手之一。如果没有从 Kubernetes 、容器到 Python 、 PyTorch,以及从 WordPress 到 Postgres 再到 Node.js 等所有这些令人惊叹的开源项目,我们将无法构建数字世界,也就更无法控制和管理物理世界。开源已经改变了我们的工作方式,在 Github 上超过 7,300 万开发人员共同合并了 1.7 亿余次 PR,其中很大一部分位于带有开源许可证的代码仓库中。
在开源崛起和迈向成功的过程中,很高兴看到 NGINX 发挥了至关重要的作用。我们将继续贡献一己之力,为开源世界的发展添砖加瓦。与此同时,我们必须就自己的开源工作反躬自省,跟上开源运动的持续发展。有些公司有时会因其开源盈利模式引发争议,而这也是 NGINX 一直致力于清晰地界定开源版和商业版的原因。对我们来说,最重要的是:绝不试图在开源软件版本中包含任何功能收费。
开源产业正在快速演进,NGINX 也在不断发展
我们现在意识到必须慎重对待自己的开源承诺,在开源产品中提供更多价值和功能的同时也要提升在商业领域的竞争力。我们不能一味地就过去的功能收费,因为时代已然改变,一些仅在我们商业产品中提供的功能今天已成为开源开发人员必不可少的工具。我们还深知,开源安全性是开发人员的首要考虑事项。因此,我们的开源项目必须像我们的商业产品一样具有安全性。
此外,我们还必须接受现实。在业内,广泛流传的一种说法是开源并不真正满足生产环境的需求,因为它缺乏种种特性及可扩展性。但如今,事实证明这种说法已不合时宜——数以千计的企业正在生产环境中运行 NGINX 开源软件——这是一件好事,因为这充分表明了公司们对我们开源版本的高度信任,我们将带着这份信任再接再厉。
事实上,我们一直在通过核心产品服务大众。如果有人说原先的 NGINX 产品系列已经过时,那我只能说您并没有密切关注我们的动向:
对于核心 NGINX 开源版软件,我们一直在不断添加新特性和功能,并支持更多操作系统平台。在即将发布的下个版本中,我们将通过 HTTP3 和 QUIC 这两大功能来保障 Web 应用以及流量的安全性和可扩展性。
在 NGINX 生态系统中,NGINX JavaScript (njs) 虽声名不显,但别具创新力,它支持开发人员将 JavaScript 代码集成到 NGINX HTTP 和 TCP/UDP(串流)模块的事件处理模型中,并扩展 NGINX 配置语法以实施复杂功能。我们的用户已借助 NJS 做出许多了不起的尝试,从创新的高速缓存和请求头操作到支持 MQTTV5 等更高级的协议。
我们的通用 Web 应用服务器 NGINX Unit 由 NGINX 开源版原作者 Igor Sysoev 构思而成,目前仍在不断发展。Unit 在我们的现代应用和现代应用堆栈愿景中占据着重要地位,甚至远远超越数据平面和安全性等主要关注点。在 Unit 开发期间,我们重新思考了如何为不断发展的 Web 建构应用,提供更多云原生和专为分布式和高度动态应用设计的功能。
NGINX 现代应用参考架构
我们不断实验并探索如何帮助核心开发人员更高效、更轻松地部署现代应用。在去年的 Sprint 2.0 上,我们宣布推出了 NGINX 现代应用参考架构 (MARA),在此很高兴地宣布其最新版本 1.0.0 也已于最近正式发布。MARA 是一个精心设计的工具堆栈,其中包括了 Kubernetes,它支持轻松地将基础架构和应用架构作为代码部署。只需单击几下,即可配置和部署 MARA 参考架构,该架构集成了创建生产级云原生环境所需的一切——安全性、日志记录、网络、应用服务器、配置和 YAML 管理等。
MARA 是一个悉心设计的模块化架构。您可以按照自己的方式使用现有模块,或者利用现有模块设计可实际运行应用的定制参考架构。社区对我们的想法表示大力支持,我们已与许多创新技术公司就 MARA 展开合作。Sumo Logic 已将其日志记录功能添加到 MARA 中,Pulumi 则提供了自动化和工作流编排模块。我们希望在 MARA 的帮助下,任何开发人员都能够在几分钟内启动并运行完整的 Kubernetes 环境——配备所有支持组件,保证安全无虞,且做好应用部署准备。而这只是大家合力推进重大行业计划并取得卓越成效的一个示例。
NGINX 的未来:现代化、优化和扩展
在每年的线上大会 NGINX Sprint 上,我们都会面向来年做出新的承诺。今年也不例外。我们对未来十二个月的承诺可概括为三个关键词:革新、优化和扩展。这些承诺并非吸人眼球的商业噱头;我们已针对每项承诺制定了实质性计划,希望你们能够见证我们兑现承诺。
承诺 1:革新项目治理和社区管理方式,呈现现代化的面貌
显然,我们正在快速革新代码,并引入新产品和项目。但需要革新的不只是代码,还包括代码管理、决策透明度以及我们在社区中的存在方式。之前 NGINX 开源版代码库一直在 Mercurial 版本控制系统上运行,但现在我们认识到 GitHub 是开源世界的中心。展望未来,由于开发人员和开源社区都将在 GitHub 上工作,所有 NGINX 项目都将诞生并托管于 GitHub。
我们还将革新 NGINX 项目治理和管理方式,承诺将提高对贡献的接纳度,提升管理透明度,并进一步拉近与社区的距离。我们将遵循现代开源工作的所有惯例,重建在 Github 上的呈现状态,将这些行为准则添加到我们所有项目中,同时密切关注社区反馈。作为革新承诺的一部分,我们还将在 Slack 上创建 NGINX 社区频道,届时我们将配备自己的专家为大家解疑答惑。当然,社区成员也可通过日常工作使用的通讯工具互相帮助。
承诺 2:优化开发人员体验
开发人员是我们的主要用户,正是他们创建的应用成就了今天的 NGINX,而我们的宗旨始终是确保 NGINX 易于使用。如今,我们已基本实现这一宗旨——用户可以轻松安装、启动并配置 NGINX。但是,我们完全可以做得更好。我们还可通过缩短学习曲线和简化配置过程,帮助使用我们产品的开发人员加速实现价值,这里的“价值”是指在生产环境中部署真正有价值的代码。我们将通过简化安装体验,改善文档,以及扩大我们社区论坛中的覆盖面和影响力来改善开发人员体验。
我们还将发布一款新型 SaaS 产品,该产品与 NGINX 开源版原生集成,可帮助您在几秒钟内启动并运行 NGINX Open Source。您无需注册,本产品没有使用门槛且不必付费,这项 SaaS 服务将永远免费开放。
此外,我们发现开发人员现在高度依赖的许多关键功能,都被纳入了付费版 NGINX Plus 而非 NGINX 开源版之中。例如,对现代应用至关重要的 DNS 服务发现。我们承诺将这些关键功能添加到 NGINX 开源版中,免费提供给大家使用,但我们尚未确定具体要免费开放哪些特性。因此我们需要您的反馈,请告诉我们如何优化开发人员体验,您的声音,我们一直在倾听。
承诺 3:扩展 NGINX 的功能与能力
NGINX 目前备受青睐,但要想十年后还能广受欢迎,就需要不断做出改进。我们为此提出了一个雄心勃勃的目标:创建一个完整的 NGINX 应用和支持功能堆栈,以大规模管理并运作现代应用。
目前,NGINX 主要被用作七层数据平面。但开发人员必须在 NGINX 周围搭建大量脚手架——例如您必须连接自动化和 CI/CD 功能,设置适当的日志记录,添加身份验证和证书管理等等才能让其正常工作。因此,我们希望对 NGINX 进行更出色的扩展,通过为 NGINX 无缝集成一个或多个高质量的开源组件,来满足常见的应用测试和部署要求。简而言之,我们希望堆栈的每一层都具有价值,并向公众免费开放。举例来说,如果您正使用 NGINX 开源版或 NGINX Plus 作为 API 网关,我们希望确保您拥有管理和扩展该用例所需的一切—— API 导入、服务发现、防火墙、策略规则和安全性,并且这些全部都是高质量的开源选项。
总而言之,我们致力于围绕 NGINX 构建一个可以涵盖应用管理和部署方方面面的生态系统。MARA 正是构建该生态系统的第一步,希望能继续吸引更多合作伙伴。我们的目标是到 2022 年年底,在 NGINX 环境中只需几分钟便可启动并运行一个完整的预连接应用,同时提供齐全的配套功能,包括分布式跟踪、日志记录、自动缩放、安全性、CI/CD hook 等。
推出 Kubernetes API Gateway、全新 Amplify 和 NGINX Agent
NGINX 致力于践行承诺,以下是我们对于实现承诺至关重要的三项重大发布。
今年早些时候,我们基于 Kubernetes API Gateway SIG 参考架构推出了 NGINX Kubernetes Gateway。这革新了我们的产品系列,并使我们与云原生的持续发展保持一致。NGINX Kubernetes Gateway 也代表着我们向社区伸出的橄榄枝。我们为 Kubernetes 创建了商业和开源版 Ingress controller,两者与社区 Ingress 解决方案(同样基于 NGINX 构建)有很大区别。其实在创建期间,我们就已意识到这会引发一定的问题,多种选择会让社区产生混淆,并将我们置于不利之地。
很明显,Gateway API 最终将取代 Kubernetes 架构中的 Ingress controller。因此,我们决定改变既有方法,将之前仅作为开源产品提供的 NGINX Kubernetes Gateway 视作未来 Kubernetes 网络开发工作的重点(也是为了与不断演进的行业标准保持同步)。该网关将被集成并扩展到其他 NGINX 产品,优化 Kubernetes 上的开发人员体验。
几年前,我们推出了NGINX Amplify,这是一款用于 NGINX 设备群监控和遥测的 SaaS 产品。虽然我们没有大力宣传 Amplify,但是金子总会发光,如今成千上万的开发人员仍在使用这款产品。无论过去还是现在,Amplify 都免费供大家使用。作为我们革新承诺的一部分,我们正在为 Amplify 添加诸多新功能。我们的目标是使其成为值得大家信赖的助手,帮助您实时对 NGINX 产品进行启动、监控与大规模管理。Amplify 不仅能监控 NGINX 实例,还能帮助您对 NGINX 部署进行配置、脚本应用和故障排除。
我们即将推出 NGINX Agent,这是一款可以与 NGINX 开源版实例一起部署的轻量级应用。它将包含一些以往仅在商业产品中提供的功能,例如动态配置 API。借助 NGINX Agent,您可以在更多用例中更灵活地使用 NGINX Open Source。它还将包含更精细的控件,可供您用于扩展应用和基础架构。此外,NGINX Agent 还可以帮助您就 NGINX 管理、部署和配置做出更明智的决策。目前我们正在努力开发 NGINX Agent,我们将在未来几个月内通过博客公布发布消息,请密切关注!
展望未来
在接下来的一年里,希望大家关注我们的承诺践行情况。如果我没有及时汇报这三项承诺的履行进展,请大家督促我。我们真诚地期待与大家的沟通,您的建议将为我们规划最棒的产品路线。另外,也欢迎大家在我们的GitHub repo 上发表评论和提交 PR。
今年将会是我们有史以来最棒的一年。期待听到大家的更多心声,我们也会积极回应大家的关切。让我们携手并进,共赴未来。
更多资源
想要更及时全面地获取 NGINX 相关的技术干货、互动问答、系列课程、活动资源?
请前往 NGINX 开源社区:
评论