Sử Dụng MPTCP Để Tăng Băng Thông Cho Github - nói dối e blog

Sử Dụng MPTCP Để Tăng Băng Thông Cho Github

Từ năm ngoái, các dự án công ty chúng tôi bắt đầu chuyển dần sang lưu trữ private trên GitHub. Nhờ giao diện thân thiện và hiệu suất vượt trội, GitHub đã hoàn toàn thay thế các hệ thống git nội bộ vốn kém tiện lợi. Tuy nhiên, việc đầu tư phiên bản doanh nghiệp tự quản lý lại kéo theo chi phí cao đến mức trung bình 250 USD/người/năm – con số quá lớn cho quỹ dự án không quá nhiều của chúng tôi. Với nhu cầu kho lưu trữ private hiện tại, gói trả phí của GitHub hoàn toàn đáp ứng tốt, ngoại trừ vấn đề truy cập do máy chủ GitHub đặt tại nước ngoài.

Trước đây, dù sử dụng mạng viễn thông nào (FPT, VNPT hay Viettel), tốc độ clone dự án từ GitHub tại văn phòng chưa bao giờ vượt quá 200KB/s. Đường truyền quốc tế thuê ngoài vừa có băng thông thấp, vừa dễ phát sinh chi phí do mô hình “pay-per-use”. Thêm vào đó, tình trạng packet loss và kết nối không ổn định luôn là cơn ác mộng khi làm việc với kho mã nguồn lớn.

Tận dụng hạ tầng mạng văn phòng với 4 đường truyền riêng từ các nhà cung cấp dịch vụ khác nhau, nhóm kỹ thuật chúng tôi bắt đầu tìm hướng tích hợp tài nguyên mạng này. Điểm nghẽn rõ ràng nằm ở “bức tường kỹ thuật số”, nên giải pháp tập trung vào tối ưu hóa kết nối vượt tường lửa.

Trong thử nghiệm tại máy chủ Linode ở Mỹ, tốc độ clone đạt tới 8MB/s – hiệu suất đáng mơ ước. Xuất phát từ ý tưởng xây dựng tunnel hỗ trợ kết nối đa luồng TCP, tôi nhanh chóng nhớ ra MPTCP chính là giải pháp lý tưởng. Nhóm kỹ thuật viên đam mê công nghệ chúng tôi từng làm quen với MPTCP từ năm trước, nên việc triển khai lại không gặp nhiều khó khăn.

Quy trình chuẩn bị bao gồm:

  1. Nâng cấp hệ thống VPS Linode cũ (thay kernel hỗ trợ MPTCP)
  2. Cấu hình bảng định tuyến trên gateway văn phòng để giám sát đồng thời 4 cổng ra mạng ngoài
  3. Thiết lập tunnel định tuyến IP của GitHub về máy chủ trung gian

Kết quả thử nghiệm cho thấy khi kích hoạt MPTCP kết hợp đồng thời cả 4 đường truyền, băng thông truy cập GitHub tăng vọt. Tốc độ clone kho Skynet đạt 500KB/s – 1MB/s, gấp 5-10 lần trước đây. Hiện tại, chúng tôi đang triển khai DNS nội bộ để điều hướng các truy vấn tới tunnel. Trong tương lai, giải pháp OpenVPN có thể thay thế phương pháp hiện tại, cho phép định tuyến thông minh mà không cần sửa DNS. Tuy nhiên, nhóm cần đánh giá thêm về khả năng bị giám sát giao thức OpenVPN từ hệ thống tường lửa.

Giải pháp này tận dụng tối đa nguồn lực mạng hiện có, biến “hạn chế” thành “lợi thế” trong bối cảnh kết nối quốc tế còn nhiều cản trở. Hiệu quả rõ rệt từ MPTCP không chỉ giải quyết bài toán bandwidth mà còn mở ra hướng tiếp cận sáng tạo cho các vấn đề kỹ thuật liên quan đến mạng đa đường truyền.

0%