10 Điều Bạn Không Nên Làm Khi Chạy Ứng Dụng Nodejs Thực Tế

Cập nhật ngày: 23/06/2021 - Đã có 974 lượt xem bài viết này!
10 Điều Bạn Không Nên Làm Khi Chạy Ứng Dụng Nodejs Thực Tế
Ở Hashnode, chúng tôi sử dụng mạnh Nodejs. Cá nhân tôi là một fan hâm mộ và đã học được nhiều điều khi chạy Hashnode. Qua tiếp xúc với nhiều lập trình viên, tôi nhận ra rằng nhiều người chưa tận dụng Nodejs đến mức tối đa và thực hiện một số điều theo cách không chuẩn. Vì vậy, bài này sẽ nói về những điều không nên làm khi chạy một ứng dụng Nodejs trong thực tế (in production applications). Bắt đầu nào!

10 Điều Bạn Không Nên Làm Khi Chạy Ứng Dụng Nodejs Thực Tế

1. Không sử dụng Nodejs Cluster

Nhược điểm của Nodejs là bộ nhớ bị giới hạn chỉ 1.5GB nên nó không thể tận dụng nhiều lõi CBU, nhưng nó có thể giúp chúng ta tạo nhiều tiến trình con sử dụng IPC giao tiếp với tiến trình cha. Sau đó, các tiến trình con này cùng với các yêu cầu tác động gửi đến 1 tiến trình khác nữa tạm gọi là tiến trình Boss và phân phối theo kiểu luân chuyển xoay vòng (round-robin).
Kinh nghiệm cho thấy nên áp dụng Clustering vào các ứng dụng của Nodejs khi chạy trong thực tế giúp tiết kiệm thời gian dừng, tăng hiệu năng của ứng dụng rất nhiều khi triển khai xuống Zero Downtime.

2. Không Xử lý các tác vụ nặng trên Web Server

Giả sử bạn muốn gửi nhiều email cho người dùng, Nodejs có thể xử lý trong server nhưng kết quả thì không như mình mong muốn. Muốn nó xử lý tốt nhất là tách những tác vụ thành những dịch vụ siêu nhỏ (microservices).
Hoặc ví dụ khi đăng một mục nào đó trên Hashnode có gắn từ khóa, sau đó đưa bài viết vào news feed, khi lưu lượng web tăng lên, sẽ xảy ra tắc nghẽn và bị đứng vài giây. Vì thế, muốn làm việc đó chuyển toàn bộ module xử lý tác vụ đó sang máy khác và gọi lại qua tin nhắn.

3. Không sử dụng công cụ quản lý tiến trình

Công cụ quản lý tiến trình cũng có nhiều ưu điểm trong node, nhưng để quản lý mạnh và tiện lợi hơn các Developer thường hay sử dụng công cụ PM2, ứng dụng này chạy Clustering rất là mượt.

4. Không sử dụng Server Proxy

Nếu chạy ứng dụng và cung cấp tài nguyên tĩnh trên cổng 80 dễ gây ra những lỗi nguy hiểm. Để tránh tình trạng đó thì nên chạy trên cổng như 3000 và sử dụng Nginx hoặc tương tự HAProxy việc này giúp mở rộng server và tránh trực tiếp các yêu cầu.

5. Thiếu theo dõi giám sát ứng dụng

Thường xuyên sử dụng các công cụ giám sát, để khi xảy các sự cố lỗi ngay từ lúc ban đầu, chúng ta khắc phục sẽ dễ dàng hơn. Ngoại trừ kiểm tra Logs không phát hiện ra gì, chứ trong quá trình xây dựng ứng dụng sẽ có nhiều thứ tệ hại xảy ra, mà khi chúng ta không kiểm soát được sẽ mất thời gian tìm lỗi và khắc phục nó.

6. Không chịu xóa câu lệnh Console Log

Ngoại trừ các lệnh Console Log không được thể hiện ra, thì khi xây dựng ứng dụng các bạn hay dùng Console.log để kiểm tra, nhưng khi làm xong thì nên xoad đi, vì các lệnh này sé làm tốn CPU và tài nguyên.

7. Duy trì trạng thái Global trên Web Server

Có một số bạn hay lưu giá trị session ids, socket connections trong bộ nhớ, nhưng tuyệt đối không nên làm theo kiểu nay, vì khi sử dụng người dùng sẽ bị Log out ngay mỗi lần khởi động lại Server và gây ra nhiều khó khăn khi mở rộng ứng dụng hoặc tăng thêm Servers.

8. Không dùng SSL

Phải thường xuyên theo dõi và kiểm tra các điểm yếu mới nhất của SSL để khi gặp lỗi phát sinh thì chúng ta luôn có cách xử lý nhanh nhất.

9. Thiếu các biện pháp bảo mật

Chỉ sử dụng các bản bảo mật còn bảo trì và có thể nâng cấp. Bảo mật là vấn đề luôn luôn đặt lên hàng đầu.

10. Không sử dụng VPN

BTV.Trần Thị Thùy Trang
Phòng Truyền Thông IMIC Technology Việt Nam
Hotline: 091 68 78 224
Email: trangttt@imic.edu.vn

Xem khóa đào tạo nhân sự theo danh mục!

Xem các khóa đào tạo nhân sự