Chaos Engineering

Định nghĩa

Chaos engineering là kỷ luật thử nghiệm có kiểm soát trên hệ thống để tăng niềm tin rằng hệ thống chịu được điều kiện hỗn loạn trong production.

Cách hiểu bằng lời của tôi

Không phải phá cho vui. Chaos engineering bắt đầu bằng giả thuyết, inject lỗi có giới hạn, quan sát bằng metrics/logs/traces, rồi dùng kết quả để sửa điểm yếu trước khi lỗi thật xảy ra.

Luồng thực hành

hypothesis
-> experiment design
-> chaos injection
-> observation
-> behavior analysis
-> learning and iteration

Nguyên tắc

  • Hypothesis-driven, không random phá hệ thống.
  • Mô phỏng failure thực tế: instance chết, network chậm, dependency lỗi, AZ fail.
  • Minimize blast radius và có rollback plan.
  • Đo đủ lâu để tránh kết luận sớm.
  • Gắn experiment với Observability và Service Level Objective.

Ví dụ Netflix MAP/FIT

Nguồn Netflix MAP nhấn mạnh failure testing ở middle layer: request được tag như failure request, đi qua service thật, rồi các dependency/downstream phải phản ứng đúng với trạng thái lỗi. Điểm học được là chaos test cần giữ failure trong blast radius của hệ đang test: không làm dependents thất vọng và không làm dependencies bị kéo vào lỗi dây chuyền.

Liên kết