Project STAR*: Streamlining Our On-Call Process
Bài tóm tắt LinkedIn 2018 3. Quy mô lớn Độ khó: Dễ
LinkedIn · 2018 · 3. Quy mô lớn · Độ khó: Dễ — bài gốc
Bối cảnh
- Voyager On-Call: lịch trực cho app flagship (web, Android, iOS, frontend API). Người trực lo site chạy và giữ cho trunk và pipeline deploy khoẻ. Mỗi tuần một nhóm mới: một engineer mỗi nền tảng, kèm người của Productivity, SRE và một manager điều phối.
- Quy mô: hơn 600 engineer, 10.434 commit trong Q4/2017.
- Khảo sát 2016 cho thấy vấn đề nằm ở bốn nhóm (tên dự án STAR* lấy từ đây): lịch trực, công cụ và nợ kỹ thuật, trách nhiệm, vai trò. Ví dụ điển hình: đến tuần trực mới biết engineer Android đã nghỉ phép hai tuần.
Thay đổi chính (bắt đầu đầu 2017, một nhóm manager tình nguyện)
- Lịch trực tự động:
- danh sách người đủ điều kiện lấy từ ACL nên thiếu người, và người có mặt trong nhiều ACL thì bị xếp quá nhiều;
- quy tắc mới: ai có từ 5 commit trở lên trong tháng vào code base Voyager thì vào danh sách (lúc đầu là 1, chỉnh theo phản hồi); mỗi người chỉ thuộc một danh sách;
- manager vào danh sách trực nếu có người báo cáo trực tiếp đang trong danh sách engineer;
- xếp lịch trước 60 ngày (đủ sớm để báo, đủ gần để ít lỗ hổng); thông báo trước 4 tuần, nhắc ở 2 tuần và 1 tuần; manager điểm danh xác nhận ở mốc 4 và 2 tuần;
- có lịch shadow cho người mới trực lần đầu.
- Công cụ: SRE riêng của Voyager nhận hỗ trợ công cụ deploy và viết playbook; team Productivity nhận vấn đề thời gian build. Một đầu mối duy nhất giúp không báo trùng lỗi cho team Foundation.
- Trách nhiệm: hơn 90% người trực không biết on-call có được tính vào đánh giá năm hay không. Sửa: manager trực gửi nhận xét về người trực cho manager trực tiếp của họ; trao thưởng nhỏ cho người làm tốt. Trách nhiệm hai chiều: khảo sát mỗi tuần xem người trực có được hỗ trợ đủ không.
- Vai trò: tách tài liệu "làm gì" khỏi "làm thế nào"; quy về ba nhiệm vụ (giữ site chạy, giữ trunk khoẻ, giúp deploy); tuần trực chiếm 100% thời gian; quy trình RAPID quyết định khi nào rollback API/web hoặc hotfix/bỏ qua bản phát hành mobile.
Kết quả (theo khảo sát của LinkedIn)
- Không hài lòng với lịch trực: 36% → 8%.
- Không hài lòng về hỗ trợ công cụ: 16% → 6% (trunk) và 2% (deploy).
- "Việc thường ngày cản trở việc trực": 84% → 9%.
Vì sao
- Gốc rễ, theo LinkedIn, là quy mô tổ chức: người vào, ra, chuyển team liên tục nên danh sách làm tay luôn cũ. Chỉ có tự động hoá mới giữ được.
- Người ta được đánh giá theo việc sản phẩm, nên on-call bị coi là gánh nặng. Phải gắn on-call vào đánh giá thì mới đổi được thái độ.
Bài học cho SWE
- Lịch trực là dữ liệu về con người và phải sinh tự động từ nguồn sự thật (commit, sơ đồ tổ chức) (Tự động hoá vận hành và auto-remediation).
- On-call có hiệu quả khi được tính vào đánh giá và được dành trọn thời gian; nếu không, việc trực luôn thua việc sản phẩm (Xử lý sự cố và on-call).
- Đo bằng khảo sát lặp lại; có số trước/sau mới thuyết phục được.
Liên quan
Được nhắc tới trong
Công ty (1)