Implementing ChatOps into our Incident Management Procedure

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

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

Bối cảnh

  • Production engineer (PE) của Shopify được coi là chuyên gia xử lý sự cố, nhưng xử lý sự cố vẫn rối và mệt: gặp lỗi mới, bám vào triệu chứng, quên các thói quen tốt khi bị áp lực.
  • Shopify có lịch trực riêng cho IMOC (incident manager on call) và một chatbot hỗ trợ IMOC.

Thay đổi chính

  • Mô hình vai trò rút gọn từ Incident Command System (ICS):
    • IMOC chỉ huy: lo liên lạc, giữ cho việc xử lý tiến lên, leo thang khi cần, theo dõi đến cùng. IMOC trực để điều phối, không trực để sửa; sửa là việc của chuyên gia từng thành phần.
    • SRM (Support Response Manager) lo liên lạc ra bên ngoài với merchant.
    • Nhóm vận hành: các chuyên gia thành phần trực tiếp sửa.
  • Quy trình: alert page → xác nhận → IMOC mở sự cố → liên lạc, tìm và đẩy bản sửa → đóng sự cố, viết tài liệu gián đoạn dịch vụ → điều tra, họp RCA → hoàn thành mọi action item thì sự cố mới thực sự kết thúc.
  • Bot Spy (dựa trên Lita, Ruby; nối với Slack, PagerDuty, StatusPage, GitHub qua webhook):
    • spy page, spy pager ack để gọi và nhận page ngay trong chat.
    • spy start incident gắn sự cố vào kênh #war-room, tự báo SRM, hiện các vấn đề đang mở trước đó. Mục đích: một chỗ thảo luận duy nhất, tránh nhiều cuộc thảo luận song song.
    • spy incident tldr: ai trong công ty cũng hỏi được đang có sự cố gì, ai tham gia, bắt đầu khi nào.
    • Thao tác khắc phục từ kênh chat: cân lại traffic, failover data center, blackhole job, khoá deploy. Ai cũng thấy thao tác nào đã chạy.
    • spy incident stop sinh tài liệu gián đoạn dịch vụ từ các ghi chú gắn emoji 📝.
  • Chăm sóc IMOC: nhắc cập nhật status page nếu sự cố kéo dài; nếu IMOC đã xử lý quá một khoảng thời gian định trước, bot gọi nhóm IMOC vào hỗ trợ (chống kiệt sức).

Vì sao

  • Theo Shopify, các bước xử lý sự cố không nên dựa vào trí nhớ của người đang chịu áp lực; bot nhắc và làm hộ các bước lặp lại.
  • Gom thảo luận và thao tác vào một kênh giúp mọi người cùng hiểu tình hình, tránh nhầm lẫn ai đang làm gì.

Bài học cho SWE

  • Tách vai chỉ huy khỏi vai sửa: người chỉ huy giữ bức tranh chung và liên lạc, không chui vào debug (Xử lý sự cố và on-call).
  • Đưa thao tác giảm thiểu (failover, khoá deploy) vào kênh chat vừa nhanh vừa để lại dấu vết công khai (Tự động hoá vận hành và auto-remediation).
  • Mệt mỏi của người trực là rủi ro vận hành; có thể phát hiện bằng thời lượng và tự gọi người thay.

Liên quan