August 22nd, 2023 Deno Deploy Post-mortem
Bài tóm tắt Deno 2023 2. Tăng trưởng Độ khó: Dễ
Deno · 2023 · 2. Tăng trưởng · Độ khó: Dễ — bài gốc
Postmortem ngắn. Giá trị chính là một ví dụ về coupling: website công ty và registry package chạy chung một chỗ.
Bối cảnh
deno.comvàdeno.landchạy trên chính Deno Deploy.deno.land/x(registry module bên thứ ba) vàdeno.land/std(thư viện chuẩn) cũng do website này phục vụ.
Chuyện gì xảy ra
- 22/8/2023, 07:00–08:30 UTC: một đợt DDoS vào
deno.com. Lượng request vượt khả năng Deno Deploy tự scale cho ứng dụng đó, nên website, dashboard và registry module đều sập khoảng 90 phút. - Người dùng Deno runtime import package qua HTTPS bị lỗi build. Ứng dụng đã cache hoặc vendor dependency thì không bị ảnh hưởng.
- Cô lập tài nguyên giữa các deployment hoạt động tốt: các ứng dụng khác trên Deno Deploy gần như không bị ảnh hưởng.
- Timeline: 07:02 có cảnh báo lỗi → 07:10 nhận ra DDoS → 07:41 gọi thêm người → 08:21 chặn IP tấn công → 08:29 hồi phục.
Khắc phục (theo Deno)
- Cải thiện khả năng cấp thêm tài nguyên cho ứng dụng bị spike bất thường.
- Escalate on-call nhanh hơn; cập nhật status page kịp thời hơn.
- Xem lại cách host code module, để sự cố ở
deno.com/Deploy không kéo theo việc quản lý dependency của mọi chương trình Deno.
Bài học cho SWE
- Hạ tầng mà cả hệ sinh thái phụ thuộc (registry) không nên chung số phận với website marketing (Độ tin cậy và multi-region).
- Vendor hoặc cache dependency là cách người dùng tự cắt phụ thuộc lúc build.
- Isolation giữa tenant là thứ cứu phần còn lại của nền tảng (Sự cố và postmortem).
Liên quan
Được nhắc tới trong
Công ty (1)