Lessons learned in incident management
Bài tóm tắt Dropbox 2021 3. Quy mô lớn Độ khó: Trung bình
Dropbox · 2021 · 3. Quy mô lớn · Độ khó: Trung bình — bài gốc
Bối cảnh
- Dropbox cam kết SLA 99,9% với một số khách hàng (khoảng 43 phút down/tháng), mục tiêu nội bộ 99,95% (khoảng 21 phút/tháng, 2021). Muốn giữ ngân sách đó thì phải rút ngắn cả ba pha của một sự cố availability: phát hiện, chẩn đoán, phục hồi.
- Quy trình SEV: loại (Availability, Durability, Security…), mức 0–3; vai trò IMOC (điều phối, liên lạc), TLOC (dẫn kỹ thuật), BMOC (phần phi kỹ thuật, status page, khách hàng). Công cụ tự xây DropSEV: ai cũng khai báo được, tự tạo kênh Slack, email, ticket Jira và khung postmortem.
Thay đổi chính
Phát hiện
- Hệ metric Vortex (thiết kế lại 2018): trễ ingest vài giây, lấy mẫu 10 giây; nền tảng RPC Courier sinh sẵn metric, tracing cho mọi ngôn ngữ. Phụ thuộc giữa alert: tắt page của mình nếu lỗi nằm ở dependency chung.
- Tự động khai báo SEV availability: trước đây người trực phải tự hỏi "có đủ mức SEV chưa?", tra dashboard, tra bảng; mất vài phút, có lần không ai khai báo nên IMOC/BMOC không vào cuộc. Giờ DropSEV tự phát hiện mức ảnh hưởng và mở quy trình.
Chẩn đoán
- Kiểm tra cấu hình on-call bắt buộc, không ngoại lệ: dịch vụ nội bộ đọc API PagerDuty, so cấu hình escalation và kênh thông báo của từng team với chuẩn chung (mức khác nhau theo độ quan trọng).
- Dashboard triage cho dịch vụ quan trọng; dashboard dựng sẵn cho nguyên nhân hay gặp (tỉ lệ lỗi client/server, latency RPC, exception, QPS, host bất thường, top client), có chú thích deploy trên Grafana.
- Vai trò IMOC bị hiểu sai dần: biết quy trình nhưng không chắn nhiễu cho đội kỹ thuật. Sửa bằng huấn luyện, diễn tập; lập Backup Response Team gồm IMOC/TLOC cấp cao với playbook rõ khi nào nhận lại chỉ huy.
Phục hồi
- "Luật 20 phút": đánh giá rủi ro hằng quý, hỏi mỗi team "kịch bản nào của hệ bạn cần hơn 20 phút để giảm thiểu?". Ví dụ đã sửa: deploy monolith backend hơn 20 phút → tối ưu xuống dưới 20 và diễn tập định kỳ; promote replica database chậm khi mất nhiều primary trong một rack → tăng đa dạng rack; thay đổi experiment/feature gate khó tìm và không rollback được → thêm owner, khả năng rollback, playbook.
- Một nguồn sự thật cho SLA; tracing tính trọng số của mỗi service trên đường găng, vượt ngưỡng thì phải đạt yêu cầu vận hành chặt hơn.
- Mức SEV theo % availability sai lệch với trải nghiệm thật (tụt nhiều mà khách không thấy, tụt ít mà web không dùng được); bổ sung theo dõi khoảng 20 route web chính.
Bài học cho SWE
- Giảm quyết định của người trong lúc nước sôi: tự động khai báo sự cố bớt được vài phút mỗi lần và tránh bỏ sót (Tự động hoá vận hành và auto-remediation).
- Đặt ngân sách thời gian rồi liệt kê những kịch bản phục hồi vượt ngân sách là cách biến SLA thành danh sách việc cụ thể (Sự cố và postmortem).
- Quy trình trên giấy và quy trình thực tế lệch nhau dần; phải đo và diễn tập để thấy.
Liên quan
Được nhắc tới trong
Công ty (1)