← 返回蜂巢洞察

演讲主题:了解渐进性坍塌现象:如何避免连锁故障的发生

Sam Newman探讨了土木工程中“渐进性崩溃”这一概念,以及它如何应用于分布式系统。通过列举一些现实世界中的案例——从1968年Ronan Point大厦的坍塌事故到AWS系统的故障——他为软件领域的从业者提供了重要的韧性工程策略。了解如何加强系统组件的稳定性、隔离故障节点,并减少组件之间的相互依赖关系,从而有效防止灾难性的连锁反应。 作者:Sam Newman

Sam Newman探讨了土木工程中“渐进性崩溃”这一概念,以及它如何应用于分布式系统。通过列举一些现实世界中的案例——从1968年Ronan Point大厦的坍塌事故到AWS系统的故障——他为软件领域的从业者提供了重要的韧性工程策略。了解如何加强系统组件的稳定性、隔离故障节点,并减少组件之间的相互依赖关系,从而有效防止灾难性的连锁反应。

作者:Sam Newman

相关文章

技术实践

如何在Flutter中实现LEGO架构[完整手册]

几乎每个人在某个时候都试过把两块乐高积木拼在一起,即使成年后从未拥有过任何一套乐高玩具。你把一块积木压在另一块上面,听到“咔嗒”一声,它们就固定在一起了。 你很可能从未想过这些积木是如何被制造出来的,使用了什么样的塑料材料,又出自哪家工厂。在那一刻,你只关心一件事:那些凸出的连接部分是否对齐了? 这个看似平凡的小动作,其实就是编写这本手册的整个出发点。现在,请暂时把乐高放在一边,想象一下Flutter项目吧。在这个项目中,肯定存在某个文件,团队里的每个人都暗自害怕去打开它。这个文件负责获取数据、对其进行格式化处理、进行验证,最后将结果呈现出来——而所有这些操作都是在一个巨大的`build()`

阅读全文
技术实践

Linux究竟是如何启动的:从固件到登录界面

在任何运行了 systemd 的机器上打开终端,然后运行以下命令: systemd-analyze 在我正在使用的这台笔记本电脑上,运行该命令后得到的结果是: 启动过程耗时:5.855秒(固件加载时间)+ 8.469秒(引导加载程序加载时间)+ 3.106秒(内核加载时间)+ 12.181秒(用户空间处理时间),总计29.613秒。在进入用户空间后,系统又用了12.175秒才完成启动过程。 将这四个数字相加,得到的结果应该是29.611秒,而不是最后一行显示的29.613秒。这个差异是真实存在的,并非计算错误:`systemd-analyze`在显示结果时会对每个阶段的耗时进行四舍五入处理,因

阅读全文
技术实践

在Linux系统中,系统调用究竟是如何工作的

这是一个简单的C程序。它调用了三次`clock_gettime()`函数,然后向标准输出输出了5个字节。 #include #include #include int main(void) { struct timespec ts; for (int i = 0; i 这两者看起来都属于系统调用。它们都是向内核请求程序本身无法获取的信息:当前时间,以及文件描述符的访问权限。 gcc -O0 -o mystery mystery.c strace ./mystery 2>&1 | grep -c clock_gettime 答案是`0`。 write() 函数被立即执行了,而那三次`clock_

阅读全文