Cách tối ưu hóa cơ sở hạ tầng sản xuất Node.js: Các phương pháp hay nhất

Lời nói đầu
Tại Forward Email, chúng tôi đã dành nhiều năm để hoàn thiện thiết lập môi trường sản xuất Node.js. Hướng dẫn toàn diện này chia sẻ những phương pháp triển khai sản xuất Node.js hiệu quả nhất đã được kiểm chứng thực tế của chúng tôi, tập trung vào tối ưu hóa hiệu suất, giám sát và những bài học kinh nghiệm chúng tôi đã tích lũy được trong việc mở rộng quy mô ứng dụng Node.js để xử lý hàng triệu giao dịch hàng ngày.
Cuộc cách mạng tối ưu hóa hiệu suất lõi đơn 573% của chúng tôi
Khi chúng tôi chuyển đổi từ bộ xử lý Intel sang AMD Ryzen, hiệu suất của các ứng dụng Node.js đã được cải thiện 573%. Đây không chỉ là một cải tiến nhỏ—mà về cơ bản đã thay đổi hiệu suất của các ứng dụng Node.js trong môi trường sản xuất thực tế và chứng minh tầm quan trọng của việc tối ưu hóa hiệu suất lõi đơn cho bất kỳ ứng dụng Node.js nào.
Tip
Đối với các phương pháp triển khai Node.js sản xuất tốt nhất, việc lựa chọn phần cứng là rất quan trọng. Chúng tôi đặc biệt chọn dịch vụ lưu trữ DataPacket vì khả năng sử dụng AMD Ryzen của họ, bởi vì hiệu suất lõi đơn rất quan trọng đối với các ứng dụng Node.js vì JavaScript được thực thi theo cơ chế đơn luồng.
Tại sao tối ưu hóa hiệu suất lõi đơn lại quan trọng đối với Node.js
Việc chuyển đổi của chúng tôi từ Intel sang AMD Ryzen đã mang lại kết quả:
- Cải thiện hiệu suất 573% trong quá trình xử lý yêu cầu (được ghi lại trong Vấn đề GitHub #1519 trên trang trạng thái của chúng tôi
- Đã loại bỏ độ trễ xử lý để phản hồi gần như ngay lập tức (đã đề cập trong Vấn đề GitHub #298)
- Tỷ lệ giá trên hiệu năng tốt hơn cho môi trường sản xuất Node.js
- Thời gian phản hồi được cải thiện trên tất cả các điểm cuối ứng dụng của chúng tôi
Hiệu suất được cải thiện đáng kể đến mức giờ đây chúng tôi coi bộ xử lý AMD Ryzen là thiết yếu cho bất kỳ triển khai sản xuất Node.js nghiêm túc nào, cho dù bạn đang chạy ứng dụng web, API, dịch vụ vi mô hay bất kỳ khối lượng công việc Node.js nào khác.
Nội dung liên quan
Để biết thêm chi tiết về các lựa chọn cơ sở hạ tầng của chúng tôi, hãy xem:
- Dịch vụ chuyển tiếp email tốt nhất - So sánh hiệu suất
- Giải pháp tự lưu trữ - Khuyến nghị về phần cứng
Thiết lập môi trường sản xuất Node.js: Công nghệ của chúng tôi
Các phương pháp triển khai Node.js production tối ưu của chúng tôi bao gồm những lựa chọn công nghệ được cân nhắc kỹ lưỡng dựa trên kinh nghiệm sản xuất lâu năm. Dưới đây là những gì chúng tôi sử dụng và lý do tại sao những lựa chọn này áp dụng cho bất kỳ ứng dụng Node.js nào:
Trình quản lý gói: pnpm để nâng cao hiệu quả sản xuất
Những gì chúng tôi sử dụng: pnpm
(phiên bản ghim)
Chúng tôi chọn pnpm thay vì npm và yarn để thiết lập môi trường sản xuất Node.js vì:
- Thời gian cài đặt nhanh hơn trong quy trình CI/CD
- Hiệu quả dung lượng ổ đĩa thông qua liên kết cứng
- Giải quyết phụ thuộc nghiêm ngặt giúp ngăn ngừa phụ thuộc ảo
- Hiệu suất tốt hơn trong triển khai sản xuất
Note
Là một phần trong các phương pháp triển khai Node.js production tốt nhất, chúng tôi ghim phiên bản chính xác của các công cụ quan trọng như pnpm để đảm bảo hoạt động nhất quán trên mọi môi trường và máy của các thành viên trong nhóm.
Chi tiết triển khai:
Khung web: Koa cho sản xuất Node.js hiện đại
Những gì chúng tôi sử dụng:
Chúng tôi đã chọn Koa thay vì Express cho cơ sở hạ tầng sản xuất Node.js của mình vì khả năng hỗ trợ async/await hiện đại và cấu trúc middleware gọn gàng hơn. Nhà sáng lập Nick Baugh của chúng tôi đã đóng góp cho cả Express và Koa, mang đến cho chúng tôi cái nhìn sâu sắc về cả hai nền tảng cho mục đích sử dụng sản xuất.
Các mẫu này áp dụng cho dù bạn đang xây dựng REST API, máy chủ GraphQL, ứng dụng web hay dịch vụ siêu nhỏ.
Ví dụ triển khai của chúng tôi:
Xử lý công việc nền: Bree cho độ tin cậy sản xuất
Những gì chúng tôi sử dụng: Bộ lập lịch bree
Chúng tôi đã tạo và duy trì Bree vì các trình lập lịch tác vụ hiện tại không đáp ứng được nhu cầu hỗ trợ luồng công việc và các tính năng JavaScript hiện đại trong môi trường Node.js sản xuất. Điều này áp dụng cho bất kỳ ứng dụng Node.js nào cần xử lý nền, tác vụ theo lịch trình hoặc luồng công việc.
Ví dụ triển khai của chúng tôi:
- Thiết lập máy chủ Bree
- Tất cả các định nghĩa công việc của chúng tôi
- Công việc kiểm tra sức khỏe PM2
- Thực hiện công việc dọn dẹp
Xử lý lỗi: @hapi/boom để đảm bảo độ tin cậy trong sản xuất
Những gì chúng tôi sử dụng: @hapi/boom
Chúng tôi sử dụng @hapi/boom để xử lý lỗi có cấu trúc trong suốt các ứng dụng Node.js production. Mẫu này hoạt động với bất kỳ ứng dụng Node.js nào cần xử lý lỗi nhất quán.
Ví dụ triển khai của chúng tôi:
Cách giám sát các ứng dụng Node.js trong môi trường sản xuất
Phương pháp giám sát các ứng dụng Node.js trong môi trường sản xuất của chúng tôi đã phát triển qua nhiều năm vận hành ứng dụng ở quy mô lớn. Chúng tôi triển khai giám sát ở nhiều lớp để đảm bảo độ tin cậy và hiệu suất cho mọi loại ứng dụng Node.js.
Giám sát sản xuất Node.js cấp hệ thống
Triển khai cốt lõi của chúng tôi: helpers/monitor-server.js
Những gì chúng tôi sử dụng: node-os-utils
Ngưỡng giám sát sản xuất của chúng tôi (từ mã sản xuất thực tế của chúng tôi):
- Giới hạn kích thước heap 2GB với cảnh báo tự động
- Ngưỡng cảnh báo sử dụng bộ nhớ 25%
- Ngưỡng cảnh báo sử dụng CPU 80%
- Ngưỡng cảnh báo sử dụng đĩa 75%
Warning
Các ngưỡng này áp dụng cho cấu hình phần cứng cụ thể của chúng tôi. Khi triển khai giám sát môi trường sản xuất Node.js, hãy xem lại triển khai monitor-server.js của chúng tôi để hiểu chính xác logic và điều chỉnh các giá trị cho phù hợp với thiết lập của bạn.
Giám sát cấp ứng dụng cho Node.js Production
Phân loại lỗi của chúng tôi: helpers/is-code-bug.js
Trợ lý này phân biệt giữa:
- Lỗi mã thực tế cần được xử lý ngay lập tức
- Lỗi người dùng là hành vi dự kiến
- Lỗi dịch vụ bên ngoài mà chúng tôi không thể kiểm soát
Mẫu này áp dụng cho mọi ứng dụng Node.js - ứng dụng web, API, dịch vụ siêu nhỏ hoặc dịch vụ nền.
Triển khai ghi nhật ký của chúng tôi: helpers/logger.js
Chúng tôi triển khai chức năng biên tập trường toàn diện để bảo vệ thông tin nhạy cảm trong khi vẫn duy trì khả năng gỡ lỗi hữu ích trong môi trường sản xuất Node.js của mình.
Giám sát ứng dụng cụ thể
Triển khai máy chủ của chúng tôi:
Giám sát hàng đợi: Chúng tôi triển khai giới hạn hàng đợi 5GB và thời gian chờ 180 giây cho việc xử lý yêu cầu để ngăn ngừa tình trạng cạn kiệt tài nguyên. Các mô hình này áp dụng cho bất kỳ ứng dụng Node.js nào có hàng đợi hoặc xử lý nền.
Giám sát sản xuất Node.js với Kiểm tra tình trạng PM2
Chúng tôi đã tinh chỉnh thiết lập môi trường sản xuất Node.js với PM2 qua nhiều năm kinh nghiệm sản xuất. Kiểm tra tình trạng PM2 của chúng tôi rất cần thiết để duy trì độ tin cậy trong bất kỳ ứng dụng Node.js nào.
Hệ thống kiểm tra sức khỏe PM2 của chúng tôi
Triển khai cốt lõi của chúng tôi: jobs/check-pm2.js
Giám sát sản xuất Node.js của chúng tôi với các kiểm tra tình trạng PM2 bao gồm:
- Chạy mỗi 20 phút thông qua lập lịch cron
- Cần thời gian hoạt động tối thiểu 15 phút trước khi đánh giá một quy trình là hoạt động bình thường
- Xác thực trạng thái quy trình và mức sử dụng bộ nhớ
- Tự động khởi động lại các quy trình bị lỗi
- Ngăn ngừa vòng lặp khởi động lại thông qua kiểm tra tình trạng thông minh
Caution
Đối với các phương pháp triển khai Node.js production tốt nhất, chúng tôi yêu cầu thời gian hoạt động tối thiểu 15 phút trước khi xem xét một quy trình hoạt động bình thường để tránh vòng lặp khởi động lại. Điều này ngăn ngừa lỗi liên tiếp khi các quy trình gặp sự cố về bộ nhớ hoặc các vấn đề khác.
Cấu hình sản xuất PM2 của chúng tôi
Thiết lập hệ sinh thái của chúng tôi: Nghiên cứu các tệp khởi động máy chủ của chúng tôi để thiết lập môi trường sản xuất Node.js:
Các mẫu này áp dụng cho dù bạn đang chạy ứng dụng Express, máy chủ Koa, API GraphQL hay bất kỳ ứng dụng Node.js nào khác.
Triển khai PM2 tự động
Triển khai PM2: ansible/playbooks/node.yml
Chúng tôi tự động hóa toàn bộ thiết lập PM2 thông qua Ansible để đảm bảo triển khai Node.js trên mọi máy chủ của chúng tôi một cách nhất quán.
Hệ thống phân loại và xử lý lỗi sản xuất
Một trong những phương pháp triển khai sản xuất Node.js có giá trị nhất của chúng tôi là phân loại lỗi thông minh áp dụng cho bất kỳ ứng dụng Node.js nào:
Triển khai isCodeBug của chúng tôi cho sản xuất
Nguồn: helpers/is-code-bug.js
Trình trợ giúp này cung cấp khả năng phân loại lỗi thông minh cho các ứng dụng Node.js trong quá trình sản xuất để:
- Ưu tiên các lỗi thực tế hơn lỗi của người dùng
- Cải thiện khả năng ứng phó sự cố bằng cách tập trung vào các vấn đề thực tế
- Giảm thiểu tình trạng báo động quá tải do lỗi dự kiến của người dùng
- Hiểu rõ hơn các vấn đề do ứng dụng so với các vấn đề do người dùng tạo ra
Mẫu này hoạt động với bất kỳ ứng dụng Node.js nào - cho dù bạn đang xây dựng trang web thương mại điện tử, nền tảng SaaS, API hay dịch vụ siêu nhỏ.
Tích hợp với Nhật ký sản xuất của chúng tôi
Tích hợp trình ghi nhật ký của chúng tôi: helpers/logger.js
Trình ghi nhật ký của chúng tôi sử dụng isCodeBug
để xác định mức cảnh báo và biên tập trường, đảm bảo chúng tôi nhận được thông báo về các vấn đề thực tế đồng thời lọc bỏ nhiễu trong môi trường sản xuất Node.js.
Nội dung liên quan
Tìm hiểu thêm về các mẫu xử lý lỗi của chúng tôi:
- Xây dựng hệ thống thanh toán đáng tin cậy - Các mẫu xử lý lỗi
- Bảo vệ quyền riêng tư email - Xử lý lỗi bảo mật
Gỡ lỗi hiệu suất nâng cao với v8-profiler-next và cpupro
Chúng tôi sử dụng các công cụ phân tích cấu hình tiên tiến để phân tích ảnh chụp nhanh heap và gỡ lỗi các sự cố OOM (Hết bộ nhớ), tắc nghẽn hiệu suất và các vấn đề về bộ nhớ Node.js trong môi trường sản xuất. Những công cụ này rất cần thiết cho bất kỳ ứng dụng Node.js nào gặp sự cố rò rỉ bộ nhớ hoặc hiệu suất.
Phương pháp lập hồ sơ của chúng tôi cho sản xuất Node.js
Các công cụ chúng tôi khuyên dùng:
v8-profiler-next
- Để tạo ảnh chụp nhanh heap và cấu hình CPUcpupro
- Để phân tích cấu hình CPU và ảnh chụp nhanh heap
Tip
Chúng tôi sử dụng v8-profiler-next và cpupro cùng nhau để tạo ra một quy trình gỡ lỗi hiệu suất hoàn chỉnh cho các ứng dụng Node.js của mình. Sự kết hợp này giúp chúng tôi xác định rò rỉ bộ nhớ, các điểm nghẽn hiệu suất và tối ưu hóa mã sản xuất.
Cách chúng tôi triển khai Phân tích ảnh chụp nhanh Heap
Triển khai giám sát của chúng tôi: helpers/monitor-server.js
Hệ thống giám sát sản xuất của chúng tôi bao gồm việc tự động tạo ảnh chụp nhanh heap khi vượt quá ngưỡng bộ nhớ. Điều này giúp chúng tôi gỡ lỗi các sự cố OOM trước khi chúng gây ra sự cố ứng dụng.
Các mẫu triển khai chính:
- Ảnh chụp nhanh tự động khi kích thước heap vượt quá ngưỡng 2GB
- Hồ sơ dựa trên tín hiệu để phân tích theo yêu cầu trong môi trường sản xuất
- Chính sách lưu giữ để quản lý lưu trữ ảnh chụp nhanh
- Tích hợp với các tác vụ dọn dẹp của chúng tôi để bảo trì tự động
Quy trình gỡ lỗi hiệu suất
Nghiên cứu việc triển khai thực tế của chúng tôi:
- Giám sát việc triển khai máy chủ - Giám sát heap và tạo ảnh chụp nhanh
- Công việc dọn dẹp - Lưu giữ và dọn dẹp ảnh chụp nhanh
- Tích hợp trình ghi nhật ký - Ghi nhật ký hiệu suất
Triển khai được đề xuất cho ứng dụng Node.js của bạn
Đối với phân tích ảnh chụp nhanh heap:
- Cài đặt v8-profiler-next để tạo snapshot
- Sử dụng cpupro để phân tích các snapshot đã tạo
- Triển khai ngưỡng giám sát tương tự như monitor-server.js của chúng tôi
- Thiết lập tính năng dọn dẹp tự động để quản lý lưu trữ snapshot
- Tạo trình xử lý tín hiệu để tạo profile theo yêu cầu trong môi trường production
Để phân tích CPU:
- Tạo hồ sơ CPU trong giai đoạn tải cao
- Phân tích với cpupro để xác định các điểm nghẽn
- Tập trung vào các đường dẫn nóng và các cơ hội tối ưu hóa
- Theo dõi cải thiện hiệu suất trước/sau
Warning
Việc tạo ảnh chụp nhanh heap và hồ sơ CPU có thể ảnh hưởng đến hiệu suất. Chúng tôi khuyên bạn nên triển khai điều chỉnh tốc độ và chỉ bật hồ sơ khi điều tra các sự cố cụ thể hoặc trong thời gian bảo trì.
Tích hợp với Giám sát Sản xuất của Chúng tôi
Các công cụ lập hồ sơ của chúng tôi tích hợp với chiến lược giám sát rộng hơn:
- Kích hoạt tự động dựa trên ngưỡng bộ nhớ/CPU
- Tích hợp cảnh báo khi phát hiện sự cố hiệu suất
- Phân tích lịch sử để theo dõi xu hướng hiệu suất theo thời gian
- Tương quan với các số liệu ứng dụng để gỡ lỗi toàn diện
Phương pháp này đã giúp chúng tôi xác định và giải quyết rò rỉ bộ nhớ, tối ưu hóa đường dẫn mã nóng và duy trì hiệu suất ổn định trong môi trường sản xuất Node.js của chúng tôi.
Bảo mật cơ sở hạ tầng sản xuất Node.js
Chúng tôi triển khai bảo mật toàn diện cho cơ sở hạ tầng sản xuất Node.js thông qua tự động hóa Ansible. Các biện pháp này áp dụng cho bất kỳ ứng dụng Node.js nào:
Bảo mật cấp hệ thống cho Node.js Production
Triển khai Ansible của chúng tôi: ansible/playbooks/security.yml
Các biện pháp bảo mật chính của chúng tôi dành cho môi trường sản xuất Node.js:
- Vô hiệu hóa hoán đổi để ngăn dữ liệu nhạy cảm bị ghi vào đĩa
- Vô hiệu hóa core dump để ngăn dữ liệu nhạy cảm bị ghi vào bộ nhớ
- Chặn bộ nhớ USB để ngăn truy cập dữ liệu trái phép
- Điều chỉnh tham số kernel để đảm bảo cả bảo mật và hiệu suất
Warning
Khi triển khai Node.js trên môi trường production, việc tắt swap có thể gây ra lỗi tràn bộ nhớ nếu ứng dụng của bạn vượt quá RAM khả dụng. Chúng tôi theo dõi chặt chẽ việc sử dụng bộ nhớ và điều chỉnh kích thước máy chủ một cách phù hợp.
Bảo mật ứng dụng cho các ứng dụng Node.js
Biên tập trường nhật ký của chúng tôi: helpers/logger.js
Chúng tôi xóa các trường nhạy cảm khỏi nhật ký, bao gồm mật khẩu, mã thông báo, khóa API và thông tin cá nhân. Điều này bảo vệ quyền riêng tư của người dùng đồng thời duy trì khả năng gỡ lỗi trong bất kỳ môi trường sản xuất Node.js nào.
Tự động hóa bảo mật cơ sở hạ tầng
Thiết lập Ansible hoàn chỉnh của chúng tôi cho sản xuất Node.js:
Nội dung bảo mật của chúng tôi
Tìm hiểu thêm về phương pháp bảo mật của chúng tôi:
- Các công ty kiểm toán an ninh tốt nhất
- Email được mã hóa an toàn lượng tử
- Tại sao nên sử dụng bảo mật email nguồn mở
Kiến trúc cơ sở dữ liệu cho các ứng dụng Node.js
Chúng tôi sử dụng phương pháp cơ sở dữ liệu lai được tối ưu hóa cho các ứng dụng Node.js của mình. Các mẫu này có thể được điều chỉnh cho bất kỳ ứng dụng Node.js nào:
Triển khai SQLite cho Node.js Production
Những gì chúng tôi sử dụng:
Cấu hình của chúng tôi: ansible/playbooks/sqlite.yml
Chúng tôi sử dụng SQLite cho dữ liệu cụ thể của người dùng trong các ứng dụng Node.js vì nó cung cấp:
- Cô lập dữ liệu cho mỗi người dùng/đối tượng thuê
- Hiệu suất tốt hơn cho các truy vấn của một người dùng
- Sao lưu và di chuyển đơn giản hơn
- Giảm độ phức tạp so với cơ sở dữ liệu dùng chung
Mẫu này hoạt động tốt với các ứng dụng SaaS, hệ thống đa thuê bao hoặc bất kỳ ứng dụng Node.js nào cần cô lập dữ liệu.
Triển khai MongoDB cho Node.js Production
Những gì chúng tôi sử dụng:
Cài đặt của chúng tôi được triển khai: helpers/setup-mongoose.js
Cấu hình của chúng tôi: config/mongoose.js
Chúng tôi sử dụng MongoDB cho dữ liệu ứng dụng trong môi trường sản xuất Node.js vì nó cung cấp:
- Sơ đồ linh hoạt cho các cấu trúc dữ liệu đang phát triển
- Hiệu suất tốt hơn cho các truy vấn phức tạp
- Khả năng mở rộng theo chiều ngang
- Ngôn ngữ truy vấn phong phú
Note
Phương pháp kết hợp của chúng tôi tối ưu hóa cho từng trường hợp sử dụng cụ thể. Hãy nghiên cứu các mô hình sử dụng cơ sở dữ liệu thực tế trong cơ sở mã để hiểu liệu phương pháp này có phù hợp với nhu cầu ứng dụng Node.js của bạn hay không.
Xử lý công việc nền tảng sản xuất Node.js
Chúng tôi đã xây dựng kiến trúc tác vụ nền dựa trên Bree để triển khai Node.js trên môi trường production một cách đáng tin cậy. Điều này áp dụng cho bất kỳ ứng dụng Node.js nào cần xử lý nền:
Thiết lập máy chủ Bree của chúng tôi cho sản xuất
Triển khai chính của chúng tôi: bree.js
Triển khai Ansible của chúng tôi: ansible/playbooks/bree.yml
Ví dụ về công việc sản xuất
Theo dõi sức khỏe: jobs/check-pm2.js
Tự động dọn dẹp: jobs/cleanup-tmp.js
Tất cả công việc của chúng tôi: Duyệt danh mục việc làm đầy đủ của chúng tôi
Các mẫu này áp dụng cho bất kỳ ứng dụng Node.js nào cần:
- Các tác vụ được lên lịch (xử lý dữ liệu, báo cáo, dọn dẹp)
- Xử lý nền (thay đổi kích thước hình ảnh, gửi email, nhập dữ liệu)
- Theo dõi và bảo trì tình trạng hoạt động
- Sử dụng luồng công việc cho các tác vụ ngốn nhiều CPU
Các mẫu lập lịch công việc của chúng tôi cho Node.js Production
Nghiên cứu các mẫu lịch trình công việc thực tế của chúng tôi trong danh mục việc làm để hiểu:
- Cách chúng tôi triển khai lập lịch trình giống cron trong môi trường sản xuất Node.js
- Xử lý lỗi và logic thử lại của chúng tôi
- Cách chúng tôi sử dụng luồng công việc cho các tác vụ tốn nhiều CPU
Bảo trì tự động cho các ứng dụng Node.js sản xuất
Chúng tôi triển khai bảo trì chủ động để ngăn ngừa các sự cố thường gặp khi triển khai Node.js. Các mô hình này áp dụng cho bất kỳ ứng dụng Node.js nào:
Triển khai dọn dẹp của chúng tôi
Nguồn: jobs/cleanup-tmp.js
Dịch vụ bảo trì tự động của chúng tôi dành cho các ứng dụng sản xuất Node.js nhắm đến:
- Tệp tạm thời cũ hơn 24 giờ
- Tệp nhật ký vượt quá giới hạn lưu trữ
- Tệp bộ nhớ đệm và dữ liệu tạm thời
- Tệp đã tải lên không còn cần thiết
- Ảnh chụp nhanh heap từ quá trình gỡ lỗi hiệu suất
Các mẫu này áp dụng cho bất kỳ ứng dụng Node.js nào tạo ra các tệp tạm thời, nhật ký hoặc dữ liệu được lưu trong bộ nhớ đệm.
Quản lý dung lượng đĩa cho Node.js Production
Ngưỡng giám sát của chúng tôi: helpers/monitor-server.js
- Giới hạn hàng đợi cho xử lý nền
- Ngưỡng cảnh báo sử dụng đĩa 75%
- Tự động dọn dẹp khi vượt quá ngưỡng
Tự động hóa bảo trì cơ sở hạ tầng
Tự động hóa Ansible của chúng tôi cho sản xuất Node.js:
Hướng dẫn triển khai Node.js Production
Nghiên cứu Mã thực tế của chúng tôi để biết các Thực hành Sản xuất Tốt nhất
Bắt đầu với các tệp chính sau để thiết lập môi trường sản xuất Node.js:
- Cấu hình:
config/index.js
- Giám sát:
helpers/monitor-server.js
- Xử lý lỗi:
helpers/is-code-bug.js
- Ghi nhật ký:
helpers/logger.js
- Tình trạng quy trình:
jobs/check-pm2.js
Học hỏi từ các bài đăng trên blog của chúng tôi
Hướng dẫn triển khai kỹ thuật của chúng tôi cho sản xuất Node.js:
- Hệ sinh thái gói NPM
- Xây dựng hệ thống thanh toán
- Triển khai quyền riêng tư email
- Biểu mẫu liên hệ JavaScript
- Tích hợp Email React
Tự động hóa cơ sở hạ tầng cho sản xuất Node.js
Sổ tay hướng dẫn Ansible của chúng tôi để nghiên cứu triển khai Node.js trên môi trường sản xuất:
Nghiên cứu điển hình của chúng tôi
Các triển khai doanh nghiệp của chúng tôi:
- Nghiên cứu điển hình của Linux Foundation
- Nghiên cứu điển hình về Canonical Ubuntu
- Chuyển tiếp email của cựu sinh viên
Kết luận: Các phương pháp triển khai Node.js Production tốt nhất
Cơ sở hạ tầng sản xuất Node.js của chúng tôi chứng minh rằng các ứng dụng Node.js có thể đạt được độ tin cậy cấp doanh nghiệp thông qua:
- Lựa chọn phần cứng đã được chứng minh (AMD Ryzen cho hiệu suất lõi đơn tối ưu 573%)
- Giám sát sản xuất Node.js đã được kiểm nghiệm thực tế với ngưỡng cụ thể và phản hồi tự động
- Phân loại lỗi thông minh để cải thiện phản hồi sự cố trong môi trường sản xuất
- Gỡ lỗi hiệu suất nâng cao với v8-profiler-next và cpupro để ngăn ngừa OOM
- Tăng cường bảo mật toàn diện thông qua tự động hóa Ansible
- Kiến trúc cơ sở dữ liệu lai được tối ưu hóa cho nhu cầu ứng dụng
- Bảo trì tự động để ngăn ngừa các sự cố sản xuất Node.js thường gặp
Điểm chính: Hãy nghiên cứu các tệp triển khai thực tế và các bài đăng trên blog của chúng tôi thay vì làm theo các phương pháp hay nhất chung chung. Cơ sở mã của chúng tôi cung cấp các mẫu thực tế để triển khai Node.js trên môi trường production, có thể được điều chỉnh cho bất kỳ ứng dụng Node.js nào - ứng dụng web, API, dịch vụ siêu nhỏ hoặc dịch vụ nền.
Danh sách tài nguyên đầy đủ cho Node.js Production
Các tệp triển khai cốt lõi của chúng tôi
- Cấu hình chính
- Các gói phụ thuộc
- Giám sát máy chủ
- Phân loại lỗi
- Hệ thống ghi nhật ký
- Kiểm tra sức khỏe PM2
- Tự động dọn dẹp
Triển khai máy chủ của chúng tôi
Tự động hóa cơ sở hạ tầng của chúng tôi
- Tất cả các playbook Ansible của chúng tôi
- Tăng cường bảo mật
- Thiết lập Node.js
- Cấu hình cơ sở dữ liệu
Bài đăng trên blog kỹ thuật của chúng tôi
- Phân tích hệ sinh thái NPM
- Triển khai hệ thống thanh toán
- Hướng dẫn kỹ thuật về quyền riêng tư email
- Biểu mẫu liên hệ JavaScript
- Tích hợp Email React
- Hướng dẫn giải pháp tự lưu trữ