CDN là gì và khi nào nên dùng CDN cho website?

CDN là gì và khi nào nên dùng CDN cho website?
Tìm hiểu chi tiết về kỹ thuật CDN và ưu điểm của nó đối với website. Ngoài ra, bạn sẽ biết khi nào nên dùng CDN và những lưu ý khi chọn dịch vụ CDN cho website.

CDN chính xác là gì, có bao nhiêu loại CDN và website của bạn có thích hợp để sử dụng CDN không?

Bài viết này sẽ cung cấp cho bạn các thông tin cần thiết đó!

CDN là gì?

CDN - Content Delivery Network là mạng phân phối nội dung.

Đây là một hệ thống máy chủ trên toàn cầu (số lượng tùy theo mỗi nhà cung cấp dịch vụ) làm nhiệm vụ lưu bản sao của các nội dung tĩnh bên trong website, sau đó phân tán nó ra nhiều máy chủ khác (được gọi là PoP - Points of Presence) và từ các PoP đó nó sẽ gửi tới cho người dùng khi họ truy cập vào website.

Chúng ta hãy cùng xem qua mô hình khác nhau giữa một website không sử dụng CDN và một website có sử dụng CDN.

CDN là gì và khi nào nên dùng CDN cho website

Không sử dụng CDN

Khi người dùng xem một tập tin mà không có CDN, nghĩa là họ đã gửi một request thẳng đến máy chủ chứa website để truy cập tập tin đó.

Ví dụ liên kết này của tuhoclaptrinh.edu.vn là truy cập thẳng vào máy chủ của tuhoclaptrinh.edu.vn.

CDN là gì và khi nào nên dùng CDN cho website

Trước khi sử dụng CDN

Sử dụng CDN

Khi một tập tin được phân phối bởi CDN, người dùng truy cập vào nó thì PoP phân phối gần nhất so với người dùng sẽ trả nội dung về cho người dùng xem.

Ví dụ bạn truy cập vào liên kết này là xem một nội dung của tuhoclaptrinh.edu.vn trên CDN, ví dụ bạn ở Việt Nam thì PoP CDN tại Việt Nam sẽ phân phối nội dung cho bạn.

CDN là gì và khi nào nên dùng CDN cho website

Sau khi sử dụng CDN

Một số hình thức CDN

Khi sử dụng một số dịch vụ CDN (không tính CloudFlare hay các dịch vụ proxy CDN tương tự) thì bạn sẽ thấy họ có hỗ trợ một số kiểu sử dụng CDN bao gồm:

Pull HTTP/Static

Kiểu này nghĩa là bạn khai báo tên miền của website cần sử dụng CDN hoặc IP của máy chủ.

Sau đó, các PoP CDN sẽ tự động truy cập tới website theo tên miền đó và tự lưu lại bản sao toàn bộ nội dung tĩnh bên trong website (các hình ảnh, tập tin CSS, tập tin Javascript, Flash, Video...).

Lúc này, bạn đã có thể truy cập một tập tin nào đó trên website với đường dẫn CDN mà họ cung cấp hoặc sử dụng một tên miền riêng cho CDN.

Ví dụ:

  • Tập tin gốc: https://tuhoclaptrinh.edu.vn/wp-content/uploads/2015/11/with-cdn.png
  • Tập tin CDN: http://static.tuhoc.io/wp-content/uploads/2015/11/with-cdn.png

POST/PUSH/PUT/Storage CDN…

Cái này có thể được gọi với nhiều cái tên khác nhau, nhưng nó có một điểm chung là thay vì các PoP CDN sẽ tự thu thập nội dung ở website thì bạn sẽ tải thẳng các nội dung cần phân phối qua CDN lên máy chủ của họ qua các giao thức phổ biến như FTP hoặc HTTP.

Hiện nay, thường thì họ sẽ hỗ trợ FTP là nhiều nhất.

Và với phương thức phân phối này, bạn sẽ có thể tiết kiệm được không gian lưu trữ trên máy chủ vì không có lưu gì ở đó cả.

Streaming CDN

Mặc dù các kiểu CDN ở trên đều có hỗ trợ tập tin video nhưng nó lại không hỗ trợ phát live trực tiếp video (streaming).

Vì vậy, phương thức này sẽ giúp CDN phân phối nội dung streaming từ máy chủ và sau đó nó phân phối lại cho người dùng xem để tiết kiệm băng thông từ máy chủ streaming gốc.

Hoặc bạn có thể lựa chọn cách tải thẳng nội dung streaming lên máy chủ CDN giống như Push CDN.

CDN là gì và khi nào nên dùng CDN cho website

Ưu điểm khi dùng CDN

Như vậy sau khi bạn hiểu qua về cách hoạt động của CDN thì bạn sẽ nhận thấy rằng nó có các ưu điểm là:

Tiết kiệm băng thông cho máy chủ gốc

Băng thông từ mạng của máy chủ gốc chỉ tốn một lần xử lý đó là chấp nhận request từ các PoP CDN, sau đó các lượt truy cập từ người dùng sẽ chỉ truy cập vào nội dung trên CDN nên máy chủ gốc sẽ không tốn thêm.

Chỉ khi nào bạn tiến hành xóa các bản lưu nội dung trên CDN thì các PoP CDN sẽ tiến hành lấy nội dung lần nữa thì mới tốn thêm.

Tăng tốc lượt truy cập

Do tính chất các PoP CDN trải dài trên khắp các châu lục nên nó sẽ giúp website bạn truy cập nhanh hơn đối với các người dùng ở xa máy chủ của website.

Ví dụ, tuhoclaptrinh.edu.vn đặt máy chủ ở Mỹ mà nếu truy cập trực tiếp để xem một hình ảnh 300KB ở Việt Nam sẽ mất khoảng 0.5 giây (500ms). Thế nhưng nếu tuhoclaptrinh.edu.vn dùng CDN cho các nội dung tĩnh đó có hỗ trợ PoP tại Việt Nam thì người dùng chỉ mất 0.01 giây (10ms) để xem một tập tin, thậm chí còn nhanh hơn thế.

Tương tự với các người dùng ở quốc gia khác, CDN của ban càng có nhiều PoP ở nhiều quốc gia khác nhau thì càng có lợi trong việc tăng tốc website toàn cầu.

Tiết kiệm dung lượng

Nếu bạn có sử dụng phương thức Push CDN thì sẽ tiết kiệm được dung lượng lưu trữ cho máy chủ vì mọi thứ đã được upload lên thẳng máy chủ CDN.

Tuy nhiên, để an toàn bạn nên lưu lại nội dung ở một nơi nào đó đề phòng dịch vụ CDN có vấn đề.

Tiết kiệm chi phí

Chi phí tiết kiệm ở đây là chi phí băng thông. Giả sử máy chủ hoặc gói host của bạn chỉ hỗ trợ một khoảng băng thông cho phép mỗi tháng nhất định thì khi hết bạn sẽ cần mua thêm hoặc nâng cấp băng thông.

Giá băng thông thấy vậy chứ không hề rẻ, giá băng thông trung bình hiện nay trên một số nhà cung cấp host là khoảng 20.000 đồng cho mỗi GB, tương đương $0.88 rồi.

Nhưng các dịch vụ CDN hiện nay đa phần sẽ có giá là khoảng $0.05 hoặc rẻ hơn, ở một số PoP Châu Á nếu có đắt hơn thì cao lắm cũng khoảng $0.1 cho mỗi GB băng thông.

Vậy thì, thay vì bạn mua thêm băng thông ở host thì hãy dùng CDN sẽ tiết kiệm hơn rất nhiều.

CDN là gì và khi nào nên dùng CDN cho website

Khi nào nên dùng CDN?

CDN có rất nhiều lợi ích khi sử dụng và nó là một trong những yêu cầu mà nhiều website phải sử dụng. Nhưng không phải website nào cũng cần thiết để sử dụng, mà CDN chỉ thật sự hữu ích khi:

  • Máy chủ của website đặt xa người dùng.
  • Lượt truy cập lớn tốn nhiều băng thông.
  • Có nhiều lượt truy cập trên nhiều quốc gia khác nhau.
  • Khi sử dụng kỹ thuật Load Balancing FailOver.

CDN là gì và khi nào nên dùng CDN cho website

Khi nào chưa cần thiết khi dùng CDN?

Như đã nói ở trên, trong nhiều trường hợp bạn không cần thiết phải dùng CDN vì không những nó không giúp website nhanh hơn mà còn khiến trang web chậm hơn.

Và một trong những lý do phổ biến nhất là máy chủ của website đặt ở gần người dùng.

Ví dụ, bạn có máy chủ tại Việt Nam và phục vụ người dùng tại Việt Nam, nhưng bạn sử dụng CDN mà nếu CDN đó không có PoP tại Việt Nam thì website bạn sẽ chậm hơn. Bởi lúc này, người dùng của bạn sẽ truy cập ở các PoP khác xa hơn so với máy chủ gốc hiện tại nên khiến trang chậm hơn.

Tương tự với dịch vụ proxy CDN như CloudFlare, website đặt ở máy chủ tại Việt Nam mà dùng nó thì người dùng ở Việt Nam sẽ vào chậm hơn so với bình thường.

Lưu ý khi chọn dịch vụ CDN

Khi tiến hành tìm chọn một dịch vụ CDN tốt và phù hợp để sử dụng lâu dài, bạn cần lưu ý đến hệ thống PoP của họ.

Tốt nhất hãy ưu tiên chọn các dịch vụ CDN có hỗ trợ PoP ở quốc gia mà bạn có nhiều người dùng nhất.

Ví dụ, nếu bạn chọn CDN cho website Việt Nam thì nên ưu tiên các dịch vụ CDN có PoP tại Việt Nam như CDNSun, CDN.Net... Với mỗi nhà cung cấp đều có mục Network để bạn xem hệ thống PoP của họ - bạn nên xem kỹ phần này trước khi sử dụng.

Ngoài ra, giá cả và hình thức thanh toán cũng là điều bạn cần chú ý. Các dịch vụ CDN hiện nay hỗ trợ hai kiểu thanh toán là dùng bao nhiêu trả bấy nhiêu (Pay-as-You-Go) hoặc trả phí cố định mỗi tháng để sử dụng theo gói.

Nếu website bạn tốn không nhiều băng thông thì nên chọn hình thức thanh toán là pay-as-you-go sẽ tiết kiệm hơn, bởi khi mua theo gói có khi bạn không tận dụng hết.

Lưu ý cuối cùng là tốc độ, bạn có thể kiểm chứng điều này qua việc dùng thử dịch vụ và tiến hành ping tới địa chỉ CDN bằng dịch vụ CA App Synthetic Monitor để xem nó có thật sự tối ưu tốc độ không. Hoặc bạn cũng có thể tham khảo qua các bài đánh giá CDN trên mạng.

Một số tài nguyên CDN miễn phí

CloudFlare

Đây là dịch vụ proxy có hỗ trợ CDN miễn phí khá phổ biến. Nếu như website của bạn đặt host tại Mỹ hoặc Châu Âu thì dịch vụ này sẽ giúp bạn tối ưu tốc độ website rất nhiều dành cho các lượt truy cập tại Việt Nam.

Nó không giống như dịch vụ CDN đơn thuần mà mình trình bày ở trên, bạn không thể sử dụng domain riêng cho CDN và không thể tải nội dung lên máy chủ CDN của họ nhưng nó sẽ hoạt động bằng cách sử dụng một lớp proxy trung gian cho tên miền.

Khi người dùng truy cập vào website của bạn thì họ sẽ đi qua một lớp proxy và ở đó nó đã có sẵn CDN để phân phối nội dung trong trang, đường dẫn website không thay đổi.

Photon

Đây là một dịch vụ đặc biệt dành cho người dùng WordPress có cài plugin JetPack. Nó sẽ tự đưa các tập tin hình ảnh trên website về máy chủ CDN của Photon và phân phối cho người dùng để tiết kiệm băng thông và thời gian tải trang.

jsDelivr

Đây là dịch vụ CDN dành cho các thư viện Javascript. Ví dụ thay vì bạn tự host tập tin jquery.js của thư viện jQuery thì có thể dùng liên kết CDN của jsDelivr.

Hiện tại, nó hỗ trợ tới hơn 1650 thư viện khác nhau, hầu như mọi thư viện Javascript phổ biến đều có ở đó. Cách sử dụng đơn giản là nhúng tập tin Javascript tới liên kết của họ thay vì tự host.

Nếu bạn là người dùng WordPress thì có thể cài plugin này để nó tự thay đổi các thư viện Javascript đang dùng trong website sang liên kết CDN.

Google Hosted Library

Cũng giống như jsDelivr, bạn có thể sử dụng các liên kết thư viện Javascript trên máy chủ CDN của Google để tiết kiệm băng thông.

Một số dịch vụ CDN phổ biến

  • Amazon CloudFront
  • MaxCDN
  • CDN77
  • Akamai CDN
  • CacheFly
  • CDN.Net
  • CDNSun (có hỗ trợ PoP tại Việt Nam)
  • KeyCDN
  • CDN.Com.Vn (chỉ có PoP tại Việt Nam)
  • EdgeCast
  • CDNlion
  • SoftLayer
  • WPPronto

Cách dùng CDN

Về cách dùng CDN thì rất đơn giản, đó là sau khi tiến hành tạo dịch vụ CDN thì bạn chỉ cần sửa đường dẫn gốc của nội dung tĩnh trên website sang đường dẫn nội dung của CDN.

Ví dụ:

<html><img src="https://tuhoclaptrinh.edu.vn/images/logo.png"></html>

Đổi thành:

<html><img src="http://tên-miền-cdn/images/logo.png"></html>

Và nếu dùng WordPress thì có rất nhiều plugin hỗ trợ tự đổi như WP Super Cache, W3 Total Cache, CDN Enabler...

Ngoại trừ một số dịch vụ proxy CDN như CloudFlare hay Incapsula thì không cần đổi gì cả vì vốn tên miền đã được request thông qua CDN vì bạn đã trỏ DNS của tên miền sang dịch vụ của họ.

CDN là gì và khi nào nên dùng CDN cho website

Hy vọng sau khi có kiến thức thêm về CDN, bạn sẽ biết mình có nên sử dụng CDN hay không và hiểu về nó theo cách đúng nhất.