Content Delivery Network CDN

CDN – Content Delivery Network là gì?

Hi các bạn,

Nay mình sẽ qua giới thiệu cho các bạn sơ về cái CDN, hay còn dc biết tới là Content Delivery Network.

Bạn nào làm web thì chắc sẽ đa số quen với thằng này, nhưng thật ra làm web hay mobile thì cũng đụng tới thoy LOL.

1/ CDN – Content Delivery Network là gì?

CDN là gì? CDN là cái chi chi?

Hiểu đơn giản thì nó là 1 hệ thống được phân tán rộng rãi trên toàn cầu, nhiệm vụ của nó là chứa các static files (image, video, file,…) và đưa tới người dùng một cách nhanh nhất có thể.

Thoy ra 1 cái ví dụ cho dễ hiểu nè nè:

  • Mình làm cái SethPhat.com, đặt server ở VN nè, mọi static file (js, css, images,…) chứa hết ở server lun.
  • Giờ mà bên Mẽo truy cập vào SethPhat.com, load page HTML nhanh vèo vèo ko vấn đề, nhưng load images này nọ lâu vãi (đi tận cả chục ngàn cây số hơn qua mà lấy file cơ mà). Căng vãi, chậm vậy mất khách sao?

Vậy nên CDN sẽ giúp mình giải bài toán này bằng cách:

  • Mình upload static file của mình lên cái server CDN.
  • Hệ thống CDN nó sẽ tự động phân tán file của mình qua các server của nó trên toàn cầu.
  • Khi có ai truy cập vào SethPhat.com, CDN nó sẽ từ IP (Internet Protocol) mà tìm ra được ng` dùng đang truy cập ở nước nào và từ đó dùng server lân cận của nước đó để trả file về. Nhanh vèo vèo.

Khá hay fải ko nào?

Có tấm hình tham khảo nè 😀

cmn_en_fig_services_network_cdn_01

2/ Thế CDN có miễn phí hay ko? Hay dùng CDN nào chi phí rẻ nhất?

Miễn phí thì lấy gì provider ăn hả bạn :D? Đa số CDN mà miễn phí thì toàn những cái CDN chứa js/css của các library/framework nổi tiếng thoy.

File riêng của bạn sao mà miễn phí dc nè 😀

Nhưng…

Thật ra “miễn phí” cũng có, các bạn có thể sử dụng AWS S3 Storage. Nó sẽ miễn phí 2000 PUT REQUEST (create/update/remove files) và 20000 GET REQUEST. Sau đó nó tính phí tầm bao nhiêu 0,000 đô ấy, các bạn qua trang chủ nha nhiều lắm =))

Cũng có 1 cái nữa “miễn phí” lun, đó là Google Cloud Storage, khi đăng ký nó sẽ miễn phí cho bạn 300$ mà sử dụng, giá của nó là 0.026$/GB mỗi tháng. Tính ra cũng rẻ :D. Giá request của nó cũng có nữa thì fải nhìu quá.

Còn anh Azure hổng biết, hàng con nhà giàu xài :(, để bữa nào rảnh ngó thử LOL.

2.5/ CDN thế hệ mới

Với CDN thế hệ mới, chúng ta ko cần phải manually upload files lên S3 Storage hay là Google Cloud Storage nữa.

Chỉ đơn giản, là ta thông qua DNS của Provider (ví dụ 1 trong những Providers lớn nhất hiện tại là CloudFlare). Nó hoạt động thông minh như sau:

  • Khi Users access 1 đường dẫn, DNS nó sẽ:
    • Check coi có fải Static Files ko? Check coi rules này có dc cache ko?
      • Nếu có => Tiếp tục check coi đã cache trên CDN chưa.
        • Nếu đã được Cache => Serving luôn files đó
        • Chưa dc Cache => Users sẽ access thẳng vào files đó trên Server mình lần đầu và Provider sẽ tự động Cache lại các files đó. Từ lần sau sẽ ko phải lo nữa.
      • Nếu ko thì hủy

Flow đơn giản của nó là vậy các bạn à. Pros/Cons như sau:

  • Pros:
    • Không phải lo manually upload lên storages nữa
    • Khỏe re, ko phải code nhiều
    • Setup cực kỳ dễ
    • Mỗi khi update lại files mới, cần phải gọi lên API của Provider để INVALIDATE cái file đó để dc clear cache và sẽ cache lại trong lần request mới nhất
      • Cái này mình cho là Pro vì ko phải xóa file, upload lại,…
  • Cons:
    • Tốn tiền nhiều hơn nếu muốn xịn sò, nhất là level enterprise

3/ SethPhat có xài CDN – Content Delivery Network hông?

CÂU HỎI HAY, có nha bạn. SethPhatBlog sử dụng CDN của Cloudflare. CDN thế hệ mới.

4/ Kết luận

Đây là một trong những chiêu hay mà Web Developer ta cần biết chút để hiểu bản chất thằng CDN nè.

Mobile Dev chắc ko cần biết mà biết cũng hay, đa phần toàn đợi ae Backend lo API rùi cứ thế xài thoy mà, ae Backend mình chu đáo vãi. (Mobile Dev mà xài serverless thì bỏ wa dòng này nha =)))

Cám ơn các bạn.

facebook
Seth Phát

Seth Phát

Mình là Phát - biệt danh Seth Phát. Hiện đang là một Sr. Full-Stack Engineer. Mình là một người yêu thích và đam mê lập trình và hiện tại đang theo về phần Web là chủ yếu. Mạnh Back-end và khá Front-end, vẫn đang theo đều cả 2 :v. Còn gì bằng khi được làm những thứ mà mình yêu thích, đam mê ;)

One thought on “CDN – Content Delivery Network là gì?

Leave a Reply

Your email address will not be published. Required fields are marked *

Bình luận qua Facebook