Facebook làm thế nào để có thể cấu hình cho hàng triệu máy chủ mỗi ngày?

Facebook phải sử dụng tới hàng triệu máy chủ mới có thể phục vụ cho hơn 2 tỷ người dùng của mình. Vậy với một lượng máy chủ khồng lồ như vậy, làm cách nào để họ có thể chỉnh sửa, thay đổi cấu hình cho mỗi máy chủ của mình?

Khi công ty của bạn có quy mô bằng với Facebook, với hơn 2 tỷ người dùng trên hàng triệu máy chủ, bất kỳ sự thay đổi nào cũng phải được đồng bộ trên toàn bộ nền tảng. Đây rõ ràng không phải công việc mà người thường có thể làm được.

Để giải quyết vấn đề trên, đội ngũ kỹ sư của Facebook đã phát triển hệ thống gọi là Location Aware Delivery (LAD), với mục đích tự động phân phối cấu hình đến toàn bộ máy chủ của họ. Trước khi xây dụng LAD, Facebook cũng đã từng sử dụng hệ thống phân phối cấu hình mã nguồn mở Zoo Keeper, tuy nhiên với kích thước quá khồng lồ của Facebook, Zoo Keeper cũng không thể đáp ứng nổi.

Zoo Keeper chỉ phân phối được cấu hình tối đa 5Mb tới tối đa 2500 máy chủ trong một lần chạy. Có thể bạn sẽ cho rằng cứ chạy nhiều lần thì sẽ chạy hết cho toàn bộ máy chủ thôi? Nhưng bạn cần phải hiểu rõ ý nghĩa và tầm quan trọng của việc thay đổi các cấu hình cho toàn bộ máy chủ một cách nhanh nhất có thể.

Đó là, Facebook mong muốn tất cả các tính năng mới nhất, các thay đổi mới nhất của họ phải được cung cấp đến tất cả các người dùng (có thể phân chia theo khu vực địa lý) một cách nhanh nhất và phải đúng theo thời gian thực, nghĩa là tất cả người dùng Facebook ở Canada phải được sử dụng cùng một chức năng mới nhất đó với người dùng Facebook ở Mỹ.

Facebook muốn tạo ra một công cụ mới, tốc độ phân phối cấu hình phải ở mức 5s và dung lượng cấu hình gấp 10 lần của Zoo Keeper. Đây quả là điều điên rồ với các công ty khác, nhưng để người dùng đạt được trải nghiệm tốt nhất, Facebook cần phải làm như vậy .

LAD, hệ thống mà nhóm kỹ sư của Facebook tạo ra, bao gồm các phần: một proxy nằm trên hệ thống chính của Facebook, có chức năng cung cấp các bản cấu hình mới nhất đến các máy chủ nào cần. Phần thứ hai là một hệ thống phân phối, như tên gọi, phần phân phối này sẽ cung cấp các thông tin cấu hình để tất cả các hệ thống máy chủ của Facebook thực hiện. Để làm được điều này, nó sẽ liên tục kiểm tra các bảng cấu hình mới nhất tự hệ thống proxy, nếu phát hiện ra bảng cấu hình mới, nó sẽ tạo một cây sơ đồ các máy chủ và sẽ tự động thực hiện cập nhật trên tất cả các máy chủ đó.

Mô hình cây sơ đồ trên sẽ giúp Facebook giải quyết những vấn đề gặp phải khi phân phối các thay đổi ở mức cực đại. "Bằng cách sử dụng cấu trúc cây, LAD bảo đảm rằng sẽ gửi các bản cập nhật đến các proxy, proxy sẽ tiếp tục phân phối đến các máy chủ trong đội của mình. Sau đó các máy chủ đó tiếp tục gửi đến các máy chủ con, không có máy chủ nào bị tbỏ sót. Quy trình như vậy sẽ giải quyết được được tình trạng quá tải khi một số máy chủ phải chịu trách nhiệm phân phối các bản cập nhật đến hàng triệu các máy chủ còn lại." Haider-Zaveri viết.

So với hệ thống Zoo Keeper cũ, LAD của Facebook đã nâng dung lượng file cập nhật từ giới hạn chỉ 5Mb lên 100MB, phân phối đến 40.000 máy chủ một lần thay vì 2500 như Zoo Keeper.

Tất nhiên, với quy mô quá khổng lồ của mình, thì hệ thống LAD mới cần phải thử nghiệm nhiều hơn để đáp ứng quá trình hoạt động trơn tru. Nhưng, với số lượng người dùng quá lớn của Facebook hiện nay, việc xây dụng một hệ thống như trên là rất cần thiết, khi họ phải đối mặt mới một vấn đề mà chưa từng ai gặp phải trước đây.

Theo ICT News

http://ictnews.vn/internet/facebook-lam-the-nao-de-co-the-cau-hinh-cho-hang-trieu-may-chu-moi-ngay-170122.ict