How we've evolved on-call

Bài tóm tắt Monzo 2019 3. Quy mô lớn Độ khó: Dễ

Monzo · 2019 · 3. Quy mô lớn · Độ khó: Dễ — bài gốc

Bài giữa trong chuỗi on-call của Monzo; bài sau là Monzo 2022.

Bối cảnh

  • Từ bài 2018, Monzo đã có tuyến một gồm primary (kỹ sư kinh nghiệm, biết chỉ huy sự cố) và shadow (người mới học bằng cách quan sát), đều là tình nguyện viên có trả tiền. Khi hệ thống lớn nhanh, primary khó có ngữ cảnh về mọi phần.

Thay đổi chính

  • Hai lịch trực: trong giờ (10h–18h, ngày thường, do team Platform trực, việc chính là tìm đúng team) và ngoài giờ. Primary và shadow mỗi lịch 8 người; phải xác nhận page trong 15 phút, theo dữ liệu PagerDuty thực tế mọi page được xác nhận dưới 5 phút.
  • Trả tiền theo tuần, không theo sự cố (để không khuyến khích sai chỉ số): primary và shadow £500/tuần.
  • Tuyến hai: specialist theo từng mảng (ví dụ payments, Cassandra), do chính team đó trực, tuần từ 18h thứ Sáu; xác nhận trong 1 giờ; £300/tuần vì ít bị gọi hơn. Primary gọi specialist khi quá tầm; primary/shadow giữ vai trò chỉ huy và liên lạc, specialist tập trung khắc phục. Công cụ Response (Django, tích hợp Slack, mở mã nguồn) điều phối việc gọi.
  • Định tuyến thẳng tới specialist khi alert có chủ rõ ràng (ví dụ cron đặt thẻ ghi nợ lỗi lúc 3h sáng thì gọi thẳng người trực payments).
  • Đích dài hạn: đảo vai: gần như mọi thứ đi thẳng tới team sở hữu, tuyến một chỉ là lưới an toàn cho alert không xác định được chủ. Còn vướng: specialist phải học chỉ huy sự cố; đội vận hành khách hàng phải biết gọi đúng team; hệ thống chưa đủ trưởng thành để biết team nào khi alert bắn (một microservice hỏng có thể làm alert bắn ở tầng cao hơn trong call graph).
  • Kết quả theo bài: lịch trực được ưa tới mức có danh sách chờ; lần mở shadow gần nhất có số người đăng ký gấp đôi số chỗ.

Vì sao

  • Một tuyến trực chung không thể biết hết hệ thống đang lớn; tách vai chỉ huy khỏi vai chuyên môn giữ được cả hai (Xử lý sự cố và on-call).

Bài học cho SWE

  • Trả tiền trực theo thời gian, không theo số sự cố.
  • Shadow rota là đường vào an toàn cho người mới.
  • Muốn gọi thẳng team sở hữu thì cần metadata sở hữu gắn vào alert, và khả năng biết alert ở tầng nào là triệu chứng của tầng nào.

Liên quan