Những công nghệ sử dụng trên Facebook

Thứ hai - 07/02/2011 15:25

Những công nghệ sử dụng trên Facebook

Facebook hiện đã trở thành một mạng xã hội quen thuộc với cộng đồng dân cư mạng trên toàn thế giới. Với số lượng người tham gia lên đến 400 triệu, lớn hơn rất nhiều lần dân số trung bình của một quốc gia, Facebook đang chiếm ngôi vị số 1 trong lĩnh vực mạng xã hội. Là một trong những mạng xã hội có số lượng thành viên lớn nhất thế giới, Facebook phải sử dụng những công nghệ cực kì hiện đại mới có thể vận hành cỗ máy khổng lồ như vậy.
Để quản lý và vận hành một trang web lớn như vậy chắc chắn không phải là một việc đơn giản. Trong bài viết này, chúng tôi sẽ giúp các bạn có cái nhìn tổng quan về những công nghệ đang được Facebook sử dụng.

Trước tiên, chúng ta sẽ tìm hiểu về tình hình thực tế hiện nay của Facebook.
  • Mỗi tháng có khoảng 630 tỉ lượt page views. (Theo Google Ad Planner)
  • Số ảnh có trên Facebook nhiều hơn tất cả các trang chia sẻ ảnh gộp lại. (Bao gồm cả những trang lớn như Flickr)
  • Hơn 3 tỉ bức ảnh được tải lên Facebook hàng tháng, trung bình có 1,2 triệu bức ảnh mỗi giây (Không tính những bức ảnh thông qua hệ thống CDN của Facebook)
  • Hơn 25 tỉ dữ liệu về thông tin (status, comment...v.v) được chia sẻ mỗi tháng.
  • Facebook có hơn 30.000 máy chủ. (Đây là số liệu thông kê cách đây 1 năm)
Những phần mềm và công nghệ đang được Facebook sử dụng:

Về cơ bản, Facebook hoạt động dựa trên nền tảng LAMP (Linux, Apache, MySQL và PHP) nhưng chúng đều được thay đổi, chỉnh sửa rất nhiều để phù hợp với nhu cầu riêng của mạng xã hội, với những công nghệ chủ yếu sau:
Memcached

Memcached là một hệ thống cache mà hầu hết các trang web lớn trên thế giới như: Youtube, Wikipedia, Flickr, Twitter...  sử dụng. Không khó hiểu khi nó được Facebook sử dụng cho hệ thống của mình.

Facebook chạy hàng nghìn máy chủ Memcached với dung lượng dữ liệu cache là 10 terabytes tại bất kì thời điểm nào. Đây có thể coi là hệ thống Memcache lớn nhất thế giới.

HipHop cho PHP

PHP là một dạng ngôn ngữ lập trình kịch bản, do đó tốc độ của nó khá chậm so với các ngôn ngữ có thể chạy trực tiếp trên máy chủ. HipHop sẽ chuyển mã PHP sang thành mã C++ nhờ đó có thể được biên dịch để đạt tốc độ cao hơn. Điều này giúp Facebook tận dụng tốt hơn sức mạnh của máy chủ do Facebook chủ yếu dùng PHP.

Nhóm kĩ sư của Facebook (gồm 3 người) đã mất 18 tháng để phát triển HipHop và giờ nó đã thành một sản phẩm hoàn thiện.



Haystack

Haystack là hệ thống lưu trữ và quản lý ảnh tốc độ cao của Facebook (nói một cách chính xác là hệ thống lưu trữ đối tượng, đối tượng không nhất thiết phải là ảnh).

Facebook đang lưu trữ hơn 20 tỉ bức ảnh và mỗi tháng lại có thêm 3 tỉ bức ảnh mới được tải lên. Mỗi bức ảnh được lưu dưới 4 độ phân giải khác nhau. Như vậy tổng cộng Facebook có hơn 80 tỉ bức ảnh. Hơn nữa, có tới 1.2 triệu bức ảnh cần phải xử lý mỗi giây. Chính vì vậy, hệ thống quản lý này không chỉ giúp xử lý đơn thuần mà còn giúp tăng tốc độ xử lý dữ liệu cho Facebook. 
 
BigPipe
BigPipe cũng là một hệ thống do Facebook phát triển. Facebook dùng hệ thống này để xử lý mỗi trang web theo từng phần nhỏ một (hay còn gọi là theo luồng) nhằm mục đích tăng tốc độ cho người dùng.

Ví dụ, cửa sổ chat hoàn toán tách biệt với mục feed. Điều này không chỉ giúp tăng tốc độ tải trang mà còn có tác dụng hạn chế sự cố xảy ra đồng thời.

Cassandra

Cassandra là hệ thống lưu trữ dữ liệu được Facebook sử dụng cho tính năng tìm kiếm trong Inbox.

Đây là một phần mềm nguồn mở (hiện tại đang là một dự án của Apache) được rất nhiều trang web lớn sử dụng.

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 sử dụng Varnish để xử lý ảnh thông thường và các ảnh trong profile người dùng. Nó có thể xử lý hàng tỉ requests (yêu cầu) trong một ngày. Tương tự các phần mềm khác được Facebook sử dụng, Varnish cũng là một phần mềm nguồn mở.

Kết luận

Với một mạng xã hội có quy mô khổng lồ như Facebook, việc hệ thống chạy nhanh và ổn định không chỉ đơn giản là việc sử dụng công nghệ tiên tiến mà còn phải phụ thuộc vào rất nhiều yếu tố khác. Với việc sử dụng phần mềm nguồn mở, Facebook đã đóng góp không ít cho sự phát triển của cộng đồng.

Tác giả: Misao

Nguồn tin: dientutieudung.vn

Tổng số điểm của bài viết là: 1 trong 1 đánh giá

Xếp hạng: 1 - 1 phiếu bầu
Click để đánh giá bài viết

Những tin mới hơn

Những tin cũ hơn

Yêu cầu sử dụng NukeViet 4

1. Môi trường máy chủ Yêu cầu bắt buộc Hệ điều hành: Unix (Linux, Ubuntu, Fedora …) hoặc Windows PHP: PHP 5.4 hoặc phiên bản mới nhất. MySQL: MySQL 5.5 hoặc phiên bản mới nhất Tùy chọn bổ sung Máy chủ Apache cần hỗ trợ mod mod_rewrite. Máy chủ Nginx cấu hình các thông...

Thăm dò ý kiến

Lợi ích của phần mềm nguồn mở là gì?

Thống kê truy cập
  • Đang truy cập23
  • Máy chủ tìm kiếm3
  • Khách viếng thăm20
  • Hôm nay7,309
  • Tháng hiện tại99,753
  • Tổng lượt truy cập94,248,417
Left-column advertisement
Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây