Tuesday, 4 April 2017

SLA và 99.99% uptime

Mỗi dịch vụ online đều có một chính sách cam kết về chất lượng.
Khi bạn mua GSuite (gồm Email, GDoc ...) của Google để phục vụ cho doanh nghiệp của mình, thì phía Google phải cam kết về chất lượng dịch vụ - và nói chung là cam kết về độ ổn định / sẵn sàng của dịch vụ. Từ khoá cho khái niệm này là SLA (Service Level Agreement).


Ở điều kiện lý tưởng, người ta thường nghĩ tới 100%.
Trên thực tế, đó là một con số không tưởng, ngay cả những ông lớn internet như Google hay Amazon cũng chỉ dám đưa ra quanh mức 99.XX % uptime.
Liệu 99.9 % có khác so với 99.99% và có khác với 99.999% không?
Con số % này khá khó để ta đưa ra cái nhìn rõ ràng, nhưng khi tính trên thời gian bằng giây của 1 năm, khác biệt là thấy rõ:

In [1]: for p in [99.9, 99.99, 99.999]:
    ...:     down_in_s = 86400 * 365 * (100-p)/100
    ...:     print("%f%% : allows to down %f seconds/year == %f minutes/year -> %f seconds/day"
    ...:           % (p, down_in_s, down_in_s/60, down_in_s/365))
    ...:
    ...:
99.900000% : allows to down 31536.000000 seconds/year == 525.600000 minutes/year -> 86.400000 seconds/day
99.990000% : allows to down 3153.600000 seconds/year == 52.560000 minutes/year -> 8.640000 seconds/day
99.999000% : allows to down 315.360000 seconds/year == 5.256000 minutes/year -> 0.864000 seconds/day
Một dịch vụ cam kết uptime 99.99% chỉ được phép down ~ 52 phút trong 1 năm hay 8.6 giây mỗi ngày.  Và 99.999 %? chỉ được phép down 5 phút 1 năm 😱


Một thuật ngữ thường được dùng để chỉ mức độ sẵn sàng của dịch vụ là "số số 9",
như ở trên, 3 số 9 sẽ có thể bị down nhiều hơn 4 số 9, và 5 số 9... thậm chí có hệ thống lý tưởng đạt tới 11 số 9.

Để đạt được từng số 9 sau dấu phẩy là rất nhiều công sức và chi phí đổ ra, bởi thế không phải hãng nào cũng dám cam kết con số 99.99%. Sự sẵn sàng 100% của dịch vụ chưa hẳn đã là hay, bởi nó phải đánh đổi với tốc độ triển khai các tính năng mới của sản phẩm.

- Amazon EC2 cam kết uptime ít nhất là 99.95 %
> AWS will use commercially reasonable efforts to make Amazon EC2 and Amazon EBS each available with a Monthly Uptime Percentage (defined below) of at least 99.95%
- Amazon S3 cam kết 99.9 %  và với vụ sập vừa rồi, Amazon đã phải đền bù không ít tiền.
- Google Map API cam kết 99.9% uptime
- Slack plus cam kết 99.99% uptime

Đọc thêm tại cách Google xử lý và đảm bảo uptime tại Google SRE book https://landing.google.com/sre/book/chapters/embracing-risk.html