2023 年 8 月 22 日 Deno Deploy 事后分析
2023 年 8 月 22 日,从协调世界时 (UTC) 07:00 开始,到 08:30 结束,为 deno.com
和 deno.land
提供服务的网站遭受了 分布式拒绝服务 (DDoS) 攻击。此攻击不仅影响了 deno.com
和 Deno Deploy 仪表盘用户,还影响了通过 deno.land/x
或 deno.land/std
上的 HTTPS URL 导入包的 Deno 运行时用户。
我们真诚地为此次攻击对我们基础设施造成的任何中断表示歉意。我们已采取措施,以防范未来发生此类攻击,并将继续坚定地致力于为 Deno Deploy 和任何依赖我们基础设施进行依赖管理的软件提供可靠的服务。
影响
在 90 分钟的时间里,Deno Deploy 管理控制台以及 deno.com
和 deno.land
网站无法访问。这也影响了我们位于 deno.land/x
上的第三方模块注册表以及位于 deno.land/std
上的标准库。无法访问注册表可能导致某些 Deno 运行时用户出现构建时错误。
依赖项已缓存或已进行供应商管理的 Deno 应用程序不受影响。除 deno.com
之外的其他已部署并运行在 Deno Deploy 上的应用程序不受影响。
事件时间线
所有时间均为协调世界时 (UTC),发生于 2023 年 8 月 22 日。
- 07:00 - DDoS 攻击开始
- 07:02 - 团队成员收到 deno.com 上错误增加的警报
- 07:10 - 团队成员发现正在进行 DDoS 攻击并开始调查
- 07:41 - 额外团队成员被呼叫协助缓解工作
- 08:21 - 攻击得到缓解,攻击 IP 地址被屏蔽
- 08:29 - 团队确认系统恢复
- 08:59 - 事件正式解决
我们估计从我们的系统首次开始出现故障到完全恢复,大约有 90 分钟的停机时间。
根本原因
对 deno.com
发起了 DDoS 攻击,而 deno.com
托管在 Deno Deploy 上。大量的请求量超过了 Deno Deploy 的扩容能力,无法为该应用程序分配更多资源,导致服务器错误,使托管在 deno.com
和 deno.land
上的网页和模块无法访问。
值得庆幸的是, “部署” 之间的资源隔离(跨项目和客户的 Deno Deploy 上托管的应用程序版本)有效地保护了 Deno Deploy 上的其他应用程序免受重大影响。
下一步
我们意识到,此次服务中断对许多 Deno 用户(包括 Deploy 和使用 Deno 运行时的用户)产生了影响。我们正在迅速采取措施,确保将来不再出现此类事件。
- 我们正在提高为遇到异常大量流量峰值的 Deno Deploy 应用程序分配更多资源的能力。
- 我们正在改进我们的值班流程,以便更快速、更恰当地升级事件。
- 我们还认识到,在事件期间需要更有效的沟通,并将确保更及时地在 denostatus.com 上添加故障报告。
- 更广泛地说,我们正在考虑改变托管 Deno 模块代码的方式,以防止
deno.com
和 Deno Deploy 上的事件影响其他 Deno 程序的依赖管理。
再次,我们对这次事件可能对您工作造成的影响表示深深的歉意。感谢您的支持和合作,我们将继续在未来几个月和几年里不断发展和强化 Deno 和 Deno Deploy。
如果您有任何其他问题或疑虑,请 在此处与我们开始对话。