Các công nghệ mà mạng xã hội Facebook đang sử dụng

Facebook - MXH lớn nhất hành tinh.

Stacks ban đầu là LAMP (Linux, Apache Server, Mysql, PHP). Nên nếu ai hỏi Mark Zuckerberg ngày xưa dùng ngôn ngữ nào để tạo nên Facebook thì đó là PHP.

Nhưng sau này vì nhu cầu cân bằng tải (load-balancing) khổng lồ nên kiến trúc đã thay đổi rất nhiều, phức tạp hơn, dùng nhiều ngôn ngữ hơn để đảm nhiệm nhiều chức năng nhiệm vụ khác nhau.

Chúng ta cùng đi tìm hiểu những công nghệ mà Facebook đang sử dụng:

MEMCACHED

Memcache là một mã nguồn mở dành cho việc lưu bản sao (caching) dữ liệu. Nó tạo một tầng sao lưu đệm giữa webserver và mysql server. Thay vì dữ liệu được lấy từ Database thì nó sẽ lấy từ memcache trước để hạn chế phải truy vấn vào DB.

HIPHOP FOR PHP

PHP là ngôn ngữ thông dịch (interpreter) cho nên so với C++ là ngôn ngữ biên dịch (compiler) về tốc độ thì không thể bằng. Cho nên Hiphop sinh ra để chuyển từ PHP sang C++ nhằm tối ưu về tốc độ.

HAYSTACK

Dùng để lưu trữ và truy vấn hình ảnh của Facebook, Haystack là kho lưu trữ đối tượng.

FB có khoảng 20 tỷ hình ảnh và mỗi hình ảnh này được lưu trữ 4 kích thước khác nhau cho nên tổng là khoảng 80 tỷ. Một con số khổng lồ.

Công nghệ này không chỉ là lưu trữ hình ảnh mà còn đáp ứng khoảng 1,2 triệu truy vấn/ giây. Chưa nói đến các hình ảnh được đáp ứng bởi CDN của FB.

BIGPIPE

Công nghệ riêng do FB phát triển, đáp ứng các webpage động bằng cách chia nhỏ ra thành các phần gọi là pagelets.

Mỗi phần hoạt động riêng và không ảnh hưởng đến toàn bộ trang nếu như không thể load được dữ liệu hoặc lỗi.

CASSANDRA

Hệ quản trị cơ sở dữ liệu phân tán mã nguồn mở nhằm đáp ứng khố lượng công việc lớn. Nó được phát triển bởi Facebook và vẫn còn tiếp tục phát triển và sử dụng cho mạng xã hội lớn nhất thới giới này. Năm 2008, Facebook chuyển nó cho cộng đồng mã nguồn mở và được Apache tiếp tục phát triển đến ngày hôm nay.

Facebook dùng Cassandra cho inbox search.

SCRIBE

Scribe dùng cho hệ thống log.

HADOOP AND HIVE

Hadoop là mã nguồn mở cho phép phát triển các ứng dụng phân tán có cường độ dữ liệu lớn một cách miễn phí. Facebook dùng nó để kháo sát dữ liệu của mình (FB là một kho dữ liệu khổng lồ).

Hive truy vấn dữ liệu bằng ngôn ngữ sql một cách dể dàng sử dụng với Hadoop.

THRIFT

Facebook sử dụng nhiều ngôn ngữ lập trình khác nhau với nhiều dịch vụ khác nhau.

PHP cho front-end.

Erlang cho phần Chat.

Java và C++ sử dụng cho các phần khác và nhiều ngôn ngữ khác nữa.

Thrift là một mã nguồn mở cross-language, giúp các ngôn ngữ lập trình khác nhau có thể hoạt động cùng với nhau được.

VARNISH

Varnish là trình tăng tốc HTTP hoạt động như một load balancer (bộ phân tải) và hệ thống cache nội dung giúp tốc độ tải trang là nhanh nhất.

Facebook dùng varnish cho hình ảnh, chịu tải hàng triệu truy cập mỗi ngày.


Bài được dịch và tổng hợp từ:

Ngoài ra các AE IT đam mê về Design System thì có thể đọc thêm:

 
comments powered by Disqus