The Enterprise Multi-Active Disaster Recovery System

Bài tóm tắt Alibaba 2021 3. Quy mô lớn Độ khó: Trung bình

Alibaba · 2021 · 3. Quy mô lớn · Độ khó: Trung bình — bài gốc

Bài quảng bá sản phẩm MSHA của Alibaba Cloud, dựa trên kinh nghiệm multi-active nội bộ của Alibaba. Văn bản dịch, nhiều chỗ khó hiểu; không có số liệu. Mọi nhận định là theo Alibaba.

Bối cảnh: ba thế hệ disaster recovery

  • DR 1.0: chỉ backup dữ liệu (cold backup) sang một datacenter khác. Theo Alibaba, người ta không dám chuyển sang: bản cold backup lệch phiên bản với production, và sợ chuyển đi rồi không chuyển về được.
  • DR 2.0: tính tới ứng dụng: active-active trong cùng vùng (khoảng cách giới hạn), hoặc "ba datacenter hai vùng" (active-active cùng vùng + cold backup ở xa).
  • DR 3.0: active geo-redundancy: ba datacenter trở lên ở nhiều nơi cùng phục vụ. Chuyển đổi tính bằng phút, so với hàng ngày khi dựa vào cold backup; chi phí xây dựng cao hơn.

Nguyên tắc

  • Không làm multi-active cho mọi service, chỉ cho nghiệp vụ lõi (ví dụ Double 11: đặt hàng ưu tiên hơn logistics).
  • Unitization: chia nghiệp vụ theo một chiều (ID user, số thẻ, vùng) để mỗi unit tự phục vụ trọn vẹn; tỉ lệ traffic giữa các datacenter điều chỉnh được (50/50, 60/40...).
  • Replication hai chiều thì phải chặn replication vòng và bảo đảm số thứ tự/ID sinh ở nhiều datacenter không trùng.

Ba tầng của giải pháp

  • Tầng truy cập: route traffic tới đúng unit theo quy tắc chia. Đổi DNS là cách truyền thống nhưng làm đứt giao dịch đang chạy, và tầng dưới không biết traffic đã chuyển, nên lời gọi giữa chừng có thể vẫn ở datacenter cũ. Thay bằng gắn nhãn request và truyền nhãn qua microservice để request ở lại trong một unit.
  • Tầng ứng dụng: routing service, sinh ID duy nhất toàn cục, quy tắc chia shard; message chưa consume khi chuyển unit phải được đồng bộ sang unit mới.
  • Tầng dữ liệu: chặn ghi (write-prohibition) khi chuyển: chỉ mở ghi lại ở đích khi dữ liệu đã đồng bộ xong, để tránh ghi lên dữ liệu chưa bắt kịp. Replication yếu thì nhiều nghiệp vụ ghi bị chặn lâu.
  • Mục tiêu "0-5-10" (theo Alibaba): blue-green release theo unit để phòng ngừa; định vị lỗi trong 5 phút; khôi phục trong 10 phút. Có diễn tập chuyển traffic định kỳ qua console.

Bài học cho SWE

  • DR không được diễn tập thì không ai dám dùng. Multi-active giải quyết điều này vì mọi datacenter đều đang phục vụ (Độ tin cậy và multi-region).
  • Muốn chuyển vùng sạch thì cả request phải ở lại một unit, không chỉ điểm vào.
  • Chặn ghi trong cửa sổ chuyển đổi là cách đổi availability lấy tính đúng khi replication còn trễ.

Liên quan