Ngày 14/3/2023, đội vận hành Spotify phát hiện cụm Cassandra cluster chính phục vụ metadata người dùng bị mất kết nối hàng loạt. Chỉ trong vài phút, 60% số node trong một trong những cluster lớn nhất của Spotify ngừng phản hồi do lỗi firmware ổ cứng trong quá trình rolling upgrade. Tưởng chừng đây sẽ là downtime nghiêm trọng, nhưng hệ thống vẫn duy trì hoạt động bình thường không người dùng nào bị gián đoạn nghe nhạc.

Chuyện gì đã xảy ra?
Cụm Cassandra này lưu trữ thông tin playlist, trạng thái nghe, token xác thực và metadata người dùng những phần dữ liệu mà mỗi request từ client đều phải truy cập. Trong đợt nâng cấp định kỳ firmware ổ cứng, một batch firmware lỗi đã khiến hơn nửa số node trong cluster không thể khởi động lại, dẫn tới tình trạng mất quorum. Nhưng nhờ thiết kế replication factor = 3 và multi-DC replication, các region khác của Spotify vẫn tiếp tục phục vụ request từ người dùng toàn cầu. Hệ thống routing tự động của Spotify nhanh chóng reroute traffic sang các replica còn sống mà không cần can thiệp thủ công.
Timeline sự cố
| Thời điểm (UTC) | Diễn biến chính |
|---|---|
| 03:12 | Đội SRE phát hiện nhiều node Cassandra ngừng phản hồi trong region eu-west-1. |
| 03:18 | Kiểm tra cho thấy 60% node bị lỗi firmware, mất quorum tạm thời. |
| 03:22 | Routing layer (Gateway + Envoy) tự động chuyển toàn bộ truy vấn đọc/ghi sang replica tại us-east-1. |
| 03:30 | Spotify kích hoạt quy trình auto-replacement: tái khởi tạo node mới từ snapshot. |
| 03:45 | Cluster dần phục hồi. Các replica vẫn giữ consistency nhờ hinted handoff và commit log replay. |
| 04:00 | 100% traffic client hoạt động bình thường. Không ghi nhận downtime hay mất dữ liệu. |
| 08:00 | Toàn bộ cluster trở lại trạng thái cân bằng, công bố sự cố nội bộ hoàn tất. |
Tổng thời gian khắc phục: ~5 giờ, không có gián đoạn người dùng.
Cách tổ chức khắc phục sự cố
- Replication đa vùng: Mỗi dữ liệu được nhân bản ít nhất ba lần trên các region khác nhau, đảm bảo khả năng đọc/ghi khi mất quorum cục bộ.
- Routing động: Gateway layer có cơ chế dynamic traffic shifting, reroute truy vấn sang cluster khác chỉ trong vài giây.
- Tự động thay thế node: Hệ thống provisioning của Spotify (dựa trên Kubernetes + Cassandra Operator) tái tạo node hỏng từ snapshot gần nhất.
- Kiểm tra consistency: Sau khi khôi phục, toàn bộ dữ liệu được xác minh qua repair job và compaction, đảm bảo không mất commit.
- Cảnh báo phân tầng: Alert system chia làm ba cấp (node-level, quorum-level, traffic-level), giúp SRE xử lý đúng tầng sự cố.
Phản ứng từ cộng đồng
- Cộng đồng kỹ sư phân tán đánh giá đây là một “thành công trong im lặng” sự cố cực lớn mà người dùng không hề nhận ra.
- Các nhóm SRE của Netflix và Pinterest sau đó trích dẫn case này như ví dụ điển hình cho design-for-failure: giả định luôn có node hỏng, nhưng hệ thống vẫn phục vụ bình thường.
- Một bài viết nội bộ của Spotify khẳng định: “Resilience không đến từ việc tránh lỗi, mà từ việc kiến trúc sẵn để lỗi không gây ảnh hưởng.”
DevOps VietNam facts: Không có hệ thống nào tránh được lỗi, nhưng có những hệ thống được thiết kế để không ai nhận ra khi nó đang gặp lỗi.




