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 2025
Các biện pháp triển khai sản xuất Node.js tốt nhất từ cơ sở hạ tầng đã được kiểm nghiệm thực tế của chúng tôi, xử lý hàng triệu yêu cầu mỗi ngày.
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 của mình. Hướng dẫn toàn diện này chia sẻ các phương pháp triển khai sản xuất Node.js đã được thử nghiệm 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à các bài học chúng tôi đã học được khi mở rộng quy mô các ứ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 di chuyển từ bộ xử lý Intel sang AMD Ryzen, chúng tôi đã đạt được Cải thiện hiệu suất 573% trong các ứng dụng Node.js của chúng tôi. Đây không chỉ là một tối ưu hóa nhỏ—nó đã thay đổi cơ bản cách các ứng dụng Node.js của chúng tôi hoạt động trong sản xuấ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 biện pháp triển khai sản xuất Node.js tốt nhất, lựa chọn phần cứng là rất quan trọng. Chúng tôi đặc biệt chọn lưu trữ DataPacket vì tính khả dụng của AMD Ryzen vì hiệu suất lõi đơn rất quan trọng đối với các ứng dụng Node.js vì thực thi JavaScript là luồng đơn.
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 di chuyển 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 trang trạng thái GitHub Issue #1519 của chúng tôi)
- Loại bỏ sự chậm trễ trong quá trình xử lý để phản hồi gần như ngay lập tức (được đề cập trong GitHub Sự cố #298)
- Tỷ lệ giá trên hiệu suất 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 tăng đáng kể đến mức hiện nay 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ụ siêu nhỏ 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 biện pháp triển khai sản xuất Node.js tốt nhất của chúng tôi bao gồm các lựa chọn công nghệ có chủ đích dựa trên nhiều năm kinh nghiệm sản xuất. Sau đây là những gì chúng tôi sử dụng và lý do tại sao các 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 cho 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 các đường ống CI/CD
- Hiệu quả không gian đĩa thông qua liên kết cứng
- Giải quyết sự phụ thuộc nghiêm ngặt điều đó ngăn chặn sự phụ thuộc ảo
- Hiệu suất tốt hơn trong triển khai sản xuất
[!LƯU Ý] Là một phần trong các biện pháp triển khai sản xuất Node.js tốt nhất của chúng tôi, chúng tôi ghim các phiên bản chính xác của các công cụ quan trọng như pnpm để đảm bảo hành vi 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 thực hiện:
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ì hỗ trợ async/await hiện đại và thành phần phần mềm trung gian sạch hơn. Nhà sáng lập của chúng tôi, Nick Baugh đã đóng góp cho cả Express và Koa, giúp chúng tôi có cái nhìn sâu sắc về cả hai khuôn khổ để sử dụng trong 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 tảng: Bree cho độ tin cậy sản xuất
Những gì chúng tôi sử dụng: bree
người lập lịch
Chúng tôi đã tạo và duy trì Bree vì các trình lập lịch công việc hiện tại không đáp ứng được nhu cầu của chúng tôi về 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 cho các phản hồi lỗi có cấu trúc trong suốt các ứng dụng sản xuất Node.js của mình. 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 sản xuất
Cách tiếp cận của chúng tôi để giám sát các ứng dụng Node.js trong sản xuất đã phát triển qua nhiều năm chạy các ứ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
- 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% ngưỡng cảnh báo
[!CẢNH BÁO] 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 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 logic chính xác và điều chỉnh các giá trị cho thiết lập của bạn.
Giám sát cấp ứng dụng cho sản xuất Node.js
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 chú ý ngay lập tức
- Lỗi của người dùng đó là hành vi được mong đợi
- Lỗi dịch vụ bên ngoài mà chúng ta 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.
Việc 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 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 5 GB và thời gian chờ 180 giây để xử lý yêu cầu nhằm ngăn chặn tình trạng cạn kiệt tài nguyên. Các mẫu 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 của mình 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ịch trình cron
- 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 quá trình lành mạnh
- Xác thực trạng thái quy trình và sử dụng bộ nhớ
- Tự động khởi động lại các tiến trình bị lỗi
- Ngăn chặn vòng lặp khởi động lại thông qua kiểm tra sức khỏe thông minh
[!CAUTION] Đối với các biện pháp triển khai sản xuất Node.js tốt nhất, chúng tôi yêu cầu thời gian hoạt động 15+ phút trước khi xem xét một quy trình lành mạnh để 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 đang gặp vấn đề 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 sản xuất Node.js nhất quán trên tất cả các máy chủ của chúng tôi.
Hệ thống phân loại và xử lý lỗi sản xuất
Một trong những biện 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ế qua lỗi của người dùng
- Cải thiện phản ứng sự cố của chúng tôi bằng cách tập trung vào các vấn đề thực tế
- Giảm mệt mỏi cảnh giác từ lỗi người dùng dự kiến
- Hiểu rõ hơn ứng dụng so với các vấn đề do người dùng tạo ra
Mẫu này áp dụng cho mọi ứng dụng Node.js - 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
Người 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 nội dung, đảm bảo chúng tôi nhận được thông báo về các vấn đề thực tế trong khi lọc bỏ nhiễu trong môi trường sản xuất Node.js của mình.
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ư của 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ụ lập hồ sơ nâng cao để 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 của chúng tôi. Các công cụ này rất cần thiết cho bất kỳ ứng dụng Node.js nào gặp phải sự cố rò rỉ bộ nhớ hoặc hiệu suất.
Phương pháp tiếp cận 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à hồ sơ 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 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ớ, tắc nghẽn hiệu suất và tối ưu hóa mã sản xuất của mình.
Cách chúng tôi triển khai Phân tích ảnh chụp nhanh Heap
Việc triển khai giám sát của chúng tôi: helpers/monitor-server.js
Giám sát sản xuất của chúng tôi bao gồm việc tạo ảnh chụp nhanh heap tự động khi ngưỡng bộ nhớ vượt quá. Đ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ô hình triển khai chính:
- Ảnh chụp nhanh tự động khi kích thước heap vượt quá ngưỡng 2GB
- Phân tích dựa trên tín hiệu để phân tích theo yêu cầu trong 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ông việc 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 logger - 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 ảnh chụp nhanh
- Sử dụng cpupro để phân tích các ảnh chụp nhanh được tạo ra
- Thực hiện ngưỡng giám sát tương tự như monitor-server.js của chúng tôi
- Thiết lập dọn dẹp tự động để quản lý lưu trữ ảnh chụp nhanh
- Tạo trình xử lý tín hiệu để lập hồ sơ theo yêu cầu trong sản xuất
Để lập hồ sơ CPU:
- Tạo hồ sơ CPU trong thời gian tải cao
- Phân tích với cpupro để xác định các nút thắt
- Tập trung vào các con đường nóng và cơ hội tối ưu hóa
- Theo dõi trước/sau cải tiến hiệu suất
[!CẢNH BÁO] 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 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 của chúng tôi:
- 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 ra các vấn đề về 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 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 của mình thông qua 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 sản xuất Node.js
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 chặn dữ liệu nhạy cảm được ghi vào đĩa
- Vô hiệu hóa việc dump lõi để ngăn chặn việc dump bộ nhớ chứa thông tin nhạy cảm
- Bộ lưu trữ USB bị chặn để ngăn chặn truy cập dữ liệu trái phép
- Điều chỉnh tham số hạt nhân cho cả bảo mật và hiệu suất
[!CẢNH BÁO] Khi triển khai các biện pháp triển khai sản xuất Node.js tốt nhất, việc vô hiệu hóa swap có thể gây ra tình trạng out-of-memory kill nếu ứng dụng của bạn vượt quá RAM khả dụng. Chúng tôi theo dõi cẩn thận việc sử dụng bộ nhớ và định cỡ máy chủ của mình 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 trong khi vẫn 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 bảo mật tốt nhất
- Email được mã hóa Quantum Safe
- 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 tiếp cận cơ sở dữ liệu lai được tối ưu hóa cho các ứng dụng Node.js của chúng tôi. 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 sản xuất Node.js
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 theo người dùng/người thuê
- Hiệu suất tốt hơn cho các truy vấn của người dùng đơn lẻ
- Sao lưu đơn giản và di cư
- Giảm độ phức tạp so với cơ sở dữ liệu chia sẻ
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 sản xuất Node.js
Những gì chúng tôi sử dụng:
Triển khai thiết lập của chúng tôi: 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 để phát triển cấu trúc dữ liệu
- Hiệu suất tốt hơn cho các truy vấn phức tạp
- Tỷ lệ ngang khả năng
- Ngôn ngữ truy vấn phong phú
[!LƯU Ý] Phương pháp lai của chúng tôi tối ưu hóa cho trường hợp sử dụng cụ thể của chúng tôi. Nghiên cứu các mẫu sử dụng cơ sở dữ liệu thực tế của chúng tôi 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 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 công việc nền của mình xung quanh Bree để triển khai sản xuất Node.js đá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 hóa 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:
- Nhiệm vụ theo lịch trình (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ì sức khỏe
- Sử dụng luồng công việc cho các tác vụ sử dụng 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ịch trình giống như cron trong 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ụ sử dụng 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ố sản xuất Node.js phổ biến. Các mẫu này áp dụng cho bất kỳ ứng dụng Node.js nào:
Việc thực hiện dọn dẹp của chúng tôi
Nguồn: jobs/cleanup-tmp.js
Mục tiêu bảo trì tự động của chúng tôi cho các ứng dụng sản xuất Node.js:
- Các tập tin tạm thời cũ hơn 24 giờ
- Tệp nhật ký vượt quá giới hạn lưu giữ
- Tệp bộ nhớ đệm và dữ liệu tạm thời
- Các tập tin đã tải lên không còn cần thiết nữa
- Ảnh chụp nhanh đống từ 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ý không gian đĩa cho sản xuất Node.js
Ngưỡng giám sát của chúng tôi: helpers/monitor-server.js
- Giới hạn hàng đợi để xử lý nền
- Sử dụng đĩa 75% ngưỡng cảnh báo
- Tự động dọn dẹp khi ngưỡng bị vượt quá
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 sản xuất Node.js
Nghiên cứu Mã thực tế của chúng tôi để 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
- Sức khỏe 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 các gói NPM
- Xây dựng hệ thống thanh toán
- Triển khai bảo mậ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 sản xuất Node.js:
Các nghiên cứu điển hình của chúng tôi
Triển khai doanh nghiệp của chúng tôi:
- Nghiên cứu trường hợp của Linux Foundation
- Nghiên cứu trường hợp 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 sản xuất Node.js 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 tối ưu hóa hiệu suất lõi đơn lên 573%)
- Giám sát sản xuất Node.js đã được thử 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 ứng 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 vấn đề sản xuất Node.js phổ biến
Điểm chính: Nghiên cứu các tệp triển khai thực tế và bài đăng trên blog của chúng tôi thay vì tuân 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 sản xuất Node.js 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 tin triển khai cốt lõi của chúng tôi
- Cấu hình chính
- Phụ thuộc gói
- 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 viết 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ư của 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ữ