Giới thiệu jsDelivr – mạng CDN miễn phí cho JavaScript và CSS

bởi Duc Anh Nguyen
các PoP của jsDelivr

Vài con số thống kê:

  • Dịch vụ bắt đầu từ năm 2012
  • Mỗi tháng phục vụ hơn 66 tỷ yêu cầu
  • Lượng dữ liệu lưu chuyển lên tới 2440 TiB mỗi tháng (1TiB = 240 byte)

Các nền tảng hỗ trợ

  • NPM
  • GitHub
  • WordPress

Nhà tài trợ chính

(x): CloudFlare tài trợ cho nhiều dịch vụ CDN miễn phí. Ví dụ như statically.io là hosting static miễn phí (plugin Flying Images lại dựa trên Statically để tạo CDN ảnh miễn phí), jsDelivr (chính cái bạn đang đọc đây) và một sản phẩm tương tự thậm chí còn nhiều người dùng hơn có tên cdnjs. Ngoài ra CloudFlare còn là dịch vụ DNS miễn phí hàng đầu.

Điểm mạnh

  • Là sự kết hợp của 4 nhà cung cấp dịch vụ CDN và 2 nhà cung cấp dịch vụ DNS (*)
  • Có hơn 750 PoP (điểm hiện diện, hiểu nôm na là máy chủ phục vụ phân tán)
  • Cân bằng tải (load blancing) dựa trên RUM
  • Nhanh hơn bất kỳ nhà cung cấp dịch vụ CDN nào khác
  • Chuyển đổi dự phòng trên mọi lớp (**)
  • CDN hoạt động được tại Trung Quốc (***)

(*): Không giống các đối thủ cạnh tranh, jsDelivr sử dụng cơ sở hạ tầng Multi-CDN (kết hợp nhiều CDN) độc đáo được xây dựng trên các mạng CDN hàng đầu như StackPath, Cloudflare, Fastly và Quantil. Ngoài ra, chúng tôi sử dụng các máy chủ tùy chỉnh ở các vị trí mà CDN có ít hoặc không có điểm hiện diện.

Hệ thống cân bằng tải thông minh của chúng tôi đảm bảo thời gian uptime tốt nhất có thể, cũng như hiệu suất tốt nhất có thể. Mỗi khi có người dùng tải file từ jsDelivr, thuật toán của chúng tôi sẽ tìm ra nhà cung cấp tối ưu nhất cho người dùng cụ thể tại thời điểm cụ thể đó dựa trên dữ liệu hiệu suất và tính khả dụng trong vài phút đã qua. Tất cả diễn ra chỉ trong vòng vài mili giây.

Thuật toán này cũng ngay lập tức phản hồi cho vấn đề suy giảm hiệu suất. Lấy ví dụ, nếu một nhà cung cấp dịch vụ CDN bị DDoS ở Châu Âu và thời gian phản hồi của họ gia tăng, jsDelivr sẽ để ý sự thay đổi này và đơn giản là ngừng sử dụng nhà cung cấp này ở Châu Âu nhưng vẫn tiếp tục sử dụng dịch vụ của họ ở các vị trí khác (nơi không bị DDoS).

(**): Chúng tôi sử dụng hai nhà cung cấp DNS độc lập. jsDelivr chỉ bị gián đoạn trong trường hợp cả hai công ty trên bị gián đoạn đồng thời (vào cùng một thời điểm). Cả hai nhà cung cấp DNS của jsDelivr đều giám sát endpoint cân bằng tải và nếu họ phát hiện vấn đề họ sẽ tự động chuyển tất cả lưu lượng truy cập sang nhà cung cấp dịch vụ CDN duy nhất.

Cân bằng tải của jsDelivr theo dõi uptime của tất cả các nhà cung cấp dịch vụ CDN sử dụng cả RUM và dữ liệu tổng hợp. Nếu bất kỳ dịch vụ nào được phát hiện bị downtime hoặc suy giảm hiệu suất, nhà cung cấp CDN bị ảnh hưởng sẽ bị loại ra ngay lập tức (để không làm ảnh hưởng dịch vụ).

Máy chủ gốc của jsDelivr được đặt tại một số trung tâm dữ liệu ở các bang khác nhau. Nếu một máy chủ bị gián đoạn, CDN sẽ được tự động chuyển sang máy chủ vẫn hoạt động.

Nói ngắn gọn, chúng tôi đang có một trong các hệ thống linh hoạt nhất, sẵn sàng được sử dụng trong các sản phẩm dịch vụ trực tuyến, ngay cả trên các website lớn nhất.

(***): jsDelivr là mạng CDN công cộng duy nhất có giấy phép ICP hợp lệ do chính phủ Trung Quốc cấp, và có hàng trăm máy chủ nằm trong Trung Hoa Đại Lục.

Thân thiện với lập trình viên

  • Tất cả các file từ npm và GitHub đều có sẵn mà không cần cài đặt
  • Kết hợp nhiều file khi cần
  • Tối thiểu hóa dung lượng nếu cần
  • Khoảng phiên bản thay vì phiên bản chính xác
  • Thống kê sử dụng
  • API

jsDelivr sử dụng RUM (Real User Metrics / Số liệu người dùng thực) để cân bằng tải chính xác lưu lượng truy cập giữa nhiều nhà cung cấp dịch vụ CDN. Ví dụ:

tìm dịch vụ CDN nhanh nhất

Trong trường hợp này dịch vụ CDN tốt nhất cho bạn là Fastly.

Chúng tôi lưu trữ thông tin này và sẽ sử dụng nó để cải thiện việc định tuyến cho tất cả người dùng. Gia nhập nhóm và giúp đỡ chúng tôi cải thiện hiệu suất và uptime bằng cách thêm đoạn mã JavaScript dưới đây vào website của bạn:

<script async src="https://cdn.jsdelivr.net/npm/perfops-rom"></script>

jsDelivr được nhiều công ty tin tưởng sử dụng, trong đó có:

  • Mozilla
  • Urban Dictionary
  • The New York Times
  • NBC News
  • Britannica Encyclopedia

Vì người dịch chủ yếu quan tâm đến dịch vụ CDN cho WordPress, nên tôi sẽ xem jsDelivr hỗ trợ thế nào cho CMS rất phổ biến này.

WordPress CDN

Load bất cứ plugin nào có mặt trong WordPress.org

https://cdn.jsdelivr.net/wp/plugins/project/tags/version/file

Load phiên bản chính xác của một file:

https://cdn.jsdelivr.net/wp/plugins/wp-slimstat/tags/4.6.5/wp-slimstat.js

Load phiên bản mới nhất (không khuyến khích):

https://cdn.jsdelivr.net/wp/plugins/wp-slimstat/trunk/wp-slimstat.js

Yêu cầu phiên bản mới nhất có rủi ro vì phiên bản mới nhất có thể có những thay đổi rất lớn. Chỉ nên làm điều đó nếu bạn thực sự biết bạn đang định làm gì.

Load giao diện bất kỳ nằm trong WordPress.org:

https://cdn.jsdelivr.net/wp/themes/project/version/file

Load phiên bản chính xác của một file nào đó:

https://cdn.jsdelivr.net/wp/themes/twenty-eightteen/1.7/assets/js/html5.js

Thêm “.min” vào bất kỳ file JS/CSS nào để nhận được phiên bản rút gọn – nếu cái nào đó vẫn chưa tồn tại trong hệ thống, chúng tôi sẽ tạo nó cho bạn. Tất cả file được tạo ra đều kèm với source maps và có thể dễ dàng sử dụng khi bạn phát triển sản phẩm:

https://cdn.jsdelivr.net/wp/themes/twenty-eightteen/1.7/assets/js/html5.min.js

(Dịch từ trang jsDelivr)

Lời bàn của người dịch

jsDelivr (có cả CSS và JS) cùng với CDNjs (CSS và JS), Google API (chỉ JS phổ biến) và JetPack (CSS và JS) là một trong các mạng CDN miễn phí dành cho JS có tốc độ tốt nhất. Điểm thú vị của jsDelivr là nó có plugin dành riêng cho WordPress để tích hợp rất tiện lợi: CommonWP

jsDelivr còn có ưu điểm đáng giá là nó host tất các file CSS cũng như JS của tất cả plugin và theme (giao diện) có mặt trên hệ thống WordPress.org, điều đó giúp bạn host được hầu hết các file CSS, JS có trong trang. Điểm lưu ý là bạn không được gộp nén CSS, JS bằng plugin kiểu Autoptimize vì nó sẽ không đẩy lên CDN (của jsDelivr) được.

jsDelivr là dịch vụ tôi khuyên dùng đi kèm với statically.io (thông qua plugin Flying Images) để bạn có được CDN miễn phí cho hầu hết các file tĩnh, bao gồm cả ảnh (*). Đây là một trong các cách hỗ trợ cho hosting yếu (**) và duy trì độ ổn định cho website tốt nhất.

(*): Hiện chỉ có plugin JetPack của chính chủ WordPress có khả năng cung cấp CDN miễn phí không giới hạn cho cả CSS, JS, cũng như ảnh. Tuy nhiên nó có hạn chế là đôi khi khó truy cập từ Việt Nam (vì lý do ngoài công nghệ).

(**): Ngay cả bạn thuê hosting cả 100$ / tháng mà nếu nó không đáp ứng đủ cho website (ví dụ 2 triệu view/tháng) thì nó vẫn bị coi là yếu. Giá trị tuyệt đối ở đây không quan trọng.

0 bình luận

Để lại bình luận