Cơ bản về multiple data center

Cơ bản về multiple data center

Triển khai dịch vụ trên nhiều DC trải rộng trên nhiều khu vực địa lý là một vấn đề rất thú vị và nhiều thách thức đối với một nhà phát triển.Bài viết này sẽ điểm qua một số quan điểm của cá nhân tôi đối với các thách thức chung cho chủ đề này ( việc triển khai thực tế có thể rất rất phức tạp hơn phạm vi của bài viết tuy nhiên chúng ta hãy cùng điểm qua những thách thức chung)

1. Ưu điểm

Tăng khả năng chống chịu của toàn bộ hệ thống
Có thể áp dụng các policy-chính sách theo vị trí địa lý

2.Hạn chế & Vấn đề thách thức

Độ trễ lớn.
Giải pháp phổ biến nhất cho tất cả những vấn đề này là có các máy chủ và trung tâm dữ liệu được lưu trữ ở nhiều vị trí địa lý. Nó giải quyết vấn đề về độ trễ bằng cách chuyển hướng người dùng đến máy chủ gần nhất và khắc phục sự cố sau thảm họa bằng cách có các máy chủ dự phòng trên nhiều vị trí địa lý. Và khi bạn có các máy chủ được lưu trữ ở các vị trí địa lý khác nhau, bạn có thể áp dụng có chọn lọc các chính sách sẽ được áp dụng cho từng khu vực và khiến chúng tuân thủ luật và quy định bảo vệ dữ liệu của khu vực.

Giữ cho dữ liệu được chia sẻ nhất quán.
Về cơ bản, dữ liệu được ghi bởi một cụm máy chủ phải có sẵn cho các cụm khác (và ngược lại bất cứ khi nào được yêu cầu) trong thời gian thực để đảm bảo tính nhất quán. Trong trường hợp cả hai cụm viết cùng một lúc, việc hợp nhất dữ liệu đó có thể phức tạp và đầy thách thức.

3.Giữ cho dữ liệu được nhất quán

Mô hình triển khai database trong multiple DC

Unique keys for all tables
Khi bạn đã định cấu hình bản sao hai chiều trong cơ sở dữ liệu của mình, sẽ có nhiều khả năng xảy ra xung đột dữ liệu trong đó. Do đó, việc phát hiện và tránh xung đột là rất quan trọng để hệ thống chạy trơn tru. Đối với điều đó, một yêu cầu chính là có các ràng buộc khóa duy nhất (không phải null) hoặc các ràng buộc khóa chính cho tất cả các bảng
Một số phương án các bạn có thể tham khảo :

Handle auto-increment columns

Node-specific sequence range
Trong phương pháp này, mỗi nút chính của cụm cơ sở dữ liệu được cung cấp một phạm vi trình tự cho cột tăng tự động. Ví dụ: một nút chính có phạm vi từ 1-500000 và nút thứ hai có phạm vi từ 500001-1000000. Điều này đảm bảo rằng mỗi nút chính luôn có các giá trị tăng tự động duy nhất

Common sequence
Cách tiếp cận này sử dụng một trình tự chung, được chia sẻ. Chuỗi được lưu trữ ở một vị trí duy nhất và mỗi nút chính thực hiện cuộc gọi đến vị trí đó để chọn số có sẵn tiếp theo trong chuỗi chung. Tuy nhiên, phương pháp này không hiệu quả so với các phương pháp trước do độ trễ mạng được thêm vào trong cuộc gọi tìm nạp số tiếp theo.

_Start value variation. _
Theo cách tiếp cận này, mỗi nút chính được cung cấp một giá trị bắt đầu khác nhau và mỗi nút sẽ tăng cột tăng tự động theo số lượng nút chính trong hệ thống. Ví dụ: nếu có ba nút chính trong hệ thống, giá trị ban đầu của ba nút đó sẽ lần lượt là 1, 2 và 3. Tất cả những thứ này sẽ tăng giá trị của chúng lên 3, là số nút chính trong hệ thống. Vì vậy, ba trình tự sẽ như thế này.

Node 1 – 1,4,7,10,…
Node 2 – 2,5,8,11,…
Node 3 – 3,6,9,12,…

Remove Cascade Operations


Chú ý :
Tránh xung đột token truy cập giữa các trung tâm dữ liệu
Ngăn chặn “Data Looping”
Không được replicate thao tác DDL
Chỉ định một cơ sở dữ liệu là “Nguồn đáng tin cậy” ( đơn giản nhất là dùng 1 csdl làm master db, tuy nhiên multiple master db vẫn có trường hợp buộc phải sử dụng)

Mô hình triển khai hệ thống database và đồng bộ tập tin

Giải quyết vấn đề về độ trễ

Triển khai Active-Active đối xứng

Ưu điểm
Giảm chi phí hoạt động vì tất cả API đều giống hệt nhau.
HA đơn giản.
Lớp tiếp xúc API thuận tiện

Nhược điểm
Thiếu định tuyến theo location.
Có thể truy cập đến hệ thống backend từ bất kì gateway nào.
Tốn chi phí triển khai

Local Proxy Deployment

Ưu điểm
Chi phí đầu ra duy nhất (trừ khi chuyển đổi dự phòng khu vực giữa API và hệ thống backend được triển khai và hoạt động).
Có thể cố định lưu lượng đúng với hệ thống backend (ví dụ traffic của hr sẽ không nhảy sang region khác)

Nhược điểm
Rò rỉ logic backend
Tên máy chủ khác nhau làm phức tạp việc triển khai ứng dụng client.

Multi-Cluster Dispatcher

Ưu điểm
Single hostname
Không rò rỉ cấu trúc liên kết triển khai
Single egress cost
Region pinning is possible

Nhược điểm
Yêu cầu triển khai proxy bổ sung và proxy bổ sung.
Các nhà phát triển proxy cần lưu ý về cấu trúc liên kết bản địa hóa (thời gian, tiền tệ….) khi liên kết các môi trường với các nhóm môi trường.
Phát sinh một số vấn đề với TLS re-encryption

Please follow and like us:
Pin Share