Tìm hiểu về hệ thống Facebook

Tìm hiểu về hệ thống Facebook

Mô hình ứng dụng web thông thường

Mô hình kiến trúc ứng dụng web gồm có 3 thành phần: máy khách – trình duyệt (Client), mạng internet và máy chủ (Web application – Server). Để có thể truy cập đến một website, bạn phải dùng trình duyệt để gởi yêu cầu đến máy chủ – thông qua môi trường internet.

Một ứng dụng web gồm có 2 thành phần: thứ nhất là chương trình ứng dụng và thứ hai là cơ sở dữ liệu của ứng dụng ( nơi mà để lưu trữ dữ liệu cho toàn bộ ứng dụng).

Tìm hiểu về hệ thống Facebook

Khi trình duyệt gởi yêu cầu lên máy chủ, chương trình ứng dụng sẽ được chạy, trong quá trình chạy, ứng dụng sẽ làm 3 công việc chính. Đầu tiên là ứng dụng sẽ phân tích để hiểu được yêu cầu. Tiếp theo là xử lý yêu cầu (quá trình xử lý dữ liệu sẽ được lấy từ cơ sở dữ liệu), cuối cùng gởi kết quả về trình duyệt.

Mô hình Facebook

Người dùng truy cập vào “https://www.facebook.com/” vả ứng dụng thông qua trình duyệt và Internet.

Tuy nhiên ứng dụng không được đặt tại máy chủ của Facebook mà được lưu trên máy chủ của chính người tạo ra ứng dụng đó. Facebook Platform đương nhiên cũng sẽ cung cấp một giao diện cho người viết ứng dụng.

Có thể bạn quan tâm:

Với một máy chủ web bình thường trung bình chỉ chịu được từ 100 tới 500 lượt truy vẫn cùng một lúc. Tuy nhiên với Facebook trung bình mỗi giây phải hiện 600 nghìn hình ảnh/video cùng một lúc. Vấn để đặt ra ở đây là làm thể nào để mỗi giây Facebook hiện được 600 ngàn hình ảnh hay video ấy? Để giải quyết vấn để này Facebook đã sử dụng vùng lưu trữ đếm (cache) và đây cũng chính là trái tim của hệ thống.

Facebook đã phát triển Haystack – một hệ thông quản lý các tập tin hình ảnh trung gian đê cải tiến sự truy vấn. Trước đây, Facebook đã sử dụng hệ thống 2 tầng :

  • Tầng chuyên cho việc upload hình ảnh và lưu trữ vào server.
  • Tầng còn lại có nhiệm vụ tìm và lấy hình ảnh từ server để trả lời các truy vấn.
Tìm hiểu về hệ thống Facebook

Tuy vậy, việc xử lý theo cách cổ điển này là không phù hợp với nhu cầu tăng chóng mặt số lượng người dùng của Facebook dẫn tới tình trạng nghẽn mạch Input / Output. Haystack sẽ quản lý và lưu trữ các hình ảnh trong vùng đệm và từ đây sẽ trả lời các truy vấn hình ảnh.

Xem thêm dịch vụ content marketing

Bên cạnh đó Facebook còn cải tiến các đoạn code trên Web Server để giảm thiểu kích thước tập tin và thời gian tính toán. Quá trình gửi yêu cầu, tiếp nhận yêu cầu, xử lý yêu cầu, trả về kết quả và cuối cùng là hiển thị lên trên ứng dụng, đó chính là “Mô hình Client-Server”. Trong đó thuật ngữ Client chính là ứng dụng người dùng sử dụng trực tiếp được cài đặt trên điện thoại (hoặc được chạy trên trình duyệt web), và nơi cung cấp dữ liệu chính là Server (máy chủ). Ngôn ngữ lập trình cho từng bộ phận cũng đã dần được tối ưu hóa. Người truy cập sẽ được phân luồng ngẫu nhiên vảo các ngân hàng dữ liệu để giảm tải và các truy vấn của họ sẽ được hệ thống cache trả lời nhanh chóng.

Cách thức làm việc

Địa chỉ ở trên sẽ trỏ tới một cụm máy chủ trong trung tâm dữ liệu của Facebook. Những server này sẽ phân tích các yêu cầu , xác định các ứng dụng tương ứng, sau đó tìm kiếm nguồn – Url callback mà nhà phát triển ứng dụng cung cấp và thực hiện gọi tới Url đó. Máy chủ của Facebook sẽ gửi yêu cầu tới máy chủ của người tạo ứng dụng. Yêu cầu này người dùng hoàn toàn không hề biết. Server chứa ứng dụng tạo một lời gọi API tới server của Facebook bằng cách sử dụng FQL thông qua phương thức fal.query() của API hoặc trực tiếp bằng các hàm API.

Xem thêm chăm sóc nội dung web

Máy chủ chứa ứng dụng sẽ trả về FBML tới máy chủ của Facebook. Kết quả đạt được cuối cùng lả I tải liệu FBML. Tải liệu nảy sẽ được gửi trả lại server của Facebook để thực thi. Tài liệu FBML sẽ được chuyên sang dạng HTML và phục vụ cho người sử dụng. Đây là bước cuối cùng trong quá trình thực thi và trả về kết quả cho trình duyệt.

Hiện nay, chúng ta có thêm các ứng dụng liên hệ với Facebook là Messenger và Instagram.

Xem thêm hướng dẫn Facebook Audience Insight

Leave a Reply