Cân bằng tải (Load balancing) là một tính năng quan trọng khi dùng internet. Đây là quá trình phân phối lưu lượng truy cập đến một nhóm máy chủ backend (hay server farm, server pool)
Khi có nhiều người sử dụng hệ thống trong cùng một lúc thì một máy chủ sẽ không có khả năng đáp ứng lưu lượng request lớn. Vì thế, bạn cần tiến hành chia sẻ công việc của nó cho các máy chủ khác. Lúc đó, quá trình tải dữ liệu từ máy chủ nào sẽ được quyết định bởi bộ cân bằng tải (Load balancing). Vậy Load balancing là gì? Mời bạn cùng tìm hiểu nhé.
Load balancing là gì?
Cân bằng tải (Load balancing) là một tính năng quan trọng khi dùng internet. Đây là quá trình phân phối lưu lượng truy cập đến một nhóm máy chủ backend (hay server farm, server pool)
Nhờ vào cân bằng tải, các website dễ dàng phục vụ hàng trăm nghìn đến hàng triệu requests đến người dùng trong cùng lúc. Đồng thời, nó phản hồi chính xác nội dung văn bản, hình ảnh, video, dữ liệu ứng dụng một cách nhanh chóng.
Một load balancing hoạt động tương tự như chức năng của “traffic cop” ở phía trước máy chủ, rồi tiến hành định tuyến request từ client trên toàn bộ máy chủ có khả năng thực hiện những request này, để tối ưu tốc độ cũng như hiệu suất. Điều này giúp đảm bảo không xảy ra tình trạng vận hành quá mức cho bất kỳ máy chủ nào. Thêm vào đó, khi có một máy chủ bị hỏng, cân bằng tải sẽ tự động chuyển hướng request đến các máy chủ còn hoạt động khác. Ngoài ra, khi có máy chủ mới được thêm vào hệ thống thì bộ cân bằng tải cũng bắt đầu gửi request đến máy chủ này.
Như vậy, nhiệm vụ của một load balancing là thực hiện các chức năng sau:
- Phân phối hiệu quả các request từ máy khách hoặc lưu lượng tải mạng (network load) đến nhiều máy chủ.
- Đảm bảo tính khả dụng, độ tin cậy cao thông qua việc gửi yêu cầu đến các máy chủ còn hoạt động.
- Dễ dàng thêm hoặc bớt máy chủ theo nhu cầu sử dụng.
Lợi ích của load balance
Sau đây là các lợi ích của bộ cân bằng tải:
- Uptime
Khi có một máy chủ gặp sự cố thì các lưu lượng truy cập được chuyển đến các máy chủ còn lại một cách tự động. Điều này giúp cho thời gian uptime tăng, không gây gián đoạn truy cập ngay cả khi xảy ra sự cố.
- Linh hoạt trong load balancing là gì
Load balancing có sự linh hoạt cao trong điều phối dữ liệu giữa các máy chủ mà không làm gián đoạn, hoặc gây ra bất kỳ ảnh hưởng nào đến hoạt động của hệ thống.
- Bảo mật
Khi sử dụng load balancing, những yêu cầu truy cập của người dùng được tiếp nhận, xử lý trước khi chuyển đến các máy chủ. Bên cạnh đó, quá trình phản hồi cũng phải thông qua bộ cân bằng tải. Nhờ thế, người dùng không thể giao tiếp trực tiếp với máy chủ, giúp cho các thông tin cũng như cấu trúc của mạng nội bộ được ẩn. Điều này góp phần chặn được các cuộc tấn công mạng, và sự xâm nhập trái phép.
Elastic load balancing là gì?
Elastic load balancing là cân bằng tải đàn hồi, giúp phân phối lưu lượng truy cập vào ứng dụng đến các mục tiêu (như địa chỉ IP, vùng lưu trữ…) một cách tự động. Nó có khả năng xử lý tải khác nhau trong duy nhất một hoặc nhiều Availability Zone.
Elastic load balancing cung cấp 3 loại là Classic load balancer, Application load balancer, và Network load balancer. Trong đó:
- Classic load balancer (Bộ cân bằng tải cổ điển): Là loại cân bằng tải cơ bản trên Amazon EC2, hoạt động ở cấp yêu cầu lẫn cấp kết nối. Nó được phát triển nhằm hỗ trợ cho các ứng dụng trong mạng EC2-Classic.
- Application load balancer: Là loại ứng dụng rất phù hợp cho cân bằng tải HTTP, HTTPS. Nó cung cấp định tuyến cho các yêu cầu nâng cao, giúp phân phối những ứng dụng có kiến trúc hiện đại, kể cả microservices và container. Application load balancer hoạt động ở Layer 7, dựa vào nội dung yêu cầu để cân bằng request đến các mục tiêu có trong Amazon VPC (Amazon Virtual Private Cloud).
- Network load balancer: Loại này phù hợp cho cân bẳng tải lưu lượng TCP và hoạt động ở Layer 4. Nó có khả năng cân bằng tải đến các mục tiêu trong Amazon VPC với năng lực xử lý đến hàng triệu request mỗi giây, và độ trễ rất thấp. Ngoài ra, Network load balancer còn được tối ưu nhằm xử lý các lưu lượng không ổn định, có tính chất đột ngột.
Kỹ thuật network load balancing là gì ?
Mục đích của load balancing là gì? Đó chính là tổng hợp khả năng vận hành của các máy chủ thành một sức mạnh lớn hơn, giúp tăng cường khả năng chịu lỗi.
Để đạt được mục tiêu này, về mặt kỹ thuật, hệ thống cân bằng tải sẽ bao gồm nhiều hệ thống con sau:
- Máy chủ Web
- Là một hệ thống được public trên môi trường internet nhằm phục vụ cho mục đích quảng bá sản phẩm, dịch vụ, hình ảnh của doanh nghiệp đến người dùng.
- Cho phép toàn bộ người dùng internet tìm kiếm, trao đổi thông tin với website nên tốc độ truy cập, khả năng vận hành ổn định phải được đảm bảo.
- Máy chủ Database
- Đây là hệ thống cơ sở dữ liệu chung để máy chủ web truy cập và lấy dữ liệu, sau đó hiển thị lại nội dung trên website.
- Máy chủ cơ sở dữ liệu sẽ chứa tất cả các thông tin liên quan hoạt động của doanh nghiệp, bao gồm thông tin nội bộ lẫn thông tin được công bố bên ngoài.
- Hệ thống dữ liệu bắt buộc phải có đủ độ mạnh, khả năng ổn định, đồng thời độ an toàn dữ liệu cao.
- Máy chủ Proxy (Load Balancing)
Như khái niệm load balancing là gì đã đề cập ở phần đầu bài viết, máy chủ Proxy là một hệ thống có khả năng chuyển tiếp, kiểm soát thông tin, giúp tăng độ bảo mật cho máy chủ web, và máy chủ dữ liệu. Còn chức năng cân bằng tải (Load Balancing – LB) cho các máy chủ web được cài trên máy chủ Proxy.