惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
The Cloudflare Blog
博客园_首页
WordPress大学
WordPress大学
有赞技术团队
有赞技术团队
人人都是产品经理
人人都是产品经理
爱范儿
爱范儿
罗磊的独立博客
酷 壳 – CoolShell
酷 壳 – CoolShell
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Jina AI
Jina AI
美团技术团队
博客园 - 【当耐特】
博客园 - Franky
T
Tailwind CSS Blog
雷峰网
雷峰网
小众软件
小众软件
阮一峰的网络日志
阮一峰的网络日志
Apple Machine Learning Research
Apple Machine Learning Research
Last Week in AI
Last Week in AI
V
V2EX
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 三生石上(FineUI控件)

Deno

Deno 2.8 | Deno Claw Patrol: an open-source security firewall for agents | Deno Fresh 2.3: Zero JS by default, View Transitions, and Temporal support | Deno Deno 2.7: Temporal API, Windows ARM, and npm overrides | Deno Build a dinosaur runner game with Deno, pt. 6 | Deno Build a dinosaur runner game with Deno, pt. 5 | Deno Deno Deploy is Generally Available | Deno Introducing Deno Sandbox | Deno Build a dinosaur runner game with Deno, pt. 4 | Deno Build a dinosaur runner game with Deno, pt. 3 | Deno Build a dinosaur runner game with Deno, pt. 2 | Deno React / Next.js Denial-of-Service Vulnerability: Deno Deploy users protected | Deno Deno 2.6: dx is the new npx | Deno Build a dinosaur runner game with Deno, pt. 1 | Deno React Server Functions / Next.js Vulnerability: Deno Deploy users protected | Deno My highlights from the new Deno Deploy | Deno Deno's Other Open Source Projects | Deno How Deno protects against npm exploits | Deno Help Us Raise $200k to Free JavaScript from Oracle | Deno Deno 2.5: Permissions in the config file | Deno Fresh 2.0 Graduates to Beta, Adds Vite Support | Deno Deno 2.4: deno bundle is back | Deno JavaScript™ Trademark Update | Deno What's coming to JavaScript | Deno A brief history of JavaScript | Deno Reports of Deno's Demise Have Been Greatly Exaggerated | Deno An Update on Fresh | Deno How Plaid migrated 100 services to a new database platform 5x faster with Deno | Deno Deno 2.3: Improved deno compile, local npm packages, and more | Deno Add JSR packages with pnpm and Yarn | Deno
June 25th, 2023 Deno Deploy Postmortem | Deno
2023-07-01 · via Deno

On June 25th, 2023, at 09:42 UTC a large chunk of Deno Deploy services experienced a service disruption until approximately 10:26 UTC (44 minutes). During this period users could not access projects hosted on Deno Deploy, access Deno web properties such as deno.com, or download modules hosted on deno.land.

Customers making use of Deno Deploy Subhosting were not affected by this outage.

Our commitment to providing a stable and robust platform to our users is our topmost priority. We deeply regret this incident and sincerely apologize for any disruption caused. This report provides an overview of the event, the cause of the outage, and measures we plan to take to prevent such instances in the future.

Impact

During a 44-minute period, users experienced a service disruption and could not access key Deno web properties and deployments on Deno Deploy, including deno.com and deno.land.

Timeline of Events

All times in UTC, on June 25th 2023.

  • 09:42 - DDOS attack begins
  • 09:43 - Alerts are triggered and teams are paged
  • 09:46 - Team member get online to find root issue.
  • 09:47 - Logs indicate queries to database are rate limited.
  • 10:14 - DDOS attack ends
  • 10:26 - All alerts are resolved. Majority of our systems were recovered.
  • 11:02 - Incident is marked as resolved.

We estimate a downtime of approximately 44 minutes from when our systems first started failing until full recovery was achieved.

Root cause

On Sunday, June 25, a DDOS attack was mounted against one of the web properties hosted on Deno Deploy. During this time we saw a request rate that is about 10 times higher than normal during this time of day. Our systems responded to this by initially rejecting requests to the affected domain, and by scaling up. Due to the attack volume, a large number of processing nodes had to be brought online at the same time. Each of these nodes require a small amount of metadata that gets pulled from a central database. Unfortunately our database was unable to handle the query load associated with this, which resulted in some nodes coming online much slower than expected, while others would time out while waiting for their start-up payload and subsequently rebooted themselves, which exacerbated the load on our database further.

What’s next?

We’re taking some steps to prevent this problem in the future:

  • The processing capacity of the central database has been increased significantly.
  • The start-up payload will be cached across the globe to remove the single-point-of-failure dependency on our central database.
  • Processing nodes will be allowed to operate from (slightly) stale data in case the latest boot payload is unavailable for any reason.
  • In the coming weeks, we will conduct additional load tests to ensure that our systems can withstand a sudden load spike of the magnitude that we saw during this event.

Have questions, suggestions or other thoughts? Feel free to drop us a line.