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

2023 年 6 月 25 日 Deno Deploy 事后分析

2023 年 6 月 25 日协调世界时 09:42,大量 Deno Deploy 服务经历了服务中断,直到协调世界时大约 10:26(持续 44 分钟)。在此期间,用户无法访问托管在 Deno Deploy 上的项目、访问 Deno 网站属性(例如 deno.com)或下载托管在 `deno.land` 上的模块。

使用 Deno Deploy Subhosting 的客户不受此次中断的影响。

我们致力于为用户提供稳定且强大的平台,这是我们的重中之重。对于此次事件,我们深表歉意,并对由此造成的一切中断表示真诚的歉意。本报告概述了事件、中断原因以及我们计划采取的措施,以防止此类事件在未来再次发生。

影响

在 44 分钟的时间里,用户经历了服务中断,无法访问 Deno Deploy 上的关键 Deno 网站属性和部署,包括 `deno.com` 和 `deno.land`。

事件时间线

所有时间均为协调世界时,于 2023 年 6 月 25 日。

  • 09:42 - DDOS 攻击开始
  • 09:43 - 触发警报并向团队发出通知
  • 09:46 - 团队成员上线以查找根本原因。
  • 09:47 - 日志显示对数据库的查询被限速。
  • 10:14 - DDOS 攻击结束
  • 10:26 - 所有警报都已解决。我们大多数系统都已恢复。
  • 11:02 - 事件被标记为已解决。

我们估计,从我们的系统首次开始出现故障到完全恢复,大约有 44 分钟的停机时间。

根本原因

在星期天 6 月 25 日,对托管在 Deno Deploy 上的其中一个网站属性发起了 DDOS 攻击。在此期间,我们看到了请求率,大约是当天这个时候正常情况下的 10 倍。我们的系统最初通过拒绝对受影响域名的请求以及进行扩展来对此做出响应。由于攻击量很大,必须同时在线启动大量处理节点。这些节点中的每一个都需要从中央数据库中提取少量元数据。不幸的是,我们的数据库无法处理与此相关的查询负载,这导致某些节点的上线速度比预期慢得多,而其他节点则会在等待启动负载时超时,并随后自行重启,这进一步加剧了我们数据库的负载。

下一步

我们正在采取一些措施来防止这个问题在未来再次发生

  • 中央数据库的处理能力已大幅提升。
  • 启动负载将在全球范围内进行缓存,以消除对中央数据库的单点故障依赖性。
  • 如果出于任何原因最新引导负载不可用,处理节点将被允许使用(稍微)过时的數據。
  • 在接下来的几周内,我们将进行额外的负载测试,以确保我们的系统能够承受此次事件期间出现的突发负载峰值。

有任何问题、建议或其他想法?请随时与我们联系.