30/10/2019, 17:03

Cách thức Node.js xử lý nhiều giao diện người dùng của Netflix

Việc thay đổi giao diện người dùng sang Node.js, Netflix có thể hợp lý hoá sự phát triển, cắt giảm thời gian xây dựng, và tăng sự tuỳ biến phần UI với mỗi người dùng. “Node thực sự là sự lựa chọn hấp dẫn đối với chúng tôi, bời vì nó phù hợp tốt với các kỹ năng của các kỹ sư ...

Việc thay đổi giao diện người dùng sang Node.js, Netflix có thể hợp lý hoá sự phát triển, cắt giảm thời gian xây dựng, và tăng sự tuỳ biến phần UI với mỗi người dùng.

“Node thực sự là sự lựa chọn hấp dẫn đối với chúng tôi, bời vì nó phù hợp tốt với các kỹ năng của các kỹ sư UI (giao diện người dùng), trích lời Kim Trott, giám đốc mảng Phát triển giao diện người dùng ở Netflix. Trott sẽ có một bài phát biểu nói về việc sử dụng Node tại Netflix trong hội thảo NodeSummit Interactive diễn ra vào tuần tới ở Portland, Oregon.

Theo truyền thống, Netflix sử dụng công nghệ Java cho doanh nghiệp của mình, nhưng “khi chúng tôi dịch chuyển từ các Data center truyền thống sang hệ thống Cloud, chúng tôi cũng đã chuyển sang kiến trúc dựa trên dịch vụ nhiều hơn” Trott nói. Công ty đang trong quá trình phá bỏ những gì từng là một dịch vụ Java nguyên khối sang một tập hợp những dịch vụ nhỏ hơn. Java vẫn đảm nhận vai trò chính trong xử lý backend của Netflix, nhưng tất cả mọi thứ phía người dùng nhìn thấy sẽ đến từ Node.js

Node.js là ngôn ngữ JavaScript phía server-side, cho phép các nhà phát triển lập trình cho cả Front-end và Back-end cho ứng dụng Web của mình. Node.js được xây dựng theo kiến trúc hướng sự kiện, nó là một nền tảng đặc biệt thích hợp để mở rộng với microservices.

Để xây dựng web site chuyên nghiệp trên Node.js tham khảo khoá học Node.js xây dựng web site tốc độ cao và Arrowjs.io Core – CMS

Công việc thiết kế giao diện người dùng (UI design) ở Netflix yêu cầu rất khắt khe. Các dịch vụ của công ty phát hành cho rất nhiều loại thiết bị khác nhau, từ Web đến Mobile, cho đến cả những máy Console chuyên dụng. Các kỹ sư front-end “đã phải viết rất nhiều mã Java để xây dựng lên website, nhưng đồng thời họ cũng phải viết rất nhiều mã JavaScript phía client-side,” Trott nói. Với Node.js, họ có thể làm tất cả các công việc của mình trong JavaScript. Đội ngũ UI của Netflix sử dụng nền tảng Node cho dịch vụ Video.

Node cũng cải thiện đáng kể thời gian xây dựng. Ứng dụng Java có thể mất tới 40 phút để khởi động. “Đội phát triển đã không thể tiến nhanh hơn như họ muốn”.

Học lập trình web online bằng công nghệ NodejsKiến trúc Node.js được sử dụng tại Netflix

Tương lai của Netflix và Node

Trong tương lai, Netflix cũng sẽ sử dụng Node cho lớp truy cập dữ liệu (data access layer) của mình, ngoài việc xây dựng giao diện người dùng như hiện nay. Phần Netflix client viết script với một API thay vì phải viết cho hàng trăm dịch vụ. Khi triển khai các script trong lớp dịch vụ API, client rút ra từ một tập hợp các lớp lưu trữ, chẳng hạn như thông tin thuê bao, dữ liệu metadata về phim ảnh, thông tin phụ đề, và nhiều hơn thế nữa. Hiện tại, các API script được triển khai trực tiếp lên một dịch vụ API riêng lẻ, làm hạn chế khả năng mở rộng quy mô hoặc cô lập các vấn đề phát sinh.

Như vậy, Netflix hiện đang phát triển một cách để viết các script như là các ứng dụng Node riêng biệt. Nếu một script thực thi không tốt, thì nó cũng chỉ cản trở hoặc giết chết dịch vụ của riêng mình chứ không ảnh hưởng đến toàn bộ hệ thống. Các ứng dụng Node này sẽ được chạy trên các Docker container bên cạnh Amazon Web Service’s Elastic Container Service (ECS), nhà cung cấp dịch vụ hạ tầng được Netflix lựa chọn. Điều này cho phép các container có thể chạy local và debug local, chứ không phải là debug với API server nguyên khối tại local.

Học lập trình web trực tuyến bằng công nghệ NodejsKiến trúc Javascript Client & Server Side tại Netflix với Node.JS

Node đã chứng tỏ được sự tiện dụng, và công ty chúng tôi đang mở rộng việc sử dụng nó trong các lớp khác của hệ thống, Trott nói.

Netflix đang nâng việc sử dụng Node của họ lên một bước xa hơn với Codex, là một tập hợp các khả năng để cung cấp các tính năng cụ thể cho khách hàng xác định, tuỳ thuộc vào thiết lập của khách hàng với những thiết bị đang sử dụng.

Ví dụ, nếu một khách hàng của Netflix sở hữu một Xbox, trong Codex, các nhà phát triển có thể tuỳ chỉnh một gói JavaScript sẽ nhắm mục tiêu đến thuê bao Netflix đó và thiết lập giải trí cụ thể của họ. Codex sẽ được quan tâm đặc biệt bởi những công ty làm việc với các dịch vụ Web đa nền tảng. Nó cũng có thể hỗ trợ trong việc kiểm thử A/B testing.

Netfix đang có kế hoạch phát hành Codex vào năm tới dưới dạng một dự án mã nguồn mở, Trott nói.

Techtalk via Techmaster

0