Sau hàng loạt sự cố, Facebook tiết lộ các kỹ thuật mới giúp mang lại trải nghiệm nhanh hơn và hiệu quả hơn trong năm 2018

GenK -
Ngoài ra, đây còn là chiến lược tiếp cận tới tương lai của Facebook khi định luật Moore về tốc độ cải tiến phần cứng điện toán đang chậm lại đáng kể.

Giờ đây Facebook đang là nơi trú ngụ của hơn 2 tỷ người dùng, trong số đó có khoảng 1,37 tỷ người sử dụng nó hàng ngày. Đó còn là nơi chứa các bức ảnh, các đoạn video, tin nhắn và các nội dung khác mà lượng người dùng khổng lồ của nền tảng này sử dụng, tất cả những điều này cần đến một sức mạnh điện toán lớn ngoài sức tưởng tượng. Và đó là lý do tại sao đề tài phổ biến xuyên suốt các mục tiêu kỹ thuật trong năm 2018 là tìm ra các cách làm hiệu quả hơn và sử dụng phần mềm để giảm chi phí điện toán đó.

Trong cuộc phỏng vấn với trang Fast Company, phó chủ tịch về kỹ thuật của Facebook, David Mortenson đã thảo luận về nhiều chủ đề, dự kiến chúng sẽ trở thành cơ sở cho các thay đổi về kỹ thuật của Facebook trong năm tới.

Đầu tiên, Facebook, cũng như bất kỳ công ty công nghệ nào, đều phải chấp nhận một thực tế rằng định luật Moore đang chậm lại. Theo ông Mortenson giải thích, trong quá khứ, các công ty có thể dựa vào những cải tiến về phần cứng theo định luật Moore để giải quyết các nhu cầu đang gia tăng cho phần mềm ngày càng mạnh mẽ hơn nữa. Tuy nhiên, điều này sẽ không còn nữa.

Điều này có nghĩa rằng, Facebook sẽ phải tìm kiếm các cách làm mới để phần mềm của mình tương thích với điều đó và chạy ngày càng hiệu quả hơn trên phần cứng của nó. Mortenson cho biết, điều đó sẽ bắt đầu bằng việc tìm kiếm loại bộ nhớ bền bỉ, có sức chịu đựng cao, và cách để giảm lượng bộ nhớ ngốn năng lượng trên các máy chủ. Do các CPU không còn trở nên nhanh hơn và mạnh hơn với tỷ lệ như trước kia được nữa, điều đó có nghĩa là các biện pháp như vậy là cách thức tốt nhất để tận dụng phần cứng hiện tại.

Và để có được các trung tâm dữ liệu hiệu quả hơn, sử dụng ít năng lượng hơn khi chúng phải xử lý các phép tính toán với một quy mô khổng lồ, sẽ cần phải vạch ra biện pháp để phân vùng bộ nhớ lưu trữ trên nhiều nút tính toán, thay vì gắn chặt vào các nút tính toán dành riêng. Ông cho biết, cách làm này sẽ cho phép sử dụng bộ lưu trữ hiệu quả hơn.

Xử lý nhiều hơn theo thời gian thực

Một chủ đề khác cho năm 2018 là việc cho phép cơ sở hạ tầng của Facebook hỗ trợ việc xử lý theo thời gian thực cho các dịch vụ của công ty, thay vì chỉ hỗ trợ cho các nội dung như Live video hiện tại.

Ông Mortenson giải thích rằng, ý tưởng này sẽ giúp các kỹ sư của họ đưa ra sản phẩm theo thời gian thực dễ dàng hơn, và không phải viết các đoạn code dành riêng cho mục đích đó.

Ví dụ, hãy tưởng tượng một trong những người bạn trên Facebook của bạn khởi động một chiến dịch quyên góp. Hiện tại, các ứng dụng client của Facebook - ứng dụng trên mobile hay desktop của họ - sẽ buộc phải yêu cầu các máy chủ của nó nếu có nội dung mới bạn muốn xem hoặc nội dung sẽ hiển thị cho bạn. Đó là một hệ thống đẩy (pull system), nghĩa là ứng dụng của bạn phải liên tục ping về máy chủ để tìm kiếm nội dung mới.

Thay vào đó, bằng cách đẩy nội dung mới – ví dụ như chiến dịch quyên góp – tới cho bạn, Facebook nghĩ rằng, bạn sẽ muốn xem nội dung đó, bạn sẽ xem được nó sớm hơn, và cuối cùng điều đó sẽ giúp cắt giảm được chi phí cho sức mạnh điện toán.

Đưa máy học vào tất cả các lĩnh vực

Một trong những lợi thế mà các kỹ sư của Facebook có được khi làm việc trên các sản phẩm hoặc dịch vụ mới là họ thường có thể sử dụng lại các đoạn code, vốn được viết cho các dự án khác, và lấy đoạn code đó ra từ một kho lưu trữ khổng lồ. Mortenson cho biết, nhưng đôi khi, các đoạn code thích hợp lại rất khó tìm thấy.

Vì vậy, ông hy vọng việc sử dụng kỹ thuật máy học cho các tìm kiếm ngữ nghĩa sẽ giúp các kỹ sư tìm thấy chính xác đoạn code mà họ cần dễ dàng hơn, mà không cần viết chính xác những gì họ đang tìm kiếm.

Một lĩnh vực khác mà ông hy vọng máy học sẽ có ích là việc lựa chọn các bài test (kiểm tra) kỹ thuật thích hợp, vốn rất cần thiết cho việc phát hiện các vấn đề khi code.

Ví dụ, nếu một kỹ sư đang làm một thay đổi nhỏ với code để xử lý cách hoạt động quyên góp diễn ra như thế nào – có thể là chỉ làm nút quyên góp trở nên khác đi một chút – kỹ sư đó phải đảm bảo rằng việc thực hiện thay đổi đó không làm hỏng bất kỳ điều gì khác. Để làm được điều đó, kỹ sư đó phải chạy các bài test để đảm bảo mọi thứ hoạt động tốt. Ông Mortenson cho biết, bằng cách áp dụng kỹ thuật máy học, việc tìm ra và chạy các bài test đúng sẽ trở nên dễ dàng hơn.

Điều này sẽ cho phép các kỹ sư tạo ra những sản phẩm mới nhanh hơn, và sửa chữa những sản phẩm họ đang làm việc với nó. Và điều đó cũng có nghĩa là nó sẽ được xuất xưởng nhanh hơn. Thêm vào đó, khi việc sử dụng máy học giúp tìm thấy đoạn code thích hợp nhanh hơn, nó sẽ giúp hạ thấp chi phí hoạt động và giúp các kỹ sư làm việc năng suất hơn.

Để minh họa cho điều đó, Mortenson giải thích rằng, Facebook theo dõi lượng thời gian các kỹ sư của họ phải đợi mỗi khi những thay đổi của họ được committ (ghi chép) vào code cơ sở - một điều đặc biệt đáng chú ý với các kỹ sư đang làm việc trên ứng dụng Facebook cho Android. Trong năm qua, Facebook đã có thể giảm thời gian mà các kỹ sư của họ phải chờ đợi đi 75% nhờ hàng loạt các chiến thuật mới. Giờ họ đang hy vọng máy học sẽ giúp con số này còn giảm hơn nữa.

Dự báo nhu cầu cho nội dung mới

Rõ ràng là nhiều người dùng Facebook dành rất nhiều thời gian cho dịch vụ của họ, và thường xuyên tìm kiếm các nội dung mới. Nhưng hóa ra cũng có những thời điểm cho việc người dùng muốn các nội dung mới nhất đó. Vì vậy, công ty đang nỗ lực để có thể dự báo được thời gian đó một cách chính xác hơn – Facebook cho rằng đây sẽ là một phương pháp khác để công ty giảm được chi phí điện toán của mình.

Nếu chúng ta có thể dự báo điều đó một cách hiệu quả.” Mortenson cho biết. “Và có sẵn các nội dung đó, đặc biệt nếu bạn trực tuyến khi đông người đang online nhất, hệ thống có thể được chuyển sang trạng thái đáp ứng được nhu cầu ở mức đỉnh điểm đó… Chúng tôi có thể giảm chi phí tổng thể của cơ sở hạ tầng và làm nó tốn ít chi phí năng lượng hơn.”

Ông cho rằng, dù tập người dùng của Facebook nằm trên toàn cầu, nhưng thời gian sử dụng phổ biến nhất là vào buổi sáng theo giờ Thái Bình Dương. Khi biết được lúc nào người dùng muốn các nội dung mới nhất, hệ thống có thể chuẩn bị sẵn sàng, và “chúng tôi có thể đẩy nó tới với bạn hiệu quả hơn nhiều so với trước kia.”

Mortenson chỉ ra quy mô rộng lớn của vấn đề này. Ông cho biết, ngay cả một bài đăng duy nhất với chỉ một hai hình ảnh và vài reaction bên dưới cũng sẽ tác động đến hàng ngàn đối tượng trong cơ sở dữ liệu về đồ thị xã hội của công ty. Thách thức ở đây là duy trì bài đăng đó được cập nhật khi nó được lưu vào bộ nhớ đệm. Mở rộng con số đó đến hàng tỷ bài đăng mà Facebook phải xử lý mỗi ngày, và bạn sẽ thấy phạm vi rộng lớn của thách thức kỹ thuật mà công ty gặp phải.

Một giải pháp cho vấn đề này là tinh chỉnh ngôn ngữ lập trình mà Facebook đang sử dụng để theo dõi tốt hơn các đối tượng thay đổi trong bài đăng của người dùng để tối thiểu hóa sức mạnh điện toán cần thiết nhằm duy trì việc cập nhật các bài đăng đó. Ông cho biết, bằng cách này, sẽ không cần thiết phải tính toán lại mọi thay đổi của bài đăng nếu chỉ một yếu tố thay đổi.

Và khi hỏi về các lợi ích của việc tinh chỉnh ngôn ngữ lập trình mà Facebook đang sử dụng, Mortenson cho biết. “Chúng tôi không cho rằng một ngôn ngữ mới sẽ thực sự hiệu quả nếu nó không hiệu quả hơn gấp 5 lần so với trước đây.”

Theo GenK