跳至主要内容
Deno 2 终于来了 🎉️
了解更多

2023 年 8 月 22 日 Deno Deploy 事后分析

2023 年 8 月 22 日,从协调世界时 (UTC) 07:00 开始,到 08:30 结束,为 deno.comdeno.land 提供服务的网站遭受了 分布式拒绝服务 (DDoS) 攻击。此攻击不仅影响了 deno.com 和 Deno Deploy 仪表盘用户,还影响了通过 deno.land/xdeno.land/std 上的 HTTPS URL 导入包的 Deno 运行时用户。

我们真诚地为此次攻击对我们基础设施造成的任何中断表示歉意。我们已采取措施,以防范未来发生此类攻击,并将继续坚定地致力于为 Deno Deploy 和任何依赖我们基础设施进行依赖管理的软件提供可靠的服务。

影响

在 90 分钟的时间里,Deno Deploy 管理控制台以及 deno.comdeno.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.comdeno.land 上的网页和模块无法访问。

值得庆幸的是, “部署” 之间的资源隔离(跨项目和客户的 Deno Deploy 上托管的应用程序版本)有效地保护了 Deno Deploy 上的其他应用程序免受重大影响。

下一步

我们意识到,此次服务中断对许多 Deno 用户(包括 Deploy 和使用 Deno 运行时的用户)产生了影响。我们正在迅速采取措施,确保将来不再出现此类事件。

  • 我们正在提高为遇到异常大量流量峰值的 Deno Deploy 应用程序分配更多资源的能力。
  • 我们正在改进我们的值班流程,以便更快速、更恰当地升级事件。
  • 我们还认识到,在事件期间需要更有效的沟通,并将确保更及时地在 denostatus.com 上添加故障报告。
  • 更广泛地说,我们正在考虑改变托管 Deno 模块代码的方式,以防止 deno.com 和 Deno Deploy 上的事件影响其他 Deno 程序的依赖管理。

再次,我们对这次事件可能对您工作造成的影响表示深深的歉意。感谢您的支持和合作,我们将继续在未来几个月和几年里不断发展和强化 Deno 和 Deno Deploy。

如果您有任何其他问题或疑虑,请 在此处与我们开始对话