- Sản phẩm của Google được hàng tỉ người dùng trên toàn cầu sử dụng, nên việc chúng hoạt động ổn định là rất quan trọng. Nhóm SRE của Google đã phát triển nhiều phương pháp để nâng cao độ tin cậy của dịch vụ.
- Các kỹ thuật SRE truyền thống (như error budget, postmortem) đã đóng góp lớn trong việc giúp Google mở rộng quy mô dịch vụ web.
- Gần đây, khi AI/ML làm độ phức tạp hệ thống tăng vọt, việc cần có cách tiếp cận mới đã trở nên cấp thiết.
- Lý thuyết hệ thống và lý thuyết điều khiển hữu ích cho việc nắm bắt có hệ thống các tương tác phức tạp.
- Thay vì chỉ "giải quyết sau khi sự cố xảy ra", cần một hướng tiếp cận đảm bảo an toàn ngay từ thiết kế nền tảng ở cấp hệ thống.
Tổng quan về STAMP
- STAMP (System-Theoretic Accident Model and Processes) do Giáo sư Nancy Leveson (MIT) đề xuất phân tích tai nạn (sự kiện) từ góc nhìn tương tác hệ thống phức tạp hơn là lỗi riêng của một bộ phận.
- Thay vì nhân quả truyền thống ("bị lỗi nên hỏng"), STAMP nhấn mạnh rằng điều quan trọng là: "toàn bộ hệ thống đã rơi vào luồng điều khiển sai như thế nào".
- Mô hình phân tích nhân quả dựa trên lý thuyết hệ thống (CAST) tái cấu trúc sự cố, và Phân tích quá trình theo lý thuyết hệ thống (STPA) giúp nhận diện trước các yếu tố rủi ro.
Nền tảng của lý thuyết điều khiển – bốn điều kiện
- Trong lý thuyết điều khiển, cần bốn điều kiện để kiểm soát có hiệu quả:
- Điều kiện mục tiêu: phải có mục tiêu (ví dụ: duy trì một chỉ số cụ thể).
- Điều kiện hành vi: phải có khả năng tác động lên trạng thái hệ thống để đạt mục tiêu.
- Điều kiện mô hình: cần các mô hình (nội tại và bên ngoài) để hiểu hệ thống.
- Điều kiện quan sát: cần cơ chế quan sát như cảm biến để xác định trạng thái hiện tại của hệ thống.
Xử lý sự cố (Outage) như một bài toán điều khiển
- Trước đây, xu hướng mô tả sự cố thường nghiêng về "hỏng đứt dây chuyền".
- STAMP diễn giải nó dưới góc nhìn "điều khiển và tương tác không phù hợp", từ đó đảm bảo an toàn ở cấp hệ thống.
- Thay vì chỉ tìm "sự cố đầu tiên bắt đầu từ đâu", STAMP xem xét toàn diện "luồng điều khiển/phản hồi nào bị bất thường".
Giành thêm thời gian từ trạng thái Hazard
- Mô hình nhân quả truyền thống cho rằng hệ thống chuyển từ trạng thái bình thường sang trạng thái sự cố trong tích tắc, nên thời gian ứng phó rất ngắn.
- STAMP đưa vào khái niệm "trạng thái hazard" để tìm điểm đã bước vào nguy cơ trước khi thành sự cố hoàn chỉnh.
- Sau khi phát hiện trạng thái hazard và can thiệp tích cực, có thêm cơ hội ngăn chặn trước khi chuyển thành sự cố thực sự.
Xem xét qua trường hợp thực tế
- Trong Google, "Quota Rightsizer" tái phân bổ tài nguyên theo lượng dùng của dịch vụ.
- Theo góc nhìn STPA, có thể nhận diện sớm tình huống "nhận sai thông tin mức sử dụng, rồi giảm tài nguyên thấp hơn mức cần thiết thực tế".
- Ở giai đoạn thiết kế, chủ yếu chỉ chú ý đến "logic điều khiển chính xác", nhưng khi áp dụng STPA đã phát hiện vấn đề trong đường phản hồi (như quá trình tính toán mức tiêu thụ tài nguyên).
- Có trường hợp thực tế năm 2021 cho thấy phản hồi sai tích lũy rồi dẫn đến sự cố lớn, nhưng đã ở trạng thái hazard trong vài tuần mà không biết.
Hướng đi tiếp theo
- Google SRE theo đuổi mức an toàn cao hơn và quản lý độ phức tạp tốt hơn bằng các cách tiếp cận dựa trên lý thuyết hệ thống như STAMP, STPA và CAST.
- Chỉ với đầu tư kỹ thuật quy mô nhỏ (khoảng vài tuần), đã có thể phát hiện rất nhiều kịch bản rủi ro tiềm ẩn trong hệ thống lớn.
- Nếu bổ sung phân tích dựa trên lý thuyết điều khiển vào văn hóa độ tin cậy truyền thống, khả năng cung cấp dịch vụ ổn định trong kỷ nguyên AI/ML sẽ tăng cao hơn.
1 bình luận
Ý kiến trên Hacker News
Cách tiếp cận kỹ thuật của Google có thể bất lợi cho startup. Các kỹ sư SRE có xu hướng mắc hội chứng nhân vật trung tâm và muốn thiết kế lại cách các nhóm khác triển khai kỹ thuật.
Có những điểm tương đồng với cuốn sách của Sidney Dekker.
Phương pháp CAST có vẻ rất thuyết phục.
Có những tương đồng thú vị giữa CAST và việc phân tích cơ học.
Tôi tự hỏi đã có trường hợp nào áp dụng khung kỹ thuật an toàn chính quy cho phân tích mạng nơ-ron chưa.
Ngay cả khi ví dụ "rightsizer" được phân tích theo cách truyền thống, họ có thể vẫn đạt cùng một kết quả.
Lý do họ không thích kiểm thử phần mềm là vì lỗi do các yếu tố bên ngoài.
CAST tương tự như phân tích nguyên nhân gốc rễ đa yếu tố.
Có ý kiến cho rằng SRE/DevOps là một phần của công việc hằng ngày hay không.
Đặc điểm nổi bật lớn nhất của Google SRE là khi sản phẩm mới ra mắt thì cần có sự hỗ trợ của SRE.
Bài viết quá dài nên khó tìm ra điểm mấu chốt.
Tò mò liệu cách tiếp cận này có giá trị ở quy mô ngoài FAANG hay không.
Tương tự như DevOps, phạm vi của SRE đang được mở rộng.