Mạng phân phối nội dung
Content delivery network (CDN) là một mạng các proxy server phân tán trên toàn cầu, phục vụ nội dung từ những vị trí gần người dùng hơn. Thông thường các file tĩnh như HTML/CSS/JS, ảnh và video được phục vụ từ CDN, dù một số CDN như CloudFront của Amazon cũng hỗ trợ nội dung động. Việc phân giải DNS của site sẽ cho client biết cần liên hệ server nào.
Phục vụ nội dung từ CDN có thể cải thiện đáng kể hiệu năng theo hai cách:
- Người dùng nhận nội dung từ các data center gần họ
- Server của bạn không phải xử lý những request mà CDN đã đáp ứng
Push CDN
Push CDN nhận nội dung mới mỗi khi có thay đổi trên server của bạn. Bạn chịu hoàn toàn trách nhiệm cung cấp nội dung: upload trực tiếp lên CDN và viết lại URL để trỏ tới CDN. Bạn có thể cấu hình thời điểm nội dung hết hạn và thời điểm được cập nhật. Nội dung chỉ được upload khi mới hoặc có thay đổi, giúp giảm thiểu traffic nhưng tốn nhiều dung lượng lưu trữ nhất.
Các site có ít traffic hoặc có nội dung không thường xuyên cập nhật phù hợp với push CDN. Nội dung được đặt lên CDN một lần, thay vì bị pull lại theo chu kỳ đều đặn.
Pull CDN
Pull CDN lấy nội dung mới từ server của bạn khi người dùng đầu tiên request nội dung đó. Bạn để nội dung trên server và viết lại URL để trỏ tới CDN. Hệ quả là request sẽ chậm hơn cho tới khi nội dung được cache trên CDN.
Time-to-live (TTL) quyết định nội dung được cache trong bao lâu. Pull CDN giảm thiểu dung lượng lưu trữ trên CDN, nhưng có thể tạo ra traffic thừa nếu file hết hạn và bị pull lại trong khi thực tế chưa thay đổi.
Các site có traffic lớn phù hợp với pull CDN, vì traffic được phân bổ đều hơn khi chỉ những nội dung vừa được request gần đây mới nằm lại trên CDN.
Nhược điểm: CDN
- Chi phí CDN có thể đáng kể tùy theo traffic, dù cần cân nhắc với các chi phí phát sinh thêm nếu không dùng CDN.
- Nội dung có thể đã cũ nếu được cập nhật trước khi TTL làm nó hết hạn.
- CDN đòi hỏi phải đổi URL của nội dung tĩnh để trỏ tới CDN.
