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: 26/04/2024 - Đã 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ế

Danh mục:

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

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

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

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

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

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

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

8. Không dùng SSL

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

10. Không sử dụng VPN

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

 

Bạn đang muốn tìm kiếm 1 công việc với mức thu nhập cao.
✅ Hoặc là bạn đang muốn chuyển đổi công việc mà chưa biết theo học ngành nghề gì cho tốt.
✅ Giới thiệu với bạn Chương trình đào tạo nhân sự dài hạn trong 12 tháng với những điều đặc biệt mà chỉ có tại IMIC và đây cũng chính là sự lựa chọn phù hợp nhất dành cho bạn:
👉 Thứ nhất: Học viên được đào tạo bài bản kỹ năng, kiến thức chuyên môn lý thuyết, thực hành, thực chiến nhiều dự án và chia sẻ những kinh nghiệm thực tế từ Chuyên gia có nhiều năm kinh nghiệm dự án cũng như tâm huyết truyền nghề.
👉 Thứ hai: Được ký hợp đồng cam kết chất lượng đào tạo cũng như mức lương sau tốt nghiệp và đi làm tại các đối tác tuyển dụng của IMIC. Trả lại học phí nếu không đúng những gì đã ký kết.
👉 Thứ ba: Cam kết hỗ trợ giới thiệu công việc sang đối tác tuyển dụng trong vòng 10 năm liên tục.
👉 Thứ tư: Được hỗ trợ tài chính với mức lãi suất 0 đồng qua ngân hàng VIB Bank.
👉  Có 4 Chương trình đào tạo nhân sự dài hạn dành cho bạn lựa chọn theo học. Gồm có:
1)  Data Scientist full-stack
2)  Embedded System & IoT development full-stack
3)  Game development full-stack
4)  Web development full-stack 
✅ Cảm ơn bạn đã dành thời gian lắng nghe những chia sẻ của mình. Và tuyệt vời hơn nữa nếu IMIC được góp phần vào sự thành công của bạn. 
✅ Hãy liên hệ ngay với Phòng tư vấn tuyển sinh để được hỗ trợ về thủ tục nhập học.
✅ Chúc bạn luôn có nhiều sức khỏe và thành công!


 

Tham khảo các khóa đào tạo nhân sự qua danh mục