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

推荐订阅源

B
Blog RSS Feed
WordPress大学
WordPress大学
博客园_首页
罗磊的独立博客
D
Docker
N
Netflix TechBlog - Medium
博客园 - Franky
Hugging Face - Blog
Hugging Face - Blog
D
DataBreaches.Net
I
InfoQ
L
LangChain Blog
GbyAI
GbyAI
V
V2EX
博客园 - 聂微东
P
Proofpoint News Feed
博客园 - 【当耐特】
腾讯CDC
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
量子位
Martin Fowler
Martin Fowler
有赞技术团队
有赞技术团队
U
Unit 42
博客园 - 司徒正美
大猫的无限游戏
大猫的无限游戏

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
May 23rd, 2023 Deno Deploy Postmortem | Deno
2023-05-24 · via Deno

On May 23rd, 2023, starting at 20:42 UTC, we experienced an unexpected outage across all Deno Deploy services hosted on GCP, including deno.com and deno.land. The services were inaccessible for approximately 45 minutes due to a surge in CPU capacity caused by a logging roll-out.

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 45-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. All Deno Deploy hosted deployments were impacted by this incident.

Timeline of Events

All times in UTC, on May 23rd 2023.

  • 20:34 - Initiation of a logging update to our production clusters.
  • 20:42 - First alerts triggered indicating system failures.
  • 20:45 - Team member reports unavailability of deno.com.
  • 20:47 - A status update was promptly published.
  • 20:51 - Rollback procedures were put in motion.
  • 21:04 - The system started showing signs of recovery as alerts subsided.
  • 21:18 - The majority of our systems were recovered.
  • 21:27 - Full recovery of all system alerts.
  • 21:43 - Incident officially marked as resolved.

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

Root cause

The unexpected outage was triggered by a logging update to our production clusters. This update introduced a new service which inadvertently increased our CPU load beyond the maximum set capacity, preventing our isolate hypervisors from being scheduled and causing deployments to fail.

During testing in a staging environment, this change was inadvertently bundled with another update, which masked the CPU limit problems and prevented pre-deployment detection.

What’s next?

In light of this incident and other recent less critical issues, we recognize that our current “one-shot” deployment method is insufficient. We are planning to implement canary-style deployments, allowing us to deploy changes to canary regions first before a general roll-out, specifically for significant cluster-level changes that require lengthy rollout and rollback procedures.

Moving forward, we will enforce a policy of testing one change at a time in our staging environment to prevent masking potential issues.

Lastly, we are working on establishing clearer error budgets and internal service level objectives (SLOs) to guide our engineering teams on the decision-making process regarding potentially risky changes.

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