Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.

Announcement

Collapse
No announcement yet.

Khám phá những kỹ thuật dằng sau Facebook

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Khám phá những kỹ thuật dằng sau Facebook

    Một thử thách rất lớn dành cho các kỹ sư tại Facebook là phải giữ cho website hoạt động ổn định, nhẹ nhàng, và nhanh chóng cho nửa tỷ active users. Bài này sẽ điểm qua một số phần mềm, kỹ thuật được sử dụng để đạt được mục tiêu đó.

    Các thách thức của Facebook

    Các dữ liệu dưới đây cho bạn cái nhìn tổng quan về mức độ ổn định và hoạt động của website

    * Facebook phục vụ 570 tỷ page views mỗi tháng (Google Ad Planner)
    * Số lượng ảnh có trên Facebook lớn hơn tổng số lượng ảnh của tất cả các trang chia sẻ/hosting ảnh khác (bao gồm cả những site như Flickr)
    * Hơn 3 tỷ ảnh được tải lên hàng tháng.
    * Facebook xử lý 1.2 triệu ảnh mỗi giây.
    * Hơn 25 tỷ mẩu tin/status/links/comments được chia sẻ hàng tháng.
    * Facebook có hơn 30,000 servers (năm 2009).

    Phần mềm sử dụng

    Ở khía cạnh nào đó, ta vẫn có thể coi Facebook là LAMP, nhưng nó đã phải thay đổi, nâng cấp những chức năng, dịch vụ sẵn có ở nhiều mức độ.

    Ví dụ:

    * Facebook vẫn sử dụng PHP, nhưng nó đã xây dựng một compiler để có thể chuyển đổi mã nguồn thành native code chạy trên webserver -> tăng hiệu năng.
    * Facebook sử dụng Linux, nhưng đã tối ưu hệ thống cho mục địch sử dụng cụ thể của site (đặc biệt là giao tiếp mạng).
    * Facebook sử dụng MySQL, nhưng phần lớn lưu giữ kiểu key-value, đưa các logic trong câu lệnh join lên web servers sao cho việc tối ưu có thể được thực hiện hiệu quả nhất ở đây.

    Tiếp theo đó là một loạt các hệ thống được viết và tích hợp thêm như Haystack, Scribe.

    Và bây giờ ta sẽ lượt qua một số phần mềm được sử dụng bởi trang mạng xã hội lớn nhất thế giới hiện nay

    Memcached

    Memcached là một hệ thống bộ nhớ phân tán mà Facebook đã sử dụng như một caching layer giữa web servers và MySQL server. Facebook đã tối ưu hóa Memcached và các phần liên quan và xây dựng một hệ thống bao gồm hàng ngàn servers với hàng chục terabytes dữ liệu được cached tại mỗi thời điểm. Có thể coi đây là hệ thống Memcached lớn nhất thế giới tại thời điểm này.

    HipHop

    PHP bản chất là scripting language, như vậy sẽ chậm hơn so với code chạy native trên servers. Một số kỹ sư của Facebook đã dành 18 tháng để xây dựng HipHop nhằm mục đích chuyển đổi PHP sang mã nguồn của C++ , có thể biên dịch để chạy nhằm tăng hiệu năng.

    Haystack

    Là hệ thống lưu giữ và xử lý ảnh với hiệu năng cao của Facebook.

    BigPipe

    Cũng là một hệ thống do Facebook phát triển, nhằm phục vụ những trang web động, pagelet như cửa sổ chat, notification. Những pagelets này có thể được lấy & xử lý song song để đảm báo hiệu năng, giảm thiểu những rủi ro hay làm ngắt quãng hoạt động của users.

    Cassandra

    Là một hệ thống lưu giữ phân tán hoàn hảo, sử dụng những lý thuyết truy xuất của NoSQL.

    Scribe

    Là hệ thống logging linh hoạt được Facebook sử dụng cho nhiều mục đích khác nhau.

    Hadoop and Hive

    Mã nguồn mở và có vai trò tiên quyết trong việc xử lý các phép tính với lượng dữ liệu khổng lồ. Facebook sử dụng cho việc phân tích dữ liệu. Ngoài ra, Yahoo & Twitter cũng sử dụng hệ thống này.

    Thrift

    Facebook sử dụng những ngôn ngữ khác nhau cho từng services của họ. PHP cho front-end, Erlang cho Chat, Java và C++ cũng được sử dụng ở nhiều nơi. Như vậy, Thrift là cross-language platform được phát triển để kết hợp chặt chẽ các ngôn ngữ lập trình lại với nhau, làm cho chúng có thể giao tiếp được.

    Varnish

    Là hệ thống tăng tốc trong giao thức HTTP, hoạt động giống như load-balancer và cũng có khả năng cache nội dung để giảm tải truy xuất. Varnish được sử dụng rộng rãi trong việc quản lý ảnh, profile và xử lý hàng tỷ requests mỗi ngày.
    Những thứ cũng quan trọng khác

    Phần trên thì chúng ta đã điểm qua một số software đã giúp Facebook đạt được sử ổn định và hiệu năng cao. Tuy nhiên, quản lý một hệ thống lớn và phức tạp cần nhiều hơn thế. Dưới đây là một số yếu tố khác

    Thường xuyên release, nhưng vẫn có độ trễ

    Facebook vẫn hàng ngày cập nhật, nâng cấp những tính năng của mình, họ sử dụng hệ thống gọi là Gatekeeper cho phép chạy những phiên bản mã nguồn khác nhau cho những nhóm users khác nhau. Như vậy, những chức năng sẽ được active từ từ trước khi được sử dụng phổ biến.

    Quản lý hệ thống rất tốt

    Facebook theo dõi, chăm chút hệ thống của họ vô cùng cẩn trọng, đến từng PHP function. Họ sử dụng XHProf cho việc này.

    Tạm thời vô hiệu hóa một số chức năng để tăng hiệu năng

    Nếu có vấn đề với hiệu năng, Facebook sẽ có những mức độ xử lý khác nhau bao gồm vô hiệu hóa các chức năng ít quan trọng để tăng hiệu năng trong những core features.

    Những thông tin khác

    Đây có thể coi là thông tin ít được public từ Facebook. Tất nhiên là họ có sử dụng CDN để xử lý static content, hay một trung tâm dữ liệu lớn với nhiều servers.

    Ngoài ra, hàng chục phần mềm khác đang được sử dụng mà chúng ta chưa đề cập đến trong bài này.

    Facebook ứng dụng mã nguồn mỡ mạnh mẽ

    Hầu hết các software đều là mã nguồn mở, từ những software đã tồn tại cho đến những hệ thống do Facebook viết ra. Danh sách các software mã nguồn mở của Facebook có thể tìm ở Facebook’s Open Source page

    Những thử thách lớn hơn

    Facebook vẫn đang phát triển rất nhanh với hơn 100 triệu users mỗi 6 tháng, đội ngũ Facebook cũng ngày càng mở rộng để có thể xử lý những vấn đề đó.

    Sự phát triển nhanh cũng đồng nghĩa với việc Facebook phải đối mặt với hàng loạt vấn đề về hiệu năng, bảo mật. Các kỹ sư ở đó hẳn có rất nhiều việc để làm.

    Tham khảo

    Bài viết gốc bằng tiếng Anh http://royal.pingdom.com/2010/06/18/...ehind-facebook

    Trang web liệt kê các phần mềm mã mở của Facebook http://facebook.comopensource

    Blog của các kỹ sư Facebook http://facebook.com/eblog

    Các bài presentation của các kỹ sư Facebook http://www.infoq.com/presentations/Scale-at-Facebook

    Nguồn http://i-php.net

    Hướng dẫn cài đặt cấu hình Data Loss Prevention - MyQLP Appliance (Open Source)


    Hướng dẫn cài đặt và cấu hình Mdeamon 12.x

    Hướng dẫn cài đặt cấu hình ISA 2006 và Exchange 2003 - Mô hình Front-End Back-End

    Cài đặt và cấu hình Cacti - Giám Sát và Quản Lý Hệ Thống Mạng

    Hướng dẫn cài đặt cấu hình Retrospect Backup Server

    Cài đặt và cấu hình phần mềm FSA Audit Files Server

    CAMAPTRANG
    http://www.asterisk.vn
Working...
X