Netflix – 1 trong 10 doanh nghiệp tiêu biểu sử dụng NodeJS hiệu quả

NodeJS đã có 1 năm đột phá khi npm sở hữu 4 triệu người sử dụng và 1 tỷ lượt tải 1 tuần, cùng lúc đó thì các doanh nghiệp lớn cũng đã bắt đầu xem ngôn ngữ này là 1 production framework chính.

Một ví dụ mới nhất về việc NodeJS đang thống trị thế giới là việc Giám đốc Software Technologies của Space Agency đã thông báo trên Twitter rằng: NASA đang sử dụng NodeJS “để xây dựng bộ máy vận hành và phát triển hỗ trợ các hệ thống hiện tại và tương lai”

Dưới đây là bài phân tích về cách Netflix – 1 dịch vụ xem video trực tuyến nổi tiếng của Mỹ, tương tự như NASA khi sử dụng thành công ngôn ngữ thế hệ mới NodeJS.

Nhờ có Node container layer, Netflix đã mở rộng quy mô theo chiều ngang

Kim Trott – Giám đốc của UI Platform Engineering làm việc ở Netflix được 9 năm. Thời điểm cô đến chỉ trước khi công ty ra mắt dịch vụ streaming đầu tiên – thời kì mà bạn chỉ có thể xem Netflix với Windows Media Player và full catalog chỉ gồm 50 đề mục.

“Tôi đã chứng kiến sự biến đổi của Netflix từ DVD và streaming đến producer content hiện tại”

Yunong Xiao – Platform Architect của Netflix – đến công ty từ 2 năm trước, nổi tiếng với vai trò duy trì module restify của NodeJS. Vai trò của anh ở Netflix là đảm bảo Node chạy tốt trong scale. Trong khi đó, Kim quản lý nhóm nền tảng UI trong phần kỹ thuật UI của tổ chức. Vai trò của Kim Trott và Yunong Xiao là giúp tất cả team xây dựng ứng dụng Netflix với nhiều nhiệm vụ đa dạng như: xây dựng thư viện có thể chia sẻ được giữa các team để tiếp cận data hoặc client side logging, xây dựng các công cụ để giúp các team đang tập trung vào UI có thể chạy các ứng dụng Node trong production dễ dàng hơn.

Kim cập nhật thông tin ngắn gọn về cách Netflix đang tiến hành containerization các edge service.

Khi bất kì thiết bị hoặc khách hàng cố gắng tiếp cận Netflix, họ phải sử dụng các edge services – là 1 bộ các endpoint scripts, 1 hệ thống dựa trên JVM nguyên khối, cho phép biến đổi và tiếp cận dữ liệu. Tuy đang tiến hành khá tốt nhưng vì nó là monolith nên Netflix đã gặp vài mối quan ngại về mở rộng theo chiều dọc. Đây là cơ hội tốt để tận dụng tối đa Node và Docker để có thể mở rộng quy mô ra theo chiều ngang tất cả các scripts tiếp cận dữ liệu này.

“… chúng tôi đã tạo nên nhiều cải tiến trong dự án và thực sự chạy 1 test hệ thống toàn bộ bằng cách đặt traffic production thực sự qua Node container layer mới để chứng minh toàn bộ stack và loại bỏ mọi vấn đề xung quanh scaling hoặc bộ nhớ. Thật tuyệt vời”

NodeJS đã ảnh hưởng đến năng suất làm việc của dev tại Netflix như thế nào?

Năng suất của dev đến từ việc phá bỏ monolith thành những phần nhỏ hơn, để có thể quản lý được,từ khả năng chạy trên các máy local và thực hiện containerization.

“Chúng tôi đảm bảo rằng những gì bạn đang chạy nội bộ phản ánh gần nhất những gì bạn đang chạy trong production và nó thực sự mang đến hiệu quả” – Kim Trott

“Nhờ có cách vận hành của Node, chúng tôi có thể tấn công các debuggers và thiết lập breakpoint thông qua code. Nếu bạn muốn debug các scripts thú vị này trong quá khứ, bạn sẽ phải thay đổi vài dòng code tải nó lên egde layer, chạy nó, xem nó phá bỏ như thế nào, thực hiện vài thay đổi nữa, tải lên lại và cứ như thế…”

“Node tiết kiệm được 10 phút để test, nhưng bản “di chúc” thực sự cho dự án này chính là: tất cả các kỹ sư của Netflix đang làm việc với khách hàng đều hỏi: khi nào chúng ta bắt đầu sử dụng nó thay vì stack hiện tại?” – Yunong

Tương lai của Node tại Netflix

Trong vài tháng tới, đội kĩ sư sẽ xây dựng xong stack đã được đề cập và bắt đầu làm việc với tooling cũng như các vấn đề về hiệu suất. Tìm kiếm các công cụ tốt hơn để debug những thứ cũ thực sự là điều mà đội kĩ sư rất quan tâm.

Team cũng lên kế hoạch làm việc với các nhóm hiện hành, hỗ trợ ngược lại cộng đồng để họ có thể xây dựng 1 công cụ tốt hơn.

“Một trong những lý do tại sao Node quá nổi tiếng là vì nó thực sự là bộ các công cụ mạnh mẽ, không chỉ để debug mà còn 1 thứ gì đó mà chúng ta có thể bổ sung thêm nữa”

Nguồn: ITZone via IDE Academy via RisingStack

Chia sẻ bài viết ngay