Sự khác giữa CDN và Load Balancer

CDN (Content Delivery Network) – mạng phân phối nội dung, sở hữu một vai trò trọng yếu trong việc phân phối toàn bộ nội dung trên Internet. CDN là network của các máy chủ lưu trữ được đặt tại nhiều địa điểm khác nhau, giúp giảm tải cho server gốc bằng cách tham gia vào quá trình truyền images và các yếu tố khác như CSS, Javascript, Video, Real-time media streaming hay file download của website đến người dùng cuối.

Load Balancer (Cân bằng tải) hoạt động như “traffic cop” ở phía trước server và routing các request của client trên tất cả các server có khả năng thực hiện các request đó, sao cho tối ưu về tốc độ và hiệu suất nhất và đảm bảo rằng không có server nào phải hoạt động quá mức. Nếu một server đơn lẻ bị hỏng, cân bằng tải (load balancer) sẽ chuyển hướng lưu lượng truy cập đến các server trực tuyến còn lại. Khi một server mới được thêm vào nhóm máy chủ, bộ cân bằng tải sẽ tự động bắt đầu gửi yêu cầu đến máy chủ mới thêm này.

Phân biệt CDN và Load Balancer

1.Về lợi ích.

Load Balancer thực hiện hai điều quan trọng sau đây cho bạn:

Bạn được sở hữu một địa chỉ IP, bạn có thể trỏ DNS đến và nó sẽ không thay đổi. Với một Load Balancer chứa địa chỉ IP, nhóm hỗ trợ sẽ có nhiều tùy chọn có sẵn hơn về cấu hình.

Bạn có thể xây dựng và nhân bản các server bao nhiêu tùy ý sao cho phù hợp với nhu cầu mở rộng, dự phòng, phát triển…

Với việc sử dụng Load Balancer, khả năng mở rộng quy mô trở nên minh bạch đối với khách hàng. Khi bạn bắt đầu xây dựng một dịch vụ web dù lớn hay nhỏ, hãy bắt đầu với Load Balancer.

Mạng phân phối nội dung (CDN) cho phép các nội dung tĩnh (hình ảnh, .pdfs, video, css, …) được gửi từ vị trí địa phương tới vị trí của khách truy cập. Ví dụ: Bạn tải files lên container trên Cloud Files (các files này hoàn toàn có thể truy cập công khai), sau đó các files này sẽ được phân phối tới hệ thống CDN. Điều đó có nghĩa là khách truy cập sẽ nhận được các phản hồi từ các máy chủ có vị trí địa lý gần họ nhất.

Ngoài ra, bạn có thể đặt thời gian tồn tại của tệp, sau khi hết hạn, các edge server sẽ tìm nạp nội dung mới từ Cloud Files Container.

2.Về khả năng xử lý.

CDN hoạt động tốt nhất trong việc phục vụ các file tĩnh, còn đối với các dynamic files (server side code và/ hoặc database) sẽ được phục vụ tốt nhất bởi các servers đằng sau một bộ cân bằng tải.

Bên cạnh đó, high load, high availability cũng là điều bạn cần cân nhắc. Điều gì sẽ xảy ra nếu server và toàn bộ datacenter bị hỏng? CDN xử lý các rắc rối này khá tốt, tuy nhiên đối với dynamic content, system architecture (kiến trúc hệ thống) sẽ là yếu tố quyết định, lúc này load balancer lại là lựa chọn tốt nhất.

3.Về chức năng.

CDN và Load Balancer thực hiện các chức năng hoàn toàn khác nhau.

Load balancer cho phép bạn mở rộng theo chiều ngang (tức là cho phép ứng dụng của bạn xử lý nhiều kết nối hơn). Bạn chạy nhiều phiên bản ứng dụng trên các servers khác nhau và load balancer đứng trước các máy chủ này, làm nhiệm vụ định tuyến các kết nối giữa request và server.

CDN về cơ bản là một mạng lưới các máy chủ proxy nằm ở các vị trí địa lý khác nhau. CDN có thể giúp tăng tốc request/ response time nhờ sự gần gũi về vật lý của chúng với khách truy cập và khả năng hoạt động như proxy caches. Như đã đề cập ở trên, nhiều website lưu trữ nội dung tĩnh trong CDN vì các tệp này không thay đổi thường xuyên, thời gian phản hồi khi nội dung được lưu trong bộ nhớ cache sẽ luôn nhanh hơn thời gian phản hồi từ máy chủ gốc. Bạn thậm chí có thể quyết định cache toàn bộ các trang web ở cấp CDN, mặc dù điều này sẽ không phù hợp với nhiều trang web. CDN cung cấp khả năng mở rộng quy mô theo cả chiều ngang và chiều dọc, chiều ngang là vì chúng hoạt động như distributed proxy caches, chiều dọc do chúng có khả năng giảm độ trễ cho khách hàng.

Vậy Doanh nghiệp sử dụng CDN hay Load Balancer?

Hệ thống tối ưu là bạn nên sử dụng kết hợp cả hai giải pháp này, bởi vì mỗi giải pháp sở hữu những tính năng và lợi ích đem lại cho hệ thống là khác nhau. Chúng đồng thời đóng một vai trò quan trọng khác nhau trong hệ thống.

CDN

  • Những website có những giai đoạn cao điểm về lưu lượng truy cập, website chứa nhiều nội dung tĩnh (images, css, javascript).
  • Khoảng cách địa lý của server gốc và khách truy cập cách xa nhau. Hoặc website cần phân phối nội dung với chất lượng tốt cho các khách truy cập trên toàn thế giới.
  • Các agency, các doanh nghiệp, cá nhân, tổ chức… thường xuyên phải phân phối nội dung là những Movies, Video clip, TVC… trên Internet, nhằm mục đích quảng cáo và kinh doanh các sản phẩm, dịch vụ tới người tiêu dùng.
  • Đặc biệt, với các doanh nghiệp có nhu cầu phải phát sóng trực tiếp, làm các chương trình livestream như: công ty tổ chức sự kiện, liveshow thời trang, ca nhạc, gameshow, show truyền hình thực tế real-time, các đài truyền hình, truyền hình trực tuyến…
  • CDN là một lựa chọn vô cùng tối ưu khi các tổ chức không hề phải đầu tư cho trang thiết bị cầu kỳ, hạ tầng server tốn kém cũng như công nghệ phục vụ cho việc truyền tải.
  • Tóm lại, rất nhiều lĩnh vực nên sử dụng CDN, có thể kể đến như sau: Quảng cáo, Đa phương tiện và giải trí, Game trực tuyến, Thương mại điện tử, Điện thoại di động, Chăm sóc sức khỏe, Giáo dục đại học, Chính phủ…

Load Balancer

Sau đây là khó khăn chính bạn sẽ gặp phải nếu chỉ triển khai website của mình trên một server duy nhất:

Không thể đảm bảo xử lý được lượng traffic của một khối lượng user lớn truy cập vào website (đủ lớn để 1 cloud server không thể tải nổi).

Cụ thể, khi hệ thống của bạn có quá nhiều người sử dụng, một server đơn lẻ không thể đáp ứng được lượng requests khổng lồ được gửi đến cùng lúc. Bạn cần chia sẻ công việc của server hiện tại với một hoặc nhiều server khác nữa. Tức là sử dụng nhiều server một lúc, khi này, việc tải dữ liệu từ server nào sẽ do bộ Load balancer (Cân bằng tải) quyết định.

Không đảm bảo tính sẵn sàng của dịch vụ doanh nghiệp (nếu chỉ sử dụng duy nhất 1 cloud server, khi cloud server này gặp sự cố, không hề có server nào có thể thay thế tiếp tục các tiến trình đang dang dở, đấn đến website rơi vào tình trạng downtime theo). Gây tổn thất và ảnh hưởng to lớn đến trải nghiệm người dùng, doanh thu, uy tín và hiệu quả hoạt động của doanh nghiệp.

Đó chính là lý do mà chúng ta phải triển khai website trên nhiều cloud server cùng một lúc, bởi vì không có gì đảm bảo cho việc một server sẽ luôn hoạt động trơn tru và hoàn hảo mãi mãi. Bằng cách triển khai nhiều, khi server gặp sự cố, server còn lại ngay lập tức là phương án hỗ trợ, không làm gián đoạn hoạt động của doanh nghiệp. Trên thực tế, những tổn thất do hệ thống thông tin ngừng hoạt động là cực kỳ to lớn và không thể lường trước được.

Tuy nhiên, khi triển khai website lên nhiều server, hiệu quả là vậy nhưng bạn vẫn chắc chắn sẽ gặp phải các khó khăn tiếp theo sau đây:

  • Triển khai nhiều cloud servers, tức đồng thời bạn sẽ sở hữu nhiều địa chỉ của các cloud servers. Trong khi đó, một domain website lại không thể trỏ về nhiều địa chỉ cùng một lúc.
  • Bạn càng sở hữu nhiều servers, việc quản trị, triển khai và bảo trì càng trở nên phức tạp và khó khăn gấp nhiều lần. Đòi hỏi tính chuyên môn và kĩ thuật cao, chưa kể chi phí cho các thao tác này.

Lúc này, Load Balancer (Cân bằng tải) chính là câu trả lời và là giải pháp tuyệt vời có thế giải quyết hoàn hảo triệt để các vấn đề kể trên.

 

Was this article helpful?

Related Articles