Kể lại từ bản tổng kết sau sự cố do chính AWS đăng. Một giá trị gõ sai, và công cụ cho phép gỡ nhiều hơn dự định. Không nêu tên người, không đoán họ nghĩ gì.
Tóm lại: làm cho một giá trị gõ sai không gây hại lớn.
Lưu ý: giờ theo Thái Bình Dương như bản tổng kết. Bảng năm lớp là cách đọc của mình.
| Thuật ngữ | Nói dễ hiểu |
|---|---|
| Amazon S3 | Dịch vụ lưu tệp trên đám mây của AWS, rất nhiều trang và ứng dụng dùng |
| Vùng (region) | Cụm trung tâm dữ liệu ở một khu vực. US-EAST-1 là vùng lớn |
| Hệ thống chỉ mục | Giữ thông tin mỗi vật được lưu nằm ở đâu |
| Hệ thống vị trí | Chọn nơi lưu vật mới, phụ thuộc vào chỉ mục |
| Bán kính ảnh hưởng | Một sự cố làm hỏng được bao nhiêu thứ xung quanh |
| Sổ tay (playbook) | Các bước soạn sẵn cho một việc vận hành |
Nhóm S3 đang tìm lý do một quy trình tính cước chạy chậm.
Người có quyền gỡ một ít máy chủ khỏi hệ thống liên quan đến cước.
Nhiều máy chủ hơn dự định bị gỡ, thuộc chỉ mục và vị trí.
| Giờ | Chuyện gì xảy ra |
|---|---|
| 9:37 | Lệnh chạy, nhiều máy chủ hơn dự định bị gỡ |
| 11:37 | Bảng trạng thái dịch vụ cập nhật lại được |
| 12:26 | Chỉ mục đủ sức phục vụ lấy, liệt kê, xóa |
| 13:18 | Chỉ mục hồi phục hoàn toàn |
| 13:54 | Hệ thống vị trí xong, S3 hoạt động bình thường |
Các hệ thống lớn này nhiều năm chưa được khởi động lại hoàn toàn ở vùng lớn. S3 đã lớn lên rất nhiều, và việc kiểm tra an toàn khi khởi động lại mất lâu hơn dự kiến.
Khả năng hồi phục chưa được thử ở quy mô hiện tại. Giống bài học của GitLab: bản sao lưu chưa khôi phục thử thì chưa biết có dùng được không.
Bảng điều khiển S3, tạo máy ảo EC2 mới, ổ EBS cần dữ liệu từ ảnh chụp trên S3, và AWS Lambda. Một số dịch vụ còn tồn hàng đợi cần thêm thời gian.
Bảng trạng thái dịch vụ của AWS cũng phụ thuộc S3, nên đến 11:37 chưa cập nhật được. AWS phải dùng tài khoản Twitter và dòng chữ trên bảng để báo tin.
Không có mức tối thiểu chặn lại.
Về sau đổi sang gỡ chậm hơn.
Hai hệ thống lõi của cả vùng. Về sau chia ô độc lập.
Khởi động lại chậm hơn dự kiến.
Về sau chạy trên nhiều vùng.
| Việc | Để làm gì |
|---|---|
| Gỡ chậm hơn | Giảm tốc độ mất năng lực |
| Mức tối thiểu | Chặn việc gỡ xuống dưới mức cần thiết |
| Rà soát công cụ khác | Tìm chỗ thiếu kiểm tra an toàn tương tự |
| Chia ô độc lập | Thu nhỏ bán kính ảnh hưởng, hồi phục nhanh hơn |
| Bảng trạng thái nhiều vùng | Vẫn báo được khi một vùng hỏng |
| GitLab | Amazon S3 | |
|---|---|---|
| Cái sai | Xóa nhầm dữ liệu trên máy chủ | Một giá trị gõ sai, gỡ quá nhiều máy chủ |
| Chỗ yếu chính | Sao lưu không dùng được | Công cụ không giới hạn và hồi phục chưa thử |
| Bài học chung | Đừng chỉ dựa vào việc người không sai | Đừng chỉ dựa vào việc người không sai |
Trước khi chạy, không phải sau.
Lệnh có thể bị từ chối nếu vượt mức.
Gỡ từng ít một để kịp thấy.
Đã thử chưa, hay chỉ đoán.
Giờ theo Thái Bình Dương. Sự cố kéo dài khoảng 4 giờ 17 phút, ban ngày.
Nếu câu trả lời là "tất cả", đó là việc đầu tiên cần sửa.