Có thể bạn cũng có hiểu nhầm này về CDN đấy: máy chủ CDN sẽ sao chép tất cả các file tĩnh trên website của bạn và lưu nó trên toàn cầu! Nó không đúng đâu

Tôi vẫn cứ đinh ninh là như vậy suốt! Nghĩa là sau khi bạn nhập website vào phần quản trị của dịch vụ CDN, nó sẽ kéo tất cả file tĩnh như ảnh, CSS, JS, font cục bộ, v.v…về tất cả các cụm máy chủ CDN trên toàn cầu.

Các dịch vụ CDN chất lượng đều dùng ổ SSD (loại đắt tiền) và thường có 50 PoP, thậm chí vài dịch vụ còn hơn 100 PoP, cá biệt như Cloudflare còn có 200 PoP. Giờ nếu website của bạn có 3GB dữ liệu tĩnh, và 50 PoP này sao chép đầy đủ cả, thì bạn đã ngốn của họ 150GB ổ SSD rồi & và có thể họ chỉ kiếm được 1 – 2 $ / tháng từ bạn! Họ không khờ như thế! Sẽ chỉ có những file quan trọng được lưu mà thôi.

Có vài điều mà tôi rút ra khi tìm hiểu kỹ hơn về CDN đó là:

  • Chỉ các file được người dùng yêu cầu mới được lưu ở cụm máy chủ CDN. Nghĩa là nếu bạn có 1000 ảnh, mà chỉ có 300 ảnh được yêu cầu, thì 300 ảnh này mới được lôi về CDN;
  • Không phải tất cả các cụm máy chủ sẽ sao chép lại ảnh đã được yêu cầu. Họ sẽ phân theo khu vực. File yêu cầu từ châu Á sẽ được lưu ở cụm máy chủ châu Á, và nếu file đó chưa được yêu cầu ở Bắc Mỹ thì nó sẽ không được lưu ở đây. Do vậy một cụm máy chủ CDN ở châu Á mà bạn có khách truy cập chính có thể lưu 70% dữ liệu tĩnh từ website của bạn, trong khi máy chủ CDN ở Bắc Mỹ, nơi bạn không có mấy người xem, có thể chỉ lưu chưa nổi 5%;
  • Các file có tỷ lệ truy cập thấp sẽ bị xoá khỏi CDN. Theo thời gian thì sớm muộn hầu như các dữ liệu tĩnh trên website sẽ có người yêu cầu. Nhưng số lượng sẽ khác nhau rất nhiều. Hệt như chuyện tủ quần áo của bạn sẽ đều được mặc qua, nhưng sẽ chỉ có vài bộ được mặc thàng ngày, vài bộ vài tuần mới mặc, và sẽ nhiều bộ cả tháng không mặc! Để tối ưu, các dịch vụ CDN sẽ loại bỏ những file nào đó có tỷ lệ truy cập thấp để tiết kiểm ổ cứng. Con số cụ thể sẽ tuỳ từng dịch vụ, họ sẽ tìm cách cân bằng giữa chất lượng & chi phí phải bỏ ra, bởi nếu xoá sớm quá thì tỷ lệ cache hit ratio sẽ giảm nhiều, đồng nghĩa với chất lượng dịch vụ giảm;
  • Các file quá nặng có thể không được lưu lâu dài tại các máy chủ biên CDN. Lý do là vì các file này chiếm dung lượng quá lớn;

Vấn đề mô tả ở trên cũng liên quan rất nhiều đến tính năng Perma-cache hay Origin Shield của BunnyCDN (các dịch vụ CDN khác cũng có thể có các tính năng tương tự, dù tên gọi khác). Họ cố gắng cải thiện cache hit ratio bằng cách lưu trữ vĩnh viễn các file trên website của bạn nhưng chỉ ở một số điểm trọng yếu trên toàn cầu thay vì sao chép ra tất cả hệ thống máy chủ biên.

Chắc hẳn CDN còn nhiều bí mật nữa, hy vọng sẽ sớm có cơ hội chia sẻ thêm với các bạn. Xin chào & hẹn gặp lại.

Leave a Comment