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
Ở 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ụ:
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 |
Thêm vào trang Google +
Số lần xem : 4741
Đánh giá