Skip to content

Cold Potato vs Hot Potato Routing

Vì sao quan trọng trong sản xuất

Khi gói tin của bạn từ nguồn tới đích, có 2 cách để định tuyến:

Cold Potato (mặc định GCP):

  • Giữ lưu lượng trong mạng GCP càng lâu càng tốt
  • Thoát gần đích (egress point gần đích)
  • Độ trễ thấp, kiểm soát cao, nhưng đắt (dùng backbone nội bộ)

Hot Potato (thay thế):

  • Thoát mạng GCP sớm nhất có thể
  • Để internet công cộng định tuyến tới đích
  • Chi phí thấp (ít dùng backbone), nhưng độ trễ cao + kiểm soát thấp

Hiểu sự cân bằng này giúp tối ưu hóa quyết định mạng — khi nào dùng chiến lược nào?

Mô hình nội bộ: Chọn điểm thoát

Định tuyến Cold Potato

┌──────────────────┐
│ Nguồn (us-east1) │
│ IP: 203.0.113.1  │
└────────┬─────────┘

         │ (Giữ trên backbone GCP)

    ┌────▼────────────────────────┐
    │ Mạng Backbone Riêng GCP      │
    │ (Mạng Premium Tier)          │
    └────┬─────────────────────────┘

         │ (Định tuyến tới đích)

    ┌────▼─────────────────────┐
    │ PoP gần đích              │
    │ (ví dụ, PoP-LA cho dùng   │
    │ ở Nam California)         │
    └────┬────────────────────┘
         │ (Thoát internet công cộng)

    ┌────▼──────────┐
    │ Đích          │
    │ (ISP dùng)    │
    └───────────────┘

Đặc điểm:
├─ Đường: Nguồn → backbone GCP → PoP gần đích → internet công cộng
├─ Độ trễ: Tốt (backbone nhanh hơn internet)
├─ Chi phí: Cao hơn (backbone tính phí)
├─ Kiểm soát: Cao (ở mạng GCP hầu hết)
└─ Chiến lược: Ưu tiên độ trễ, không lo chi phí thoát

Định tuyến Hot Potato

┌──────────────────┐
│ Nguồn (us-east1) │
│ IP: 203.0.113.1  │
└────────┬─────────┘

         │ (Thoát nhanh)

    ┌────▼──────────┐
    │ PoP cục bộ     │
    │ (PoP-VA ở      │
    │ us-east1)      │
    └────┬──────────┘
         │ (Thoát internet công cộng)

    ┌────▼──────────────────────────────────────┐
    │ Internet Công Cộng                        │
    │ (Định tuyến ISP, nhiều hop, đường dài)    │
    └────┬───────────────────────────────────────┘

    ┌────▼──────────┐
    │ Đích          │
    │ (ISP dùng)    │
    └───────────────┘

Đặc điểm:
├─ Đường: Nguồn → PoP cục bộ → thoát ngay → định tuyến internet
├─ Độ trễ: Xấu hơn (internet chậm hơn backbone)
├─ Chi phí: Thấp hơn (ít dùng backbone)
├─ Kiểm soát: Thấp (tuỳ thuộc định tuyến internet, ISP)
└─ Chiến lược: Tối ưu hóa chi phí, chấp nhận sự cân bằng độ trễ

Mô hình kiến trúc production

Mô hình 1: Phát trực tuyến video (Đề xuất Cold Potato)

Nguồn nội dung: us-central1
Dùng: Tokyo, ISP: NTT (200.0.0.0/24)

Cold Potato:
├─ Phát: us-central1 → backbone GCP → PoP-Tokyo → dùng
├─ Độ trễ: ~120ms (qua đường backbone tối ưu)
├─ Dùng lưu lượng: Cao (tính phí backbone)
├─ Chất lượng: Ổn định, dự đoán được

Hot Potato (lựa chọn xấu):
├─ Phát: us-central1 → PoP-Virginia → internet → ISP Tokyo
├─ Độ trễ: ~200ms (định tuyến internet dài hơn)
├─ Chi phí: Thấp hơn
├─ Chất lượng: Đóng băng, biến đổi, UX xấu

Quyết định: Cold Potato (độ trễ + UX quan trọng)

Mô hình 2: Xuất dữ liệu hàng loạt (Hot Potato chấp nhận được)

Nguồn dữ liệu: us-central1 (Xuất phân tích)
Đích: Trung tâm dữ liệu khách ở Frankfurt

Cold Potato:
├─ Truyền: 500GB dữ liệu qua backbone → PoP-EU → khách
├─ Thời gian: 30 phút (500GB ÷ lưu lượng cao)
├─ Chi phí: $0.12/GB (backbone Premium) = $60
├─ Tổng chi phí: $60 + tính toán + lưu trữ

Hot Potato:
├─ Truyền: 500GB qua PoP-Virginia → internet → Frankfurt
├─ Thời gian: 45 phút (internet chậm hơn, tắc hơn)
├─ Chi phí: $0.04/GB (Standard/internet) = $20
├─ Tổng chi phí: $20 + tính toán + lưu trữ

Quyết định: Hot Potato (tiết kiệm chi phí hơn sự cân bằng 15 phút)

Mô hình 3: Sao chép cơ sở dữ liệu (Cold Potato)

Chính: us-central1
Bản sao: eu-west1 (sao chép đồng bộ, phải nhanh)

Cold Potato:
├─ Sao chép: us-central1 → backbone → eu-west1
├─ Độ trễ: ~80ms một chiều (SLA backbone)
├─ Thông lượng: Cao (backbone riêng)
├─ Tính nhất quán: Mạnh (đồng bộ nhanh có thể)

Hot Potato (không chấp nhận được):
├─ Sao chép: us-central1 → PoP → internet → eu-west1
├─ Độ trễ: ~150-200ms (internet biến đổi)
├─ Thông lượng: Hạn chế (tắc ISP có thể)
├─ Tính nhất quán: Có nguy hiểm (đồng bộ chậm hết giờ)

Quyết định: Cold Potato (cần cho tính nhất quán mạnh)

Chiến lược Egress Point của GCP

GCP triển khai cold potato theo mặc định cho Premium Tier:

Điểm thoát mỗi vùng:
├─ us-central1: Thoát chủ yếu qua PoP-US (Ashburn, Virginia)
├─ eu-west1: Thoát chủ yếu qua PoP-EU (London, Belgium)
├─ asia-southeast1: Thoát chủ yếu qua PoP-Asia (Singapore)

└─ Logíc định tuyến:
   └─ IP đích: Gói tin nên thoát ở đâu?
   └─ Tra cứu: Bảng định tuyến nói "thoát qua PoP gần đích nhất"
   └─ Kết quả: Cold Potato (lấy đường backbone dài, thoát gần đích)

Standard Tier dùng chiến lược khác (tối ưu chi phí):

Thoát Standard Tier:
├─ Ưu tiên: Thoát từ vùng nơi lưu lượng bắt đầu
├─ Ví dụ: Lưu lượng từ us-central1 → thoát us-central1
├─ Ngay cả nếu đích ở eu-west1: Vẫn thoát từ us-central1
├─ Kết quả: Hot Potato (thoát sớm, internet công cộng đưa tới EU)
├─ Tại sao: Tiết kiệm dùng backbone, giảm chi phí

Kịch bản hỏng thực tế

Kịch bản 1: Tắc Backbone (Bottleneck Cold Potato)

Dấu hiệu: Tất cả lưu lượng Premium Tier từ us-central1 tới eu-west1 chậm
├─ Độ trễ: 80ms → 300ms
├─ Mất gói tin: <1%

Nguyên nhân gốc:
└─ Cold Potato: Tất cả lưu lượng định tuyến qua backbone
   └─ Dung lượng backbone: Quá tải trong giờ cao điểm
   └─ Nút thắt: Uplink PoP-EU

Tác động:
├─ Tất cả truyền dữ liệu: Chậm
├─ Sao chép cơ sở dữ liệu: Trễ
├─ Dùng: Cảm nhận chậm

Tùy chọn:
├─ Nâng cấp dung lượng backbone (dài hạn, đắt)
├─ Chuyển sang Hot Potato tạm thời (SLA thấp hơn)
├─ Dịch chuyển lưu lượng sang lúc ít tắc (nếu có thể)
└─ Dùng Standard Tier cho dữ liệu không quan trọng (chi phí thấp)

Kịch bản 2: Lỗi định tuyến ISP (Lỗ hổng Hot Potato)

Dấu hiệu: Dùng từ ISP Mỹ không tiếp cận dữ liệu ở eu-west1
├─ Độ trễ: Bắt đầu 150ms (ok cho internet)
├─ Rồi timeout (3-5 lần)
├─ Mô hình: Gián đoạn (mỗi 5-10 giây)

Nguyên nhân gốc:
└─ Hot Potato: Thoát qua PoP US
   └─ Định tuyến ISP: Lỗi BGP (tuyến quảng cáo/rút lặp lại)
   └─ Mất gói tin: Tuyến không ổn định
   └─ Hop: 200-300% vượt dự kiến do thay đổi định tuyến

Tác động:
├─ Truyền lại TCP: Thường xuyên
├─ Thông lượng: 50% bình thường
├─ Ảnh hưởng chỉ cặp ISP này

Giải quyết:
├─ ISP sửa định tuyến (trách nhiệm họ)
├─ Chuyển sang Cold Potato: Ổn định độ trễ tốt hơn

Lỗi thường gặp & Mô hình chống

Lỗi 1: Giả định Cold Potato luôn tốt hơn

Suy nghĩ sai:

"Cold Potato độ trễ tốt hơn, luôn dùng"

Hiểu đúng:

  • Cold Potato: Tốt cho luồng quan trọng độ trễ, lưu lượng cao
  • Hot Potato: Tốt cho tối ưu chi phí luồng không quan trọng
  • Kết hợp: Dùng cả hai chiến lược theo trường hợp

Phòng chống: Phân tích mỗi luồng dữ liệu. Ghi chép chiến lược định tuyến.

Lỗi 2: Không giám sát điểm thoát

Suy nghĩ sai:

"Định tuyến lưu lượng tự động, không cần giám sát"

Hiểu đúng:

  • Thay đổi định tuyến: Có thể gây hành động bất ngờ
  • Dịch chuyển điểm thoát: Có thể tăng độ trễ
  • Cần: Giám sát để phát hiện dị thường

Phòng chống: Thiết lập giám sát độ trễ thoát mỗi cặp vùng.

Lỗi 3: Phóng to để bù Hot Potato

Suy nghĩ sai:

"Cold Potato quá đắt, dùng Hot Potato + máy lớn hơn"

Hiểu đúng:

  • Vấn đề độ trễ: Không thể sửa bằng tính toán nhiều hơn
  • Tốt hơn: Chọn tier phù hợp công việc
  • Nếu độ trễ quan trọng: Cold Potato (premium tier) cần
  • Nếu chi phí quan trọng: Hot Potato (standard tier) chấp nhận được

Phòng chống: Hồ sơ trước tối ưu hóa. Quyết định sự cân bằng cảnh sác.

Hướng dẫn triển khai GCP

Giám sát điểm thoát

bash
# VPC Flow Logs ghi lại thông tin điểm thoát
gcloud compute networks subnets update my-subnet \
  --enable-flow-logs \
  --region=us-central1

# Truy vấn luồng lưu lượng cao với thông tin thoát
gcloud logging read \
  "resource.type=gce_instance AND jsonPayload.bytes_sent>1000000" \
  --format='table(jsonPayload.dst_ip, jsonPayload.bytes_sent, jsonPayload.src_addr)' \
  --limit=20

# Kiểm tra tier mạng (Premium vs Standard)
gcloud compute addresses list --global --format='table(name, network_tier)'
gcloud compute addresses list --format='table(name, region, network_tier)'

Buộc Tier cụ thể để kiểm soát

bash
# Tạo IP Premium tier (cold potato)
gcloud compute addresses create premium-ip \
  --global \
  --network-tier=premium

# Tạo IP Standard tier (hot potato)
gcloud compute addresses create standard-ip \
  --region=us-central1 \
  --network-tier=standard

# Dùng trong quy tắc chuyển tiếp dựa trên loại công việc
gcloud compute forwarding-rules create latency-critical-rule \
  --global \
  --target-https-proxy=my-proxy \
  --address=premium-ip \
  --ports=443

gcloud compute forwarding-rules create cost-optimized-rule \
  --region=us-central1 \
  --target-http-proxy=regional-proxy \
  --address=standard-ip \
  --ports=80

Tài liệu tham khảo


Tiếp theo: Tier dịch vụ mạng: Sự khác biệt đường dữ liệu — Đi sâu vào hàm ý thực tế