公司Rust团队全员被裁,只因把服务写得「太稳定」:“项目0故障、0报警,那养着3个Rust工程师没用啊”

C语言与CPP编程 2025-06-10 09:00

击上方“C语言与CPP编程”,选择“关注/置顶/星标公众号

干货福利,第一时间送达!

最近有小伙伴说没有收到当天的文章推送,这是因为微信更改了推送机制,导致没有星标公众号的小伙伴刷不到当天推送的文章,无法接收到一些比较实用的知识和资讯。所以建议大家加个星标⭐️,以后就能第一时间收到推送了。


编译 | 郑丽媛 出品 | CSDN(ID:CSDNnews)

还记得不久前的那篇《“因为一次成功重写,我们 CTO 彻底封杀了 Rust!”》吗

当时,许多读者留言称这故事“离谱”得像是由 AI 杜撰的,其中就包括了本文的主人公——一位 Reddit ID 名为 Drogus 的开发者一篇用 AI 生成的帖子明显是假的”。

话虽如此,Drogus 却不由得联想到了一段他自己的真实经历,其中某些情节有几分相似Rust 项目做得太成功,反而导致这门语言在公司内部被判了死刑”。


项目背景:一个快速成长的独角兽初创公司

这件事发生在几年前。时,Drogus 刚加入了一家在疫情期间快速成长的独角兽初创公司,主力应用采用 Ruby on Rails 编写,一些视频处理相关工具则用 Node.js 实现当时,这家公司并没有使用如 Rust 或 Go 这样高性能的编译型语言。

Drogus 入职几个月后,公司便计划开发一个实时服务,用于显示用户的在线状态(比如:头像旁的绿点),以及用户当前的操作行为(例如:有 N 个用户正在看演示 X,有 M 个用户在某个市场展台内等)。

这个功能本身并不复杂,只是考虑到用户增长预期,初期就需要支撑起 10 万并发用户虽然这个规模在技术上不算特别困难,但团队中的大多数人都认为 Ruby 显然不适合实现这样的系统


技术选型与基准测试:Rust 脱颖而出

起初,负责该项目的团队倾向用 Rust,不过管理层对此有疑虑,便要求用不同的语言写几个原型服务做个对比测试。

于是,团队决定用 Elixir、Rust、Ruby 和 Node.js 分别写一个原型——不知为何,当时 Go 没有列入候选Drogus 猜测可能是因为那时他在休假所以没人提。

几天后,四个原型都写完了,他们开始对进行性能测试。测试结果属于是意料之中

  • Rust 版本速度最快、内存占用最低

  • Elixir 次之;

  • Node.js 表现还可以,但受限于单线程运行时

  • Ruby 最慢。

值得注意的是,Rust 版本最初存在也一个小 bug:开发者用 async futures 给客户端发消息时,会遍历所有客户端来获取发送通道列表,这在高负载下会阻塞运行时几秒。不过这个问题属于实现细节,对熟悉 Rust 的人来说并不难修复。

但由于写这个 Rust 原型的人是第一次写 Rust,经验不足,而其他语言的原型都是由有经验的开发者完成的——所以,即使有些小 bug,也不是不能理解


从原型到正式上线,Rust 表现亮眼

测试完成后,团队成员讨论了各种语言的性能表现、易用性、在公司内部的适配性等等,最终再次选择了 Rust。很有意思的一点是,写 Rust 原型的那位开发者原本更偏好 Elixir(因为他用过),但实际写完后,投票支持了 Rust。

原因很简单:Rust 太灵活了。

基于评估结果和团队判断,公司最终决定由 Rust 实现该实时服务。而出于项目进度考虑,原本应由独立团队开发的任务,转交给了有 Rust 经验的 Drogus,并由他与 Rust 原型作者合作开发。

为了赶进度,Drogus 决定采用一个类似于数据库的极简设计。在 Rust 中处理 10 万连接不算难事,MVP(最小可行产品阶段也只需要实现基础功能:查询某个用户是否在线、用户在应用的哪个区域;断开连接就视为离线;服务崩了就重启并让客户端重连。

他们把所有实时数据都存储在内存哈希表中,然后通过 Kafka 推送事件供后续分析处理——正如 Drogus 所说:整体来说,这个服务本质上就是一个基于 WebSocket、封装了内存哈希表的 API。

只用了两周时间,他们就完成了 MVP 版本,再花两周部署上线,架设了两台服务器做主备切换。

上线后,服务稳定运行,支撑起 10 万并发用户无压力随后一个月,团队又陆续添加了更多功能,仍然没有出过任何故障


Rust 项目的成功,埋下“危机”种子

然而,随着公司战略的调整,实时相关功能被暂时搁置,该服务也转入维护模式。原本为这个 Rust 项目临时组建的开发团队解散,包括 Drogus 在内的工程师们回到原岗位——而这个 Rust 服务则静静运行在后台,无故障、无宕机,堪称基础设施团队的“梦中情服”

直到几个月后,公司筹备一场大型活动,预计将有 50 万并发用户。但当时 Drogus 和另一位原型作者已经忙于其他项目管理层就决定招聘 3 名 Rust 工程师提升这个服务的性能。

不得不说,这些新来的 Rust 开发者确实经验丰富,很快就发现性能瓶颈其实在系统配置层面。稍微调整了内核参数、负载均衡设置后,这个服务便可支撑:

 100 万并发(p99 延迟仅 10ms)

 200 万并发(p99 延迟约 25ms)

优化成果令人惊叹,但也带来了问题:这个服务太稳定了,导致 3 名 Rust 工程师无事可做。


新管理层上任,Rust 被全面封禁

原本, 招聘 Rust 团队的那位高层是希望在公司内部推广 Rust 的

然而,随着公司从 30 人扩张到 1000 人组织架构也变动频繁,那位支持推广 Rust 的高层选择离职,新上任的主管则对该 Rust 服务的态度完全不同。

他最大的不满竟然是:“这个服务没啥事做了,养着那 3 个 Rust 工程师没用啊。

不仅如此,这位新主管也根本不采纳 Drogus 等工程师提出想在公司内继续推广 Rust、将其用于事件处理、实时通知等需求的建议,而是转头强硬地通知那 3 位 Rust 工程师:“要么学 Ruby 或 Node.js,要么你们另谋高就。

结果,这 3 位 Rust 开发者全部离职。Drogus 对此惋惜不已:“可惜,真的太可惜了。”

某种程度上,Drogus 也能理解管理层担心 Rust 相对小众、人才难招等问题。但他也指出,公司放弃了一个原本可以深入推广 Rust 的宝贵时机:不仅已有成熟服务和三位经验丰富的 Rust 工程师,还有多个实际业务场景亟需高性能组件。

在 Drogus 看来,整件事最讽刺的地方莫过于:如果这个 Rust 服务没那么成功,反而可能会保住这个团队。如果他们需要花几个月去优化性能,和公司里其他服务一样“正常拖延”,管理层大概也就不会这么关注了。

换句话说——正因为这个 Rust 服务“太成功”,没有维护成本,才被公司高层视为“冗员项目”;如果它性能差,需要持续地调优维护,反而更能“证明团队价值”?


更荒唐的后续:Rust 服务被强行用 Node.js 重写

最终,管理层决定将该 Rust 服务重写为 Node.js 版本,以便公司现有团队维护。

然而,第一次重写尝试失败了。

坦白说,我知道用 Node.js 实现这类服务是可行的——但前提是你要重构架构。Drogus 解释道,Node.js 受限于单线程运行时本就不适合高并发想要靠它支撑百万连接,就不能再像 Rust 那样用单进程单服务器搞定,而是要搞多进程、多节点、队列或数据库做中转。

据说,当时负责用 Node.js 重写的那位开发者选用了一个第三方平台 Ably 来托管 WebSocket 连接,以避免自行处理复杂逻辑。两个月后大家发现,这个方案的性能远远不达标。

也就是说,虽然 Node.js 不是做不到,但远比用 Rust 实现要复杂得多。

最后关于这个 Rust 服务的近况,Drogus 只遗憾表示“它现在仍在运行——只在需要扩展时才会被提起,但由于没有维护团队,所有的扩展需求最终都会被放弃或改用次优方案替代。


引起开发者热议:所有公司都会这样

Drogus 的帖子发布后,同样引起了许多开发者的关注和讨论,其中有不少人也分享了类似的经历:

  • 我曾经把一个服务从 PHP 改写成 Rust,也遇到了类似的问题。这个服务从不需要维护,也没有开发人员需要对其进行维护。于是,作为公司中唯一的 Rust 服务,它自己就成了一个问题——但我们又能做什么呢?毕竟悄无声息的成功很难向管理层解释明白。

另外,也有部分开发者指出,这种事情几乎在所有公司都会发生:

  • 这不过是司空见惯的事:企业不断发展,新的管理者上任,他们做出“明智的管理决策”,却破坏了企业的创新能力,于是你所看到的唯一创新要么是给已有的产品贴上新标签,要么就是买来的现成产品……所有公司都会经历这样的过程,只不过这家公司比谷歌、IBM 或微软走得更快而已

  • 我不会把这家公司 Rust 使用量的下降归咎于其成功。这显然(如文中所述)是个别高层未能看到其益处或机会所致。谁知道实际情况到底怎样呢,有时事情在现实中并不像从个人视角分享的那样清晰。不过我觉得这件事倒是可信的,确实很多决策者往往对不理解的技术产生抵触情绪,尤其是那些不像「AI这样时髦的新技术。

那么,你是否也经历过类似事情,对于这件事又有什么看法呢?

原文链接:https://www.reddit.com/r/rust/comments/1kp74t2/rust_success_story_that_killed_rust_usage_in_a/

推荐阅读  点击标题可跳转

1、C++训练营,来了!

2、HarmonyOS 学习资料分享(无套路免费分享)

我组建了一些社群一起交流,群里有大牛也有小白,如果你有意可以一起进群交流。

欢迎你添加我的微信,我拉你进技术交流群。此外,我也会经常在微信上分享一些计算机学习经验以及工作体验,还有一些内推机会

加个微信,打开另一扇窗

感谢你的分享,点赞,在看三  

C语言与CPP编程 C语言/C++开发,C语言/C++基础知识,C语言/C++学习路线,C语言/C++进阶,数据结构;算法;python;计算机基础等
评论
  • 本文主要针对分立方案高速输出电路,由于MOS管、稳压管、PCB布局布线都存在一些寄生电容,这些寄生电容都会影响高速输出电路的占空比,所以本文对这些寄生电容的影响进行简单说明。测试工况:电压:24V,负载类型:阻性负载2K,输出频率:200Khz,要求占空比45%~55%;电路拓扑如下图所示:图1寄生电容分布情况:如下图所示,MOS管寄生电容为Cgd、Cgs、Cds,稳压管寄生电容为Cd;图2而MOS管手册常见的参数如下图所示为Ciss、Coss、Crss(为啥是这些参数,而不改成Cgs、Cgd、
    用户1751282873645 2025-07-08 23:58 179浏览
  • 工业物联网时代,作为一种普遍应用在汽车电子、工业控制与医疗器械等领域中的串行总线通信技术——CAN(Controller Area Network)总线基于消息广播模式,通过双绞线传输差分信号,是一种多主控(Multi-Master)的总线系统,具备极强的抗干扰能力、极低的传输延迟和高速数据传输性能。一种典型的CAN总线网络示意图在CAN总线通信过程中,CAN收发器作为物理层上的接口芯片,位于CAN控制器(MCU)和CAN总线之间,主要负责将来自CAN控制器(MCU)的数字信号与总线上的差分信号
    华普微HOPERF 2025-07-04 14:44 1956浏览
  •   去年底,整理旧物,扔的扔了,留的留了,这不,十四个几十年前留下来的工业级小型排风扇,下图左上角处,又拿出来,下决心把它们再利用发挥余热。  呵呵,这回不是拆而是装了。怎么装呢?组装、固定、机架、接线,简单,也不简单,原则是一切都用手头现有废旧材料,争取做到一个不买!DIY,废物利用,如今时髦的话,以旧换新!摆上台面,找来木条,策划怎么做?  比一比,看一看,觉得合适,按尺寸锯开木条。  咋走线?想到了,在有限空间内弯转,从一个螺丝孔穿出来,整体拼凑整齐。   咋固定风扇呢?找来木片条,锯断,
    自做自受 2025-07-06 21:37 512浏览
  •   几个月前,一个老旧的大风扇的散风圈(俺不知其专业名称)的开关按钮不起作用,就是锁不住了,散风圈也就不转了。今天,有空,就拿到工作台,开始拆解分析故障原因,能修好更好。  看看,用的时间够长了吧!皮肤都变颜色了。看标签,合格品2005年的。  底部四个螺丝固定,很容易拆开了。  看到掉下一个标签圆纸片,拿起来看看,是那个横向摇头的电机的。  找到那个按钮开关位置  应该是开关内部的有缺陷了。把它拆下来,一看就是正规合格品。  拿出我日积月累的分类藏宝盒,呵呵,找到一款螺丝孔位正好合适的。   
    自做自受 2025-07-10 11:16 279浏览
  • 在全球广泛倡导绿色低碳与可持续发展的时代浪潮中,新能源汽车作为实现节能减排的重要载体之一,正受到各国政府与企业的加速培育。在此背景下,为提升新能源汽车的市场渗透率,我国已率先进入充电基础设施建设的加速期,从私人专用充电桩到社区公用充电桩,从高速路网补能节点到城市公用充电桩,汽车补能网络正在急速膨胀中。图源:摄图网(已授权)据中国充电联盟(EVCIPA)最新统计数据显示,截止2025年5月份,我国充电基础设施累计数量为1440万台,同比上升45.1%。其中,在2025年1月~5月期间,我国充电基础
    华普微HOPERF 2025-07-09 16:13 243浏览
  • 提要:采用LOXIM的微孔雾化专用芯片LX8201,能突破压电陶瓷驱动电压超标(24伏)的技术难题,满足全球市场对喷雾玩具的电压安规认证要求。玩具行业尤其是喷雾玩具行业内人士都知道,喷雾玩具的压电陶瓷驱动电压超标(常需60-100V)与强制安规标准(中国,日本,欧美,都一样)对玩具电压的限制(≤24V)存在根本性冲突,如果采用“多层压电堆叠(MPA)技术“(比如日本TDK公司),成本将增加至现有微孔雾化片的10倍以上,这个矛盾一直没有得到好的解决。喷雾玩具在国内热销(淘宝/抖音),能卖的原因,无
    Loximonline 2025-07-08 10:55 250浏览
  • 现代人对于影音效果的追求持续增加,在多数影音产品中,HDMI是最为重要的接口,而HDMI 2.1中有一新增功能eARC可以透过HDMI线材来传输数字Audio,除了支持Dolby TrueHD、Atoms等声音格式外,也可以支持8声道喇叭,满足消费者对于声音的追求。新时代的高阶电视都具备支援eARC的功能,然而却有些号称支持的电视产品,因为在设计上的疏忽,造成eARC无法输出8声道Audio,以致eARC的功能大打折扣,对于花大钱欲享受高规格电视的消费者来说自然难以接受,对于该电视品牌也会产生负
    百佳泰测试实验室 2025-07-04 14:42 2017浏览
  • 曾经靠“砍一刀”撕裂传统电商格局的拼多多,如今疲态尽显。数据显示,拼多多今年第一季度实现营收957亿元,同比增长10%,市场预估1016亿元,相比预期低了近60亿元;经营利润为161亿元,相比去年同期下降38%;归属于普通股股东的净利润为147亿元,同比下降47%。与此同时,拼多多市值也坐上了“过山车”。去年市值一度突破 2180 亿美元,力压国内电商巨头阿里,今年(7月1日收盘)市值仅余 1497.59 亿美元,已不足阿里(市值2718.63亿美元)一半
    用户1742991715177 2025-07-05 14:24 405浏览
  • 在万物互联浪潮席卷全球的时代背景下,数字气压传感器作为物联网环境感知层的核心硬件之一,正凭借精准、实时的数字化气压测量能力,快速消融着现实世界与数字世界之间的沟通壁垒,其不仅能为物联网终端提供与环境进行对话的“媒介语言”,还能与其他环境感知技术形成协同效应,是物联网社会实现高效沟通的基石之一。数字气压传感器主要通过检测压敏元件在不同环境气压下的电信号变化,实现对气压的测量,并能直接输出数字信号以满足物联网终端对气压数据的传输、储存与记录等需求。现阶段,由于数字气压传感器具备着低功耗、高精度、快速
    华普微HOPERF 2025-07-01 09:20 1625浏览
  • 什么是LoRaWAN? LoRaWAN技术及应用LoRaWAN(Long Range Wide Area Network)是一种低功耗、长距离、广域网络通信协议,特别设计用于连接物联网(IoT)设备。LoRaWAN采用无线通信技术,能够覆盖数十公里的范围,提供长时间的电池寿命,适用于智能城市、农业、工业自动化、环境监测,与健康医疗等领域应用。来源: LoRa Alliance一探究竟:LoRaWAN物联网应用优势营运商采用 LoRaWAN 具有多方面的优势,除了长距离覆盖范围及低功耗的特点外,还
    百佳泰测试实验室 2025-07-10 14:51 254浏览
  • 在数字化、自动化高速发展的今天,光电耦合器正以一种低调却不可或缺的方式,悄然改变着我们的生活。它不仅是电子电路中的“安全卫士”,更是连接信号世界的“桥梁”,凭借出色的电气隔离能力,为各类设备提供稳定可靠的信号传输保障。电气隔离——让系统更安全在工业控制系统中,安全始终是重中之重。光电耦合器通过光信号进行电气隔离,能够有效防止高压电流侵入低压控制电路。例如,在智能电网系统中,它广泛应用于电表与通信模块之间,确保数据传输的安全性,防止电网高压对低压设备造成冲击。在电动汽车的电池管理系统(BMS)中,
    腾恩科技-彭工 2025-07-05 13:56 439浏览
  • 在物联网无线通信领域,随着行业应用场景的不断拓宽,同一频段下的设备通信需求正呈指数级增长,然而这一增长趋势却与频谱资源的有限性形成了鲜明对立,信道拥挤、信号串扰与非线性失真等不良现象所造成的“通信压力”正在持续放大。从智能家居的设备互联到工业物联网的实时控制,从智慧楼宇的广域组网到智慧城市的海量数据传输,有限的频谱资源不仅需要满足不断增长的设备通信需求,还需要适配不同场景对速率、时延与可靠性等差异化要求。在此背景下,如何在有限的频谱资源中实现更为稳定的无线通信质量,已成为物联网行业发展路径中的核
    华普微HOPERF 2025-07-07 16:13 541浏览
  • 据知名市场研究机构Counterpoint Research发布的数据概览,2025年第二季度,中国智能手机销量预计将迎来小幅回暖,增长率约为1%。在这场销量微增的背后,华为与苹果两大品牌成为了推动市场前行的核心力量。其中华为手机的表现最为亮眼,数据显示,华为在中国市场的智能手机销量份额实现了12%的同比增长,这一成绩不仅使其成为了当季增长最快的品牌,更助力华为重新夺回销量榜首的位置。相比之下,vivo的表现就有些尴尬了。虽然还是位列第二,但vivo在第二季度的智能手机销量份额同比下降了9%,下
    用户1742991715177 2025-07-09 08:19 192浏览
  • SPI概述ESP IDF中SPI LCD的相关API简单使用LVGL完整代码总结SPI概述当进入嵌入式行业开始,SPI总线是最需要且基础的知识了,它是高速全双工串行总线,可做到同时收发数据。时序和控制根据各家的芯片或者屏幕等设备的数据手册进行阅读和进行编程,比如总线模式就有四种,通过寄存器CPOL和CPHA配置模式CPOLCPHA数据采样时刻适用场景000SCK下降沿,第1个跳变沿采样多数传感器(如BME280)101SCK下降沿,第2个跳变沿采样部分ADC芯片210SCK上升沿,第1个跳变沿采
    二月半 2025-06-29 20:40 1460浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦