Tháng 11
14
2010

[Kiến thức cơ bản] Tìm hiểu những công nghệ sử dụng trên Facebook

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.

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.

Tuy nhiên, để 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ình, 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.

Các bài hay khác

Về tác giả: Dũng Phạm Trung

Cách cài đặt là trang cung cấp hướng dẫn cấu hình, cài đặt và sử dụng phần mềm. Nội dung trên website được chúng tôi sưu tầm hoặc tạo ra nhằm giúp mọi người nắm bắt được những kiến thức CNTT một cách đơn giản nhất.

Với lời bình

CommentLuv badge

Comments links could be nofollow free.

Bài nhiều người đọc

[Cách cài đặt] Cài đặt Apache, PHP, MySQL và phpMyAdmin trên Windows
Comments58
[Cách cài đặt] Tạo blog với WordPress (phần 1)
Comments11
[Thủ thuật] Chèn nút Google +1 vào Blog WordPress, Blogger
Comments11
Lựa chọn mã nguồn cho website của bạn
Comments10
[Mã nguồn mở] MyBB là gì?
Comments9
Các hệ thống web mã nguồn mở (Open Source System) phổ biến trên thế giới
Comments9
[Cách cài đặt] Tạo blog với WordPress (phần 3)
Comments9
Cách sửa lỗi Windows Could Not Start... C:\WINDOWS\SYSTEM32\CONFIG\SYSTEM
Comments9
[Cách cài đặt] Tạo blog với WordPress (phần 2)
Comments7
[Cách cài đặt] Tạo blog với WordPress (phần 2)
Comments7

Bình luận mới nhất

  • Loading...