(评论)
(comments)
原始链接: https://news.ycombinator.com/item?id=39356920
为了进一步详细说明 Antithesis 如何使用确定性模拟来捕获复杂的错误,我们假设我们有一个由三个副本组成的分布式系统,每个副本都有自己的数据库副本和网络连接。 以下是其在常规操作期间的典型工作方式:
步骤1:客户端向服务器A发送请求,服务器A在本地执行该请求,并通过网络将其传播到其邻居服务器B。
步骤 2:对网络中的每个节点重复步骤 1,从而导致所有副本的更新。
在此通信阶段,可能会发生导致状态不一致的各种事件。 网络延迟可能导致客户端命令无序执行,时钟偏差可能导致副本之间的时间线不同,并且复杂环境中可能会出现其他异常行为。 为了识别和隔离这些错误,Antithesis 创建了该场景的数千个虚拟副本,包括初始状态或底层网络消息传递时间顺序的变化。
通过再现这种场景的潜在无限数量的随机执行,Antithesis 试图暴露和再现任何潜在的争用源,以揭示可能出现的任何和所有错误。 通过在虚拟机管理程序提供的安全沙箱内重现这些错误和/或不完整实现的行为,开发和运营团队可以详细了解逻辑在极端极端情况下的行为方式。 如果没有确定性地模拟数百万个调用路径,这种性质的错误可能会在系统的整个生命周期中保持隐藏状态。 借助此功能,像 FoundationDB 这样的分布式数据库供应商可以利用这些技术让客户确信他们的架构不会表现出由这些类型的错误导致的异常和不良行为。
正如 Will Dewaugh 所指出的,与 Antithesis 相关的一个关键挑战与同时操作数十亿个独立虚拟以执行数十亿个场景并验证数万亿个执行结果所需的硬件和计算资源量有关。 然而,尽管面临这一挑战,确定性地模拟复杂分布式系统数百万次迭代的能力允许深入反思其基本特征,从而为这些系统提供前所未有的洞察力,并带来增强安全性、弹性和运营效率的机会。 这些功能为数据库管理员和设计人员提供了新颖的工具,使他们能够
I feel like the idea of the legendary "10x" developer has been bastardized to just mean workers who work 15 hours a day 6.5 days a week to get something out the door until they burn out.
But here's your real 10x (or 50x) productivity. People who implement something very few people even considered or understood to be possible, which then gives amazing leverage to deliver working software in a fraction of the time.
reply