Tìm hiểu về những công nghệ Facebook sử dụng

Tìm hiểu về những công nghệ Facebook sử dụng

Facebook hiện đang là một trong những mạng xã hội có số lượng thành viên lớn nhất trên thế giới hiện nay, chính vì vậy nó 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 cỗ máy khổng lồ như vậy.

Hiện nay Facebook đã trở thành một mạng xã hội, công cụ liên lạc quen thuộc với cộng đồng cư dân mạng trên toàn thế giới. Với số lượng thành viên tới hơn 1 tỷ người và đang không ngừng gia tăng theo từng giây, chỉ lớn sau số dân của Trung Quốc. Facebook đang là một công cụ truyền thông sắc bén hiệu quả cho doanh nghiệp, cá nhân.

Những công nghệ facebook đang sử dụng

Những công nghệ facebook đang sử dụng

Tuy nhiên, để quản lý và vận hành một trang web lớn như vậy chắc chắc không phải là một việc đơn giản. Đằng sau đó là cả một bộ máy con người, các kỹ sư, các công nghệ tiên tiến để có thể làm được những điều như vậy. Trong bài viết này mình 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 cũng tìm hiểu về tình hình thực tế hiện nay.

  • Mỗi tháng có khoảng 630 tỷ lượt pageview.
  • Số ảnh có trên Facebook nhiều hơn tất cả các trang chia sẻ hình ảnh gộp lại. 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. (chưa tính những bức ảnh chạy thông qua hệ thống CDN của Facebook)
  • Hơn 30 tỷ dữ liệu về thông tin về status, comment được chia sẻ mỗi tháng
  • Facebook có hơn 100.000 máy chủ ở khắp nơi trên thế giới.

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 viết lại, thay đổi mạnh mẽ để phục vụ nhu cầu của riêng Facebook, với những công nghệ chủ yếu sau:

Memcached

Nếu các bạn nào đã từng hiểu qua thì đã biết Memcached là một hệ thống cache mà hầu hết các trang web lớn trên thế giới đang sử dụng hiện nay như: Youtube, Wikipedia, Flickr, Twitter, …. thật là điều dễ hiểu khi Facebook cũng sử dụng nó cho hệ thống của mình.

Facebook sử dụng hàng chục nghìn máy chủ để chạy Memcached với dung lượng cache là 100 Terabytes tại bất kỳ thời điểm nào. Đây cũng có thể coi là một hệ thống memcached lớn nhất trên thế giới hiện nay. Thật là khủng khiếp phải không nào các bạn?

HipHop cho PHP

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

Nhóm kỹ sư của Facebook (gồm 3 thành viên) họ đã mất tới 18 tháng để phát triển thành công HipHop và bây giờ nó đã trở thành một sản phẩm hoàn thiện. Hiện nay Facebook cũng biến nó thành mã nguồn mở luôn cho cộng đồng sử dụng. Sản phẩm vĩ đại luôn làm những điều vĩ đại cho cộng đồng phải không nào? 

Haystack

Haystack là một hệ thống lưu trữ và quản lý ảnh tốc độ cao được Facebook phát triển (nói một cách chính xác là nó lưu trữ các đối tượng, mà đối tượng ở đây không nhất thiết phải là ảnh mà có thể là một cái gì đó mà chúng ta mong muốn).

Facebook đang lưu trữ hơn 100 tỷ bức ảnh và mỗi tháng lại có thêm 10 tỷ bức ảnh mới được người dùng tải lên hàng giây. Mỗi bức ảnh được lưu trữ lại được lưu trữ ở nhiều độ phân giải khác nhau. Như vậy Facebook có hơn 400 tỷ bức ảnh. Hơn nữa, có tới 5,2 triệu bức ảnh cần phải được xử lý mỗi giây. Vì vậy hệ thống này không đơn giản là chỉ xử lý đơn thuần mà nó còn giúp Facebook vận hành nhanh hơn một cách đáng kinh ngạc.

BigPipe

BigPipe cũng là một hệ thống do chính Facebook phát triển. 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 độ đáp ứng dịch vụ cho người dùng.

Ví dụ như: Cửa sổ chat hoàn toàn được tách biệt với feed. Điều này không chỉ giúp tăng tốc độ tải trang, mà còn không bị gián đoạn trong cách trải nghiệm của người sử dụng.

Cassandra

Cassandra là hệ thống lưu trữ dữ liệu được Facebook sử dụng cho các tính năng tìm kiếm trong Inbox, … Đây là một phần mềm mã nguồn mở (hiện đang là một dự án của Apache) được rất nhiều trang web lớn sử dụng cho hệ thống của mình.

Đây cũng là một họ nhà NoSQL đang bắt đầu được phát triển phổ biến hiện nay.

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 trực tuyến có quy mô khổng lồ như Facebook, việc yêu cầu hệ thống phải chạy nhanh và ổn định không đơn giản là việc chỉ sử dụng các công nghệ tiên tiến mà còn phụ thuộc vào nhiều yếu tố khác như: nhân lực, hạ tầng kỹ thuật. Với việc sử dụng các 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ông nghệ trên thế giới. Ngoài sứ mệnh phục vụ sự kết nối hơn 1 tỷ người, Facebook còn đóng vai trò quan trọng trong giới truyền thông trực tuyến đang là một xu thế phát triển cực mạnh hiện nay.