🔑 ĐỊNH NGHĨA
Hình minh họa dưới đây là một ví dụ với hệ thống sử dụng hai Trung tâm Dữ liệu, thuật ngữ tiếng Anh là Data Center (viết tắt là DC)
Thông thường, người dùng sẽ được định tuyến theo vị trí địa lý (thuật ngữ tiếng Anh là GeoDNS-routed hoặc Geo-routed) đến Data Center gần với họ nhất.
Lưu lượng truy cập phân chia theo tỉ lệ:
-
x% ở Miền Đông nước Mỹ (US-East)
-
Còn lại (100 – x)% ở Miền Tây nước Mỹ (US-West)
GeoDNS là một dịch vụ DNS cho phép phân giải tên miền thành địa chỉ IP dựa trên vị trí của người dùng.
💥 XỬ LÝ KHI CÓ SỰ CỐ
Trong trường hợp có bất kỳ sự cố nào với Data Center khiến chúng ngừng hoạt động, chúng ta có thể điều hướng tất cả lưu lượng truy cập đến Data Center còn lại đang hoạt động tốt.
Ví dụ như hình minh họa dưới đây, Data Center 2 (US-West) đang gặp sự cố ngừng hoạt động. Do đó, 100% lưu lượng truy cập sẽ được chuyển đến Data Center 1 (US-East)
🧗♂️ THÁCH THỨC KHI TRIỂN KHAI NHIỀU DATA CENTER
1. Điều hướng lưu lượng truy cập:
-
Cần có các công cụ hiệu quả để điều hướng lưu lượng truy cập đến Data Center một cách chính xác.
-
Điển hình là GeoDNS như minh họa ở đầu bài viết, nó có thể được sử dụng để điều hướng lưu lượng truy cập đến Data Center gần nhất, tùy thuộc vào vị trí của người dùng.
2. Đồng bộ dữ liệu:
-
Người dùng từ các region khác nhau có thể sử dụng các local database hoặc cache khác nhau.
-
Vì vậy cần thiết phải triển khai replicate data trên các Data Center. Để trường hợp một Data Center bị lỗi, phải điều hướng sang Data Center khác, thì dữ liệu vẫn đảm bảo chính xác.
-
Một case điển hình đó là Netflix, các bạn có thể đọc thêm tài liệu được họ công bố tại đây.
3. Test và deployment:
-
Khi triển khai hệ thống gồm nhiều Data Center, một trong những lưu ý quan trọng đó là bạn sẽ phải test xem trang web của mình có hoạt động đúng ở các vị trí địa lý khác nhau tương ứng với các Data Center hay không.
-
Bên cạnh đó, các công cụ automated deployment cũng rất quan trọng, giúp cho các service đảm bảo tính nhất quán đối với tất cả các Data Center.
LỜI NHẮN
Bạn có thể tham khảo thêm những bài viết trong series "System Design - Thiết kế Hệ thống" của mình trên blog này nhé. Hi vọng kiến thức này hữu ích với bạn.
Follow mình trên Facebook "CLB Lập trình - THPT Ngọc Tảo" hoặc kênh Youtube "Tờ Mờ Sáng học Lập trình" để cùng nhau học tập, chia sẻ những kiến thức công nghệ và lập trình hoàn toàn miễn phí nhé!
Facebook CLB Lập trình - THPT Ngọc Tảo: https://www.facebook.com/clb.it.ngoctao/
Youtube Tờ Mờ Sáng học Lập trình: https://www.youtube.com/@tmsangdev
Hẹn gặp lại 👋
BẠN CÓ THỂ ĐỌC THÊM
Clean Architecture: A Craftsman’s Guide to Software Structure and Design - Robert C. Martin
Designing Data – Insensitive applications - Martin Kleppmann
System Analysis and Design - Alan Dennis, Barbara Haley Wixom, Roberta M. Roth
System Design Interview - Alex Xu
Modern Systems Analysis and Design - Joseph Valacich, Joey George
Head First Design Patterns - Eric Freeman, Elisabeth Robson