Thứ Bảy, 19 tháng 10, 2013

Vì sao nhiều ứng dụng dành cho di động ngày nay bắt người dùng phải đăng ký chờ đến lượt sử dụng?

Screen Shot 2013-10-12 at 11.09.34 AM.

Chắc hẳn các bạn ít nhiều còn nhớ đến ứng dụng Mailbox, một ứng dụng email client khá mạnh mẽ trên các thiết bị iOS mà mình đã từng giới thiệu cách đây vài tháng? Lúc đó để có thể sử dụng Mailbox, chúng ta cần phải đăng ký trước và xếp hàng chờ đến lượt mình mới có thể sử dụng - điều này thực sự khiến cho người dùng cảm thấy khá phiền toái và đôi khi bực mình bởi ai cũng muốn tải app về và dùng ngay chứ không phải chờ đợi hàng ngàn người.

Tuy nhiên điều kỳ lạ là mặc dù khiến cho khách hàng không vui vẻ gì, nhưng rất nhiều app hiện nay cũng đã bắt đầu áp dụng phương thức của Mailbox - tức là bắt chúng ta đăng ký trước và chờ đến lượt mới dùng được. Vậy câu hỏi đặt ra ở đây là: Liệu đây có phải là một chiêu thức nhằm quảng bá cho app của mình, hay còn một lý do nào khác mà các nhà phát triển buộc phải làm vậy?

Sự quá tải của hệ thống Sever

mailbox_app.

Nhiều người khi nhìn vào tình huống trên sẽ nghĩ ngay đến câu hỏi: tại sao các nhà phát triển không chi thêm tiền để mua thêm sever hay thuê thêm nhiều nhân viên để phát triển cho nhanh, thế nhưng mọi chuyện không hề đơn giản như chúng ta nghĩ. Người dùng cần phải hiểu rằng đa phần các app hiện nay đều sẽ phải trải qua nhiều quá trình kiểm thử, phát hiện và sửa chữa lỗi trước khi chính thức được phát hành, tuy nhiên dù cho mọi thứ diễn ra suôn sẻ, các developer cũng khó có thể cho người sử dụng tải về và dùng ngay bởi sự quá tải sẽ diễn ra ở các sever.

Cụ thể hơn, CEO của Mailbox, ông Gentry Underwood nhấn mạnh rằng không thể nào có thể đoán trước được số lượng và hoạt động của người dùng - những điều có thể sẽ thổi tung hệ thống sever của bạn ngay từ ngày đầu tiên phát hành ứng dụng. Rõ hơn nữa, Gentry đưa ra ví dụ: vào ngày đầu tung ra, Mailbox sẽ phải xử lý và di chuyển hàng ngàn, hàng chục ngàn đến hàng triệu, chục triệu email cùng một lúc, giả sử một người có tổng cộng 40.000 email thì Mailbox sẽ phải chuyển cả 40.000 email đó cùng một lần, và nếu như Mailbox phải đảm nhiệm hàng ngàn trường hợp như thế thì quả thật sẽ quá tải.

Vào ngày đầu tung ra, Mailbox sẽ phải xử lý và di chuyển hàng ngàn, hàng chục ngàn đến hàng triệu, chục triệu email cùng một lúc

"Chúng tôi không có kế hoạch như vậy", Underwood cho biết, "250 người kiểm tra và dùng thử app (beta testers) là một tập hợp dữ liệu vừa đủ, nhưng khi bạn tăng số lượng này lên thì bạn sẽ nhận thấy những trường hợp gần chạm mốc quá tải". Thậm chí cho dù bạn có đến hàng ngàn sever đi chăng nữa, những hoạt động của người dùng cũng có thể làm tê liệt hệ thống của bạn, "Đó là một hệ thống phức tạp với rất nhiều thành phần di chuyển", Underwood nói.

Hiện nay, ngày càng nhiều ứng dụng và dịch vụ yêu cầu một số lượng lớn các máy tính, máy chủ và hệ thống lưu trữ dữ liệu hoạt động dựa trên hệ thống đám mây, trái với trước đây - vốn đa phần các quá trình đều được xử lý cục bộ. Ví dụ cho các bạn dễ hiểu: Ứng dụng email mặc định trên iOS thông thường sẽ lấy email từ sever của riêng nó, trong khi đó Mailbox thì khác hoàn toàn, nó phải kiểm tra email của bạn từ "đám mây", sau đó mới đẩy email đó đến hộp thư của bạn. Như vậy, từ những điều trên, có thể hiểu được những khó khăn mà Underwood cùng các cộng sự của ông gặp phải khi phát hành Mailbox: xử lý 50 triệu email (cùng với đó là push email đến đúng đối tượng, đúng thời gian) trong tuần đầu tiên ra mắt app quả thật là một điều không hề dễ dàng.

Sự khó khăn và phức tạp trong việc quản lý dữ liệu và tối ưu hệ thống

loom_waitlist_560.

"Mở rộng quy mô hoạt động, không may mắn thay, thì không hề đơn giản chỉ là việc thêm một hệ thống máy mới", ông Jan Senderek, CEO của Loom - ứng dụng cho phép upload toàn bộ hình ảnh của người dùng lên "mây", nén chúng lại, và cho phép người sử dụng có thể xem lại hình trên các thiết bị di động - thừa nhận, "Với chúng tôi, chúng tôi có nhiều người dùng rất độc đáo bởi họ tạo rất nhiều tập tin riêng lẻ - khiến cho chúng tôi phải đối mặt/xử lý hàng tấn các yêu cầu đối với những tập tin riêng lẻ này trong cơ sở dữ liệu". " Điều này có thể sẽ tạo nên sự tắt nghẽn trong hệ thống mạng/sever nhiều hơn so với việc nhiều người dùng tải về cùng một nội dung trong một cơ sở dữ liệu (ví dụ như YouTube). Tóm lại, chỉnh sửa một dữ liệu thì phức tạp hơn so với việc truyền tải nội dung".

Mặc dù đã thực hiện chính sách cho khách hàng chờ đợi để kịp thời xử lý, thế nhưng ngay những ngày đầu tiên tung ra, Mailbox cũng phải chứng kiến nhiều lần sever bị lỗi hay quá tải. "Một công ty như Google thì nhiều khả năng sẽ giải quyết các vấn đề trên một cách đơn giản hơn bởi họ có nhiều kinh nghiệm trong việc phát hành các sản phẩm đến hàng triệu người dùng cùng một lúc mà không bắt ai phải chờ", Senderek cho biết.

"Nếu bạn xây dựng một công ty chuyên về việc cung cấp dịch vụ lưu trữ đám mây và bạn không có bất kỳ một kế hoạch dự phòng nào cả (trong trường hợp công ty bạn đang thành công lớn), thì không lâu sau đó bạn sẽ phải đối mặt với nhiều vấn đề", Jonathan Benassaya, CEO của Stream Nation - dịch vụ lưu trữ và truyền tải video 1080p đến người dùng. Lời khẳng định của Benassaya được rút ra từ kinh nghiệm của bản thân trong quá trình ông làm đồng sáng lập dịch vụ truyền tải âm nhạc Deezer - có nhiệm vụ phải duy trì ổn định hàng triệu kết nối từ người dùng.

"Bạn phải thực sự hiểu điều gì đang diễn ra trên nền tảng của bạn - bạn phải đưa những quá trình phụ thuộc nhiều vào các CPU đến những chiếc máy không cần sử dụng CPU, nâng cấp mạng lưới của bạn để đảm bảo cho việc truyền tải dữ liệu được diễn ra một cách tối ưu, tăng dung lượng RAM, hay thậm chí có thể dịch chuyển các máy lại gần nhau để tạo nên một liên kết vững bền hơn", Benassaya nói, "Đó là một quá trình chỉnh sửa và tinh chỉnh diễn ra một cách liên tục và không có hồi kết", vị CEO này cho biết đã bỏ ra vài tháng làm việc để chỉnh lại hệ thống sever của công ty nhằm giúp chúng trở thành "những cỗ máy xử lý ảnh", có thể xử lý 100 bức ảnh mỗi giây.

"Làm việc với rất nhiều thành phần/ dữ liệu liên tục luân chuyển và đối phó với chúng trong hầu hết thời gian là một trong những thử thách khó khăn nhất trong công nghệ"

Benassaya nói: "Tôi nghĩ rằng Mailbox không thể nào làm tốt hơn nữa khi mà họ đang dựa dẫm quá nhiều vào các hàm API bên ngoài (điển hình là việc Mailbox lúc mới ra mắt chỉ hỗ trợ hộp thư Gmail và phụ thuộc hẳn vào Gmail), và họ phải đối diện với bài toán mang tên giao thức email - vốn có tốc độ rất chậm". vị CEO này tiếp tục, "Làm việc với rất nhiều phần/ dữ liệu liên tục luân chuyển và đối phó với chúng trong hầu hết thời gian là một trong những thử thách khó khăn nhất trong công nghệ". Một thử thách khác nữa đó là phải xử lý các yêu cầu hỗ trợ từ phía khách hàng - điều mà theo Senderek và Underwood cho rằng là yếu tố quan trọng nhất trong quá trình phát hành một ứng dụng mới. "Chúng tôi và những công ty tương tự khác hoàn toàn có thể mở rộng và tăng cường việc xử lý các công việc liên quan đến kỹ thuật, tuy nhiên việc nâng cao trải nghiệm người dùng lại là một khái niệm hoàn toàn khác". Senderek nói, "Đó (nâng cao trải nghiệm người dùng) là một thứ gì đó mà rất nhiều công ty/dự án mới khởi nghiệp thường bỏ qua".

Kết

Rõ ràng sự cầu toàn của các nhà phát triển, cộng với khả năng có phần giới hạn của họ sẽ khiến cho tình trạng càng nhiều app bắt người dùng chờ đợi. Sự bực bội của khách hàng là hoàn toàn có thể hiểu được, bởi họ đã quen với việc tải về một ứng dụng và được dùng ngay tức khắc. Tuy nhiên Underwood cho rằng với các nhà phát triển non trẻ, hay cụ thể hơn là với đa phần dịch vụ hay app dành cho thiết bị di động ngày nay, mọi giai đoạn từ phát triển cho đến việc phổ biến rộng rãi đã trở nên phức tạp và khó khăn hơn.

Mặc dù mô hình hoạt động trên gây nhiều bất tiện cho người sử dụng, thế nhưng không phải vì thế mà các ứng dụng trên không thành công. Chúng ta hãy nhìn vào Mailbox, ứng dụng lịch Tempo hay gần đây nhất là app email Pingapp là những ví dụ điển hình, người dùng vẫn chấp nhận chờ đợi để trải nghiệm bởi đa phần đều mong đợi về sự hứa hẹn của nhà phát triển, và theo cá nhân mình thấy, những app loại như trên thường có chất lượng rất tốt, giao diện đẹp và hoạt động ổn định.