[Topic DIscussion] 程序员激辩用Rust能否改写CrowdStrike引发的最大IT故障的结局
Tofloor
poster avatar
f@deepin
deepin
2024-07-25 19:55
Author

但我们必须接受这样一个事实:​这次代码 bug 只是特定的触发因素,就算换一个触发因素也可能会产生类似的恶果​。本次全球宕机事件的根本原因,在于配置变更的发布流程。

根据 SRE 101(或 DevOps,随便你怎么叫)规定,配置变更必须分阶段进行,以缓慢和受控的方式部署,并在每个步骤进行验证。这些变更应该先在很小的范围内进行验证,然后再向全球推送,而且每次推送都应是渐进的。

考虑到 Falcon 的关键性以及 bug 可能带来的巨大影响,我很难相信 CrowdStrike 没有对部署进行任何验证。但根据 CrowdStrike 最新更新的事后分析来看,他们确实没有进行任何形式的测试或金丝雀部署(在将更改推广到整个服务集群之前,先把更改推广到一小部分用户进行测试),这实在是令人难以置信的疏忽。

所以说,CrowdStrike 的部署实践是造成此次事件的罪魁祸首——也就是说,这次宕机事件是一个流程问题,而不是代码或技术问题,改用 Rust 也无济于事。

https://mp.weixin.qq.com/s/sWxIq4OniwZLpOISIqdKIw

Reply Favorite View the author
All Replies
f@deepin
deepin
2024-07-25 20:04
#1

流程比具体的编程语言更重要

Reply View the author
璀璨星空
deepin
2024-07-25 20:06
#2

菜就是菜别怪语言shamed

Reply View the author
HualetWang
deepin
2024-07-25 20:09
#3

Rust 能部分避免这次事件出现的内存溢出问题, 流程能部分避免出现问题以后不出现大规模事故。 要分开来看。

Reply View the author
乾豫恒益
deepin
2024-07-26 10:36
#4

所有讨论都基于:所属公司的“无心之失”这个层面。

如果这个前提不成立,用啥语言都是一个结果或是多个结果。

网上有大量的“战前测试”之说,就是基于“有意为之”的前提。。。

这么多聪明而且伟大的程序大佬们,仅从技术层面讨论,意义不大的。。。

再严谨的技术,也无法规避“有意为之”。。。

Reply View the author
genuine2015
deepin
2024-08-06 18:29
#5
HualetWang

Rust 能部分避免这次事件出现的内存溢出问题, 流程能部分避免出现问题以后不出现大规模事故。 要分开来看。

但是即使Rust,也不排除通过panic unwind来让系统关键进程退出,或者通过unsafe代码触发内核级别的野指针解引用

Reply View the author