Đây là một công nghệ tuy đã có từ lâu nhưng chỉ mới nổi trong thời gian trở lại đây, hôm nay mình sẽ cùng nhau tìm hiểu CDN là cái méo gì vậy.

Định nghĩa

CDN: Nó là chữ viết tắt của Content Delivery Network dịch đúng như tiếng Việt của nó là mạng lưới phân phát nội dung.

Các hoạt động của hệ thống CDN

Hệ thống CDN được chia ra thành 2 thành phần chính

Original Server: Đây là nơi đặt mã nguồn của website, nó có thể là sharehosting hoặc VPS, thậm chí nó cũng có thể là một kho lưu trữ online như AWS Store hoặc tương tự. Như trang web của mình là VPS được cung cấp bởi Vultr

Hệ thống CDN: là những server được thiết lập để đặt biệt để làm nhiệm vụ lưu trữ dữ liệu website của bạn từ orginal server. Lúc này việc truy cập một website sẽ thông qua các server này thay vì trực tiếp trên server gốc. Server gốc lúc này chỉ có tác dụng kết nối mạng để đưa toàn bộ những file sang toàn các server con (được gọi là PoP – Points of Presence ) trong hệ thống CDN trên các PoP người ta sẽ setting để nó trở dùng một EDGE server (hay còn được gọi là máy chủ CDN hay CDN server).

Truy cập website khi không có CDN

Lúc này trình duyệt sẽ gửi thẳng request đến server nơi chứa mã nguồn của bạn. Ví dụ server bạn ở VN thì nó sẽ nhanh hơn là server bạn nằm ở bên Mẽo.

Truy cập website khi có CDN

Khi sử dụng CDN, request sẽ được trỏ tới CDN Server gần nhất so với người dùng. CDN Server gần nhất sẽ được xác định thông ISP (Internet Service Provider) hoặc thông qua IP của bạn từ đó xác định vị trí. Vì thế nếu bạn sử dụng CDN của một nhà cung cấp có CDN Server ở VN thì dù máy chủ của bạn có đặt ở đâu thì nó vẫn sẽ tìm thằng CDN Server gần nhất để đến, vì vậy thời gian truy cập website của các bạn sẽ được tăng đáng kể.

Cách thức sử dụng CDN

Cách thức CDN đang được mình sử dụng cho website là Pull HTPP, lúc này các mình sẽ khai báo tên miền gốc của mình là ductan.me cho thằng máy chủ, lúc này thằng máy chủ sẽ truy xuất đến máy chủ của mình là lấy toàn bộ nội dung có trong đó bao gồm như là các file img, js, css. Sau đó bạn có thể truy cập thông qua một đường dẫn khác nhưng với nội dung tương tự.

https://0e253cc99c9a4e8.kcdn.vn/wp-content/uploads/2019/01/IMG_2953.jpg

http://ductan.me/wp-content/uploads/2019/01/IMG_2953.jpg

2 bức ảnh này là từ một file nhưng truy cập trực tiếp và truy cập dán tiếp thông qua CDN

Các file js và css của mình cũng tương tự.

Lúc này việc setup chỉ cần thay đổi đường dẫn của các file trong mã nguồn thành địa chỉ của CDN là được, với wordpress mình dùng plugin CDN Enabler là xong ngay.

Dùng CDN có tác dụng gì

  • Tác dụng đầu tiên của CDN là tăng tốc độ truy cập vì khi dùng CDN bạn sẽ truy cập tới CDN Server nên tốc độ truy cập của website sẽ nhanh hơn. Lưu ý: Nếu bạn dùng máy chủ tại VN, bạn sử dụng một dịch vụ CDN không có CDN Server tại VN, thì tốc độ truy cập của website chắc chắn sẽ bị giảm nếu như truy cập tại VN. Vì vậy hãy lựu chọn một nhà cung cấp có CDN Server rộng lớn và có những location phù hợp.
  • Giảm tải cho server: Thường VPS hay bị giới hạn băng thông, nếu dùng CDN, băng thông chỉ cần đủ cho các CDN Server lấy data về, việc này là rất nhỏ, nếu lượng request quá lớn cũng không sợ bị sập vì CDN sẽ chịu tải thay vì server chính.
  • Giảm tải chi phí: Bạn sẽ không cần phải đầu tư quá nhiều tiền vào server mà chỉ cần thêm một khoảng phí nhỏ vào CDN. Số tiền vượt băng thông của CDN cũng rất nhỏ so với trực tiếp từ nhà cung cấp máy chủ.

Khi nào thì nên dùng CDN

  • Máy chủ ở quá xa với người dùng, ví dụ máy chủ ở Mỹ trong khi traffic lớn đến từ VN hoặc châu á. Như mình máy chủ ở Sin nhưng cũng ham hố CDN cho bằng bạn bằng bè, ngã nào thì nó cũng nhanh hơn.
  • Lượt truy cập lớn tốn nhiều băng thông
  • Muốn cân bằng tải và tăng hiệu năng cho website

Khi nào không nên dùng

Như mình đã nói ở phần trên. Dùng CDN chưa chắc đã giúp website chạy nhanh hơn nếu như bạn không hiểu đúng về nó, nếu có máy chủ gần nguồn traffic lớn của mình thì cũng không cần dùng CDN, nếu dùng đôi khi nó sẽ phản tác dụng gây chậm website của bạn nữa.

Tổng kết

Hôm nay mình đã cùng các bạn tìm hiểu về CDN, một công nghệ rất là hay ho của cờ lao (cloud). Hy vọng những kiến thức trên sẽ giúp bạn tận dụng những ưu điểm của CDN để biết cách áp dụng trong các trường hợp phù hợp.