Nội Dung Chính
Trong bài viết trên trang Facebook cá nhân vào đầu tháng, CEO WhatsApp, Jan Koum, cho biết dịch vụ tin nhắn tức thời này – VoIP đã chạm mốc 900 triệu người dùng. Ngay sau đó, Mark Zuckerberg, CEO Facebook cũng viết bình luận chúc mừng ngay dưới bài viết, có kèm cả hình ảnh minh họa với ý đùa vui.
WhatsApp hiện đang thuộc sở hữu của Facebook sau cuộc thâu tóm tốn nhiều giấy mực của báo chí hơn một năm về trước vì mức giá công bố điên rồ cho 1 startup: 19 tỷ USD. Điều đó có nghĩa Facebook đang nắm trong tay 3 ứng dụng phổ biến nhất trên Internet.
Ở vị trí trung tâm là dịch vụ mạng xã hội có hơn 1,5 tỷ người dùng và Facebook Messenger, dịch vụ tin nhắn tức thời vừa được tách ra độc lập với Facebook, cũng đạt 700 triệu người dùng. Nhưng cột mốc 900 triệu người dùng của WhatsApp là thành tựu tuyệt vời vì nó không phải là một sản phẩm dựa hơi cỗ mấy khổng lồ Facebook.
Một trong những phần hấp dẫn nhất trong câu chuyện về WhatsApp đó là họ có thể đạt được quy mô vô cùng lớn chỉ với 1 nhóm rất nhỏ nhân viên.Khi được Facebook mua lại, công ty chỉ có vỏn vẹn 35 kỹ sư và hơn 450 triệu người dùng. Cho tới thời điểm hiện tại, số nhân viên công ty cũng chỉ khoảng 50 kỹ sư, mặc dù số người dùng WhatsApp đã tăng gấp đôi, nhưng các kỹ sư vẫn có thể đảm nhiệm vận hành được gần như toàn bộ hệ thống.
Trong một thế giới có quá nhiều dịch vụ Internet đang thi nhau mở rộng người dùng lên đến hàng triệu thì WhatsApp cho thấy họ vẫn đi trước, ít nhất là một phần.
WhatsApp thường không nói quá nhiều về công việc kỹ thuật hoặc bất kỳ phần nào liên quan đến vận hành vì họ cho rằng không cần thiết. Thế nhưng, trong sự kiện vừa diễn ra trong thời gian gần đây tại San Jose, bang California, Mỹ, Jamshid Mahdavi, kỹ sư phần mềm của WhatsApp đã lên sân khấu để thảo luận về các phương pháp không phổ biến mà công ty đang sử dụng.
Một trong các bí mật đó là công ty xây dựng nền tảng dịch vụ của mình dựa trên ngôn ngữ lập trình Erlang. Mặc dù đây là ngôn ngữ lập trình không quá phổ biến trong đại dương mã lập trình nhưng Erlang đặc biệt thích hợp trong việc kết nối giao tiếp với số đông người dùng. Đặc biệt, các kỹ sư có thể bổ sung mã mới ngay cả khi đang bay. Nhưng Mahdavi cho biết thủ thuật không quan trọng bằng thái độ đối với công nghệ.
Mahdavi gia nhập WhatsApp từ 2 năm về trước ngay khi họ chỉ vừa khởi nghiệp nhưng lại có cách tiếp cận kỹ thuật không giống bất cứ công ty nào – một phần bởi vì họ dùng Erlang và hệ điều hành máy chủ FreeBSD (cũng là hệ điều hành không mấy phổ biến) – nhưng cũng bởi vì công ty có triết lý giữ cho việc vận hành ở mức tối giản.
“Nó giống như việc đi con đường hoàn toàn khác với các công ty đang xây dựng cơ sở hạ tầng hoành tráng. Họ đã khai sáng cho tôi với phương pháp đơn giản hóa cách giải quyết các bài toán”, Mahdavi cho biết.
Mã song song
Sử dụng Erlang, WhatsApp góp phần thúc đẩy ngôn ngữ lập trình song song, vốn được thiết kế để xử lý nhiều tác vụ đồng thời. Các dịch vụ internet càng có nhiều người dùng thì càng có nhiều tác vụ cần xử lý song song nên những ngôn ngữ như vậy sẽ dần trở nên hấp dẫn hơn.
Không chỉ WhatsApp, Facebook cũng đang dùng ngôn ngữ lập trình song song gọi là Haskell cho hệ thống chống spam mới của họ, là một hệ thống nhận diện các thông điệp độc hại (tin nhắn rác, link kèm virus) và các tin nhắn không mong muốn.
Ban đầu, Haskell là ngôn ngữ lập trình dùng cho nghiên cứu vào cuối thập niên 80, nhưng cho đến hiện nay thì nó vẫn chưa được phổ biến. Nhưng nó giúp ích được cho Facebook rất nhiều trong cuộc chiến chống spam vì nó có thể xử lý nhanh các tác vụ song song, vì thế rất thuận tiện cho lập trình viên xử lý nhanh chóng các tác vụ khẩn cấp khi cần thiết. Trong khi đó, Google và Mozilla, tổ chức tạo trình duyệt Firefox, thì cũng đang hái quả ngọt khi dùng ngôn ngữ lập trình mới có tên gọi Go và Rust.
Giống như Haskell, Erlang cũng được ra đời từ thập niên 80 của thế kỷ trước. Các kỹ sư của Ericsson, tập đoàn viễn thông đa quốc gia đến từ Thụy Điển chuyên cung cấp giải pháp phần cứng và phần mềm cho các công ty viễn thông trên thế giới, đã phát triển một ngôn ngữ dùng cho mạng điện thoại tốc độ cao.
“Thay vì tạo ra một ngôn ngữ rồi tìm cách sử dụng thì họ làm ngược lại, họ tạo ra một ngôn ngữ mới để giải quyết một vấn đề cụ thể”, Francesco Cesarini, nhà nghiên cứu Erlang tại Anh, cho biết. “Vấn đề đó là mở rộng mạng lưới và tăng độ tin cậy. Mạng điện thoại thời điểm đó chỉ phải giải quyết những thuộc tính như vậy”.
Erlang vẫn nằm ngoài rìa thế giới mã lập trình hiện đại, nhưng với WhatsApp và các công ty internet khác, bao gồm cả WeChat và Whisper, họ đã tìm thấy ngôi cho cho các ứng dụng hoạt động không giống mạng điện thoại phổ thông. Về bản chất, WhatsApp là sự thay thế cho các dịch vụ nhắn tin truyền thống của các nhà mạng. Nó cần thuộc tính “độ phủ và độ tin cậy” rất nhiều.
Còn gì nữa, Erlang cho phép lập trình viên làm việc tốc độ cao, một phần quan trọng của việc phát triển phần mềm thời hiện đại. Nó cung cấp khả năng tạo dòng mã mới cho ứng dụng ngay cả khi ứng dụng đang hoạt động bình thường. Trong thời đại thay đổi liên tục như hiện nay, khả năng này hữu dụng hơn bao giờ hết.
Tiếp tục đơn giản, thông minh
Erlang cũng có nhược điểm. Đầu tiên phải kể đến chính là chỉ có số ít lập trình viên biết sử dụng Erlang và nó không thật sự tương thích với các đoạn mã đã được các công ty internet sử dụng từ trước.
Facebook đã xây dựng ứng dụng trò chuyện của mình dựa trên Erlang nhưng họ phải thay đổi để nó tương thích tốt hơn với cơ sở hạ tầng sẵn có. “Erlang giống như một hòn đảo nhỏ. Rất khó tạo đủ thuyền để kết nối mọi thứ vận hành suôn sẻ”, Phó chủ tịch phụ trách kỹ thuật của Facebook, Jay Parikh, cho biết.
“Bài học đầu tiên chỉ cần tập trung làm những gì cần làm, đừng để phân tâm bởi những hoạt động khác, những kỹ thuật khác, thậm chí cả những hoạt động trong công ty như họp hành”.
Dĩ nhiên, WhatsApp không cần phải tích hợp vào cơ sở hạ tầng sẵn có theo cách như vậy. Và Mahdavi cũng tin rằng việc khan hiếm lập trình viên biết Erlang cũng không phải là vấn đề. “Chiến lược tuyển dụng của chúng tôi là tìm kiếm những kỹ sư giỏi và sáng tạo nhất. Chúng tôi không tuyển họ chỉ vì họ biết Erlang. Chúng tôi hy vọng kỹ sư gia nhập và dành một tuần đầu tiên để tìm hiểu ngôn ngữ mới tương tự với ngôn ngữ họ đã biết và học cách sử dụng chúng. Nếu bạn tuyển một người thông minh, họ sẽ có khả năng làm chuyện đó”, Mahdavi cho biết.
Công ty thành công vì tuyển dụng được các kỹ sư có khả năng thích nghi, theo nhiều cách khác nhau. Đáp lại yêu cầu cho biết bí mật của công ty, câu trả lời của Mahdavi dường như quá đơn giản nhưng lại khó nắm bắt. Nhưng có 1 điểm cần lưu ý. “Bài học đầu tiên chỉ cần tập trung làm những gì cần làm, đừng để phân tâm bởi những hoạt động khác, những kỹ thuật khác, thậm chí cả những hoạt động trong công ty như họp hành”.
Tại WhatsApp, nhân viên hầu như không bao giờ họp. Công ty chỉ có vài chục người thôi nên không cần thiết. Nhưng đó cũng là điểm đặc biệt của họ.