0%

听说 CF 弃坑 NGINX 了?

没有意外,也没有惊喜

弃坑 NGINX 的,CF 不是第一个,也不会是最后一个。

有点看头的是,用 rust 重新撸了个 Pingora 来替换,不过,披露出来的信息量也不大,没啥惊喜。

不意外

作为一款开源软件,其生命力来源于:

  1. 开发者
  2. 用户

开发者,是生产者,可以发展完善软件;用户,是消费者,不断拓展开源软件的应用场景,实现开发者的价值。二者互相成就的过程,就是开源软件的生命力。

近几年,业界各种诟病 NGINX 的声音越来越多,而 NGINX 选择性的忽略了这些声音(也不影响其继续闷头赚钱)。

作为开发者之一,我能感受到的是,有那么一批开发者,以肉眼可见的速度,一个个用脚投票,逃离了 NGINX 这个坑。包括,我也是其中一员。

尽管,从统计数据看,NGINX 的市场份额还在涨,用户量还是很健康,只是在开发者眼中,NGINX 已经不再诱人。

作为 CF 这种,同时具备开发者和用户双重角色的,选择弃坑 NGINX,在我看来一点也不意外。毕竟 CF 定位的是科技创新,不是求稳的网络运营商,相对来说,开发者的声音会被更多的考虑。

没惊喜

尽管 CF 的博客,有说明弃坑的理由,以及用 Rust 重新撸的好处,不过,在我看来,没多少信息量。

这些个槽点,优势,算不上新闻。在我看来,也就表达一个意思,我 CF 真的干了,他们说的是对的,没骗人。

这些年 Rust 很吸人眼球,不少的开发者跃跃欲试。一个新的语言,涌入了一批批开发者,很自然的就会出现一阵风潮,把现有的轮子重新撸一遍,用 Rust 撸一个 NGINX 的替代品,早晚的事。

我更关心这两个:

  1. 替换的完成度
    原文只说了,1 trillion requests a day,看起来是个挺大的数字,说明并不是玩具,是真实的生产了哟
    但是,原有的 NGINX 还剩多少呢,这个没有看到。
  2. 投入了多少人力
    这个应该更加机密一些,一般都不会公开说。如果有了解内幕的,可以私下透露~

像 CF 这种基于 NGINX 深耕多年的庞大系统,要完整替换,肯定不是一朝一夕搞得完的。

个人不负责任的猜测,应该还只是部分相对简单场景的尝试,还是有大量的老 NGINX 在运行的。

原来在 NGINX 上写下的一大坨 c 和 Lua 代码,要用 Rust 全部重写?想想都觉得很酸爽。

还是蛮期待 CF 的后续,看看他们是如何完成老代码的迁移,真的全部用 Rust 重写?

两层架构

现代的网关,已经很复杂了,在转发之上,承载了非常多的流量管控能力,而且随着 Service Mesh 愈演愈烈,网关上承载的逻辑,越来越贴近业务语义。

尽管在云原生浪潮中,网关承载的复杂流量管控,也开始标准化, 一个 yaml 配置走天下。

然而,标准化配置只能覆盖大部分常见的场景,真实的情况下,还充斥着大量的定制化需求。

这就依赖网关软件能提供方便的定制能力,也就是说,除了网关自身的基础实现,还需要一套方便的机制,能够方便的实现定制需求。

NGINX 世界里,标准的 c module 扩展方式成本很高,于是有了 OpenResty 通过 Lua 来完成定制需求。Envoy 世界里,标准的 c++ filter 开发门槛也是很高,于是也提供了 Lua,ext_proc,Wasm 等多种扩展方式。

CF 的 Pingora 怎么搞呢?绑死在 Rust 这一颗树上?

我在干啥

MOE,MOSN on Envoy,MOSN 的新一代架构。

包含两层含义:

  1. 基于 Envoy 提供 Go 语言扩展能力
  2. 复用 MOSN 成熟的扩展机制/能力

为什么搞 MOE?

有机会的话,也可以写个长篇大论,简单说,就是看好 Envoy 和 Go。

能搞成么?

所谓的行业趋势,只是大家一个个用脚投票走出来的,走着看呗。

MOE 正在开源筹备中,很快会有第一版,欢迎感兴趣的朋友,一起来玩。

最后

借用一个图,我的理解,NGINX 已经到了高峰期,而 rust 呢?或许还没有到期望的顶峰。

开源世界,如同自然世界,也需要多样性,百花齐放好过一枝独秀。

最后,放个梗,张华考上了大学,李萍进了技校,我当了工人,我们都有美好的前途。