跳到主要内容
Deno 2.4 发布,带来 deno bundle、字节/文本导入、OTel 稳定版等新特性
了解更多

2023年8月22日 Deno Deploy 事后复盘

2023年8月22日,从协调世界时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(托管在Deno Deploy上)遭受了DDoS攻击。请求量巨大,超出了Deno Deploy为该应用程序扩容和分配更多资源的能力,导致服务器错误,使得托管在deno.comdeno.land上的网页和模块无法访问。

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

下一步?

我们深知此次服务中断给许多Deno用户(无论是Deno Deploy用户还是Deno运行时用户)带来了多大的困扰。我们正在迅速采取行动,以确保未来不再发生此类事件。

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

我们再次对此次事件可能对您的工作造成的影响深表遗憾。感谢您的支持与合作,在未来的岁月里,我们将继续发展并强化Deno和Deno Deploy。

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