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ơnLỗ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=80Tài liệu tham khảo
- Tier dịch vụ mạng: Cold Potato vs Hot Potato — Chiến lược định tuyến chính thức
- VPC Flow Logs để giám sát — Quan sát mô hình thoát
- Tối ưu hóa chi phí thoát — Kỹ thuật tối ưu chi phí
- Bảng điều khiển độ trễ mạng — Giám sát độ trễ định tuyến thực tế
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ế