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

推荐订阅源

I
InfoQ
S
SegmentFault 最新的问题
N
Netflix TechBlog - Medium
B
Blog
Jina AI
Jina AI
人人都是产品经理
人人都是产品经理
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园 - 聂微东
Last Week in AI
Last Week in AI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
V2EX
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
大猫的无限游戏
大猫的无限游戏
U
Unit 42
J
Java Code Geeks
IT之家
IT之家
aimingoo的专栏
aimingoo的专栏
博客园 - 叶小钗
T
The Blog of Author Tim Ferriss
博客园 - 【当耐特】
Hugging Face - Blog
Hugging Face - Blog
WordPress大学
WordPress大学
腾讯CDC

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 30 incident update | Deno
2022-06-02 · via Deno

On May 30th (Monday) at 22:12 UTC several services provided by the Deno company had a 70 minute service disruption. During this time projects hosted at Deno Deploy, including many Deno Land web properties, were not responding in some regions; additionally, attempts to deploy new workers would fail.

We have concluded that this outage was caused by our service discovery database (etcd) running out of memory. This post details what exactly happened, how we recovered the systems, and what we are doing to prevent this in the future.

All services are now operating normally again. No data was lost. We take outages like these seriously and sincerely apologize for the disruption.

Impact

During the 70 minute window, the Deno Deploy management dashboard at https://dash.deno.com/ was unavailable. Additionally, requests to Deno Deploy projects, including deno.com, deno.land doc.deno.land, lint.deno.land, deno.news, examples.deno.land, would fail in some regions.

Subhosting traffic was not impacted, other than some increased latency around the end of the incident.

Timeline of events

At 22:12 UTC a load test across the entire Deno Deploy network was started. One minute later, at 22:13 UTC the load test ended successfully.

At 22:15 UTC our uptime monitoring detects that some Deno Deploy hosted properties are unavailable and triggers an alarm.

At 22:25 UTC it is discovered that the etcd cluster has disintegrated. Multiple instances are stuck an a reboot loop because the etcd daemon shortly after startup has used up all the RAM available on the VM, and subsequently gets terminated by the OOM killer.

Between 22:50 UTC and 23:01, the etcd cluster is recreated, using a different VM instance size with more memory available to it.

At 23:25 UTC all services in our network have registered themselves with the new etcd cluster and the system is operating normally again.

Root cause

During the load test, the Deno Deploy infrastructure scaled up automatically to handle the increased load. When the load test was over, the infrastructure scaled back down. This triggered a flurry of updates to the etcd cluster which functions as our service discovery database.

While processing these updates, the etcd daemon used more memory than what was available on the VM they were running on. This triggered the Linux OOM killer to terminate the etcd daemon. Because multiple etcd instances went down at the same time, quorum was lost and the service discovery database became unavailable.

What’s next?

The etcd cluster now uses a different VM instance size with more memory available to it.

We are adding additional etcd health checks, and we will set up alerts that notify us when etcd memory usage approaches the limit.