SLA tổng hợp là gì?
Các hệ thống hiện đại được tạo nên từ rất nhiều thành phần — bộ cân bằng tải, cơ sở dữ liệu, API bên thứ ba, CDN và nhiều hơn nữa. Mỗi thành phần đi kèm một Thỏa thuận mức dịch vụ (SLA) riêng, thể hiện bằng tỷ lệ uptime, chẳng hạn 99,9%. SLA tổng hợp (kết hợp) chính là mức khả dụng thực tế của toàn hệ thống khi tất cả các thành phần được ghép nối với nhau. Công cụ này gộp uptime của từng thành phần thành một con số khả dụng đầu-cuối duy nhất, rồi quy đổi thành thời gian downtime cụ thể theo ngày, tháng và năm.
Cấu trúc nối tiếp và song song
Cách các thành phần được kết nối ảnh hưởng rất lớn đến kết quả. Với cấu trúc nối tiếp (chuỗi phụ thuộc), mọi thành phần đều phải hoạt động thì yêu cầu mới thành công, nên các tỷ lệ khả dụng được nhân với nhau — kết quả tổng luôn thấp hơn mắt xích yếu nhất:
$$A_{\text{total}} = \text{A}_1 \times \text{A}_2 \times \text{A}_3 \times \text{A}_4$$Với cấu trúc song song (dự phòng), hệ thống vẫn chạy chỉ cần ít nhất một đường dẫn còn hoạt động, nên ta nhân các xác suất lỗi với nhau; sự dự phòng giúp mức khả dụng cao hơn bất kỳ thành phần đơn lẻ nào:
$$A_{\text{total}} = 1 - \left(1-\text{A}_1\right)\left(1-\text{A}_2\right)\left(1-\text{A}_3\right)\left(1-\text{A}_4\right)$$
Cách sử dụng
Chọn loại cấu trúc, sau đó nhập tỷ lệ uptime của từng thành phần (ví dụ 99,95). Công cụ hỗ trợ tối đa bốn thành phần; bạn có thể để trống các ô tùy chọn nếu muốn gộp ít thành phần hơn. Kết quả sẽ hiển thị mức khả dụng tổng hợp cùng thời gian downtime dự kiến theo các khoảng thời gian phổ biến.
Ví dụ minh họa
Giả sử ứng dụng của bạn phụ thuộc vào ba thành phần nối tiếp, mỗi thành phần đạt 99,9%. Quy đổi sang phân số:
$$0{,}999 \times 0{,}999 \times 0{,}999 = 0{,}997002999$$tức 99,7003%. Đó là mức downtime khoảng 0,2997% — tương đương khoảng 26,26 giờ mỗi năm. Ghép ba dịch vụ "ba số chín" theo kiểu nối tiếp chỉ cho bạn mức "hai số chín" tổng thể, và đây chính là lý do vì sao dự phòng lại quan trọng.
Câu hỏi thường gặp
Vì sao kết quả nối tiếp lại thấp hơn từng giá trị nhập vào? Vì mỗi thành phần phụ thuộc đều thêm một khả năng xảy ra lỗi; nhân các số nhỏ hơn 1 với nhau luôn làm tổng nhỏ lại.
Cấu trúc song song có thật sự cải thiện uptime nhiều đến vậy không? Có — hai đường dẫn 99% độc lập cho ra \(1 - (0{,}01 \times 0{,}01) = 99{,}99\%\), với giả định các lỗi thực sự độc lập với nhau.
99,9% nghĩa là bao nhiêu thời gian? Khoảng 8,77 giờ downtime mỗi năm, hay xấp xỉ 43,8 phút mỗi tháng.