Nodejs triển khai sản xuất

Bạn đã xây dựng một Nút. js và bây giờ nó đã sẵn sàng đối mặt với thế giới. Điều đó có nghĩa là bạn sẽ phải triển khai nó vào môi trường sản xuất

Làm thế nào để bạn bắt đầu một Node đúng cách. ứng dụng js trong sản xuất?

Đừng để những câu hỏi này ngăn cản bạn

Điều gì sẽ xảy ra nếu bạn có thể tự tin triển khai khi biết rằng ứng dụng của mình luôn hoạt động?

Tìm hiểu lý do tại sao trình quản lý quy trình là công cụ không thể thiếu trong môi trường sản xuất và đâu là ba công cụ phổ biến nhất

Nhưng trước tiên, hãy nói về việc khởi động một ứng dụng ở nền trước so với ở chế độ nền và điều gì sẽ xảy ra khi ứng dụng gặp sự cố

Quá trình nền trước và nền

Trong quá trình phát triển, bạn có thể khởi động Nút của mình. js bằng cách mở terminal và gõ node index.js (hoặc bất kỳ tệp nào là điểm bắt đầu của ứng dụng của bạn). Nếu lệnh này tồn tại trong gói. json, bạn chạy nó với NPM bằng cách sử dụng npm start

Khi bạn nhấn CTRL+C hoặc đóng thiết bị đầu cuối, ứng dụng cũng sẽ thoát. Đó thường là những gì chúng tôi muốn trong quá trình phát triển, nhưng không phải trong quá trình sản xuất

Trong môi trường sản xuất, một ứng dụng sẽ tiếp tục chạy ngoài vòng đời của thiết bị đầu cuối hoặc kết nối SSH của chúng tôi

Khi bạn làm việc trên một ứng dụng cục bộ, bạn khởi động ứng dụng đó như một quy trình tiền cảnh. Ở phía trước, đầu vào bàn phím của bạn được chuyển hướng đến quy trình. Đó là lý do tại sao khi bạn nhấn CTRL+C, nó sẽ gửi tín hiệu SIGINT và dừng ứng dụng. Thay vào đó, những gì chúng tôi muốn là khởi động ứng dụng ở chế độ nền

Để bắt đầu một ứng dụng ở chế độ nền, bạn chỉ cần thêm & vào cuối lệnh. Sử dụng ví dụ từ trước đó, node index.js & sẽ bắt đầu Nút của bạn. js ở chế độ nền sẽ duy trì ngay cả sau khi bạn đóng thiết bị đầu cuối hoặc kết nối SSH với máy chủ sản xuất của mình

Điều gì xảy ra khi ứng dụng của bạn gặp sự cố?

Các ứng dụng chắc chắn gặp sự cố trong quá trình sản xuất do một trong nhiều lý do — rò rỉ bộ nhớ, từ chối lời hứa chưa được thực hiện hoặc vòng lặp vô hạn. Với ứng dụng của bạn hiện đang chạy độc lập, điều gì sẽ xảy ra nếu ứng dụng gặp sự cố hoặc ngừng phản hồi?

Để giải quyết vấn đề này, chúng tôi sẽ cần một quy trình khác quản lý ứng dụng của chúng tôi và chịu trách nhiệm khởi động lại ứng dụng trong những trường hợp như vậy. Đó chính xác là những gì các nhà quản lý quy trình làm

Trình quản lý quy trình khởi động ứng dụng của bạn dưới dạng quy trình nền và sẽ khởi động lại khi ứng dụng gặp sự cố. Nó cũng có thể tự động khởi động ứng dụng của bạn khi khởi động hệ thống nếu bạn muốn

Giữ cho ứng dụng của bạn tồn tại cho đến nay là tính năng quan trọng nhất của trình quản lý quy trình

Ba trình quản lý quy trình được sử dụng nhiều nhất bởi Node. js là PM2, Docker và Systemd. Tùy thuộc vào tình huống và mục đích của bạn, bạn có thể sử dụng cái này tốt hơn cái kia. Cả ba đều được sử dụng bởi nhiều ứng dụng trong sản xuất và bạn không thể sai với một trong số chúng

Trình quản lý quy trình cho Node. ứng dụng js

PM2

PM2 là trình quản lý quy trình phổ biến nhất trong Node. cộng đồng js. Cơ sở mã của PM2 được viết bằng JavaScript và được thiết kế dành riêng cho Node. ứng dụng js. Nó có giao diện người dùng đẹp và cung cấp chế độ cụm với tính năng cân bằng tải vượt trội. Cái sau giúp dễ dàng mở rộng quy mô Node. js bằng cách sử dụng nhiều lõi CPU

Để bắt đầu với PM2, tôi khuyên bạn nên làm theo hướng dẫn bắt đầu nhanh của họ. Khi bạn muốn tìm hiểu cách sử dụng một thư viện hoặc công cụ mới, tài liệu chính thức luôn là một nơi tốt để bắt đầu

Khi tôi đang triển khai một ứng dụng không nằm trong vùng chứa, PM2 là trình quản lý quy trình tiếp theo của tôi. Nó rất dễ sử dụng cho phép tôi tập trung vào phát triển ứng dụng

docker

Nếu đang sử dụng Docker để chứa và triển khai ứng dụng của mình, bạn có thể sử dụng các tính năng quản lý quy trình tích hợp. Với Docker CLI, bạn có thể định cấu hình vùng chứa để tự động khởi động lại khi ứng dụng của bạn gặp sự cố

Bạn cũng có thể xác định một HEALTHCHECK trong Dockerfile của mình. Docker sẽ sử dụng nó để xác định xem ứng dụng của bạn có khỏe không. Kiểm tra tình trạng hữu ích khi ứng dụng của bạn có thể đang chạy, nhưng không thể xử lý các yêu cầu mới vì nó bị mắc kẹt trong một vòng lặp vô hạn chẳng hạn

Khi tôi đang triển khai một Nút. js với Docker Tôi không sử dụng PM2 vì hầu hết các lợi ích của nó đã được thay thế bằng Docker

hệ thống

Mọi hệ điều hành đều có trình quản lý quy trình mặc định. Đối với hầu hết các bản phân phối Linux phổ biến, đó là systemd

Bạn có thể xem systemd là trình quản lý quy trình chính. Nếu bạn đang sử dụng trình quản lý quy trình, chẳng hạn như PM2 hoặc Docker, thì bản thân chúng được quản lý bởi systemd. Systemd là quy trình đầu tiên được nhân Linux khởi động khi khởi động hệ thống và nó chịu trách nhiệm khởi động tất cả các quy trình khác

Systemd hơi khó học nếu bạn không quen với quản trị hệ thống. Tuy nhiên, sử dụng systemd là một cách tuyệt vời để tìm hiểu về DevOps và trở nên thoải mái hơn khi sử dụng Linux. Bài viết cũ nhưng vẫn phù hợp này chỉ cho bạn cách sử dụng systemd với Node. js

Phần kết luận

Chúng ta đã nói về sự khác biệt giữa việc chạy một quy trình ở phía trước so với ở phía sau. Trong môi trường sản xuất, chúng tôi muốn các ứng dụng của mình tiếp tục chạy sau khi chúng tôi đóng thiết bị đầu cuối, đó là lý do tại sao chúng tôi chạy chúng trong nền

Các ứng dụng chắc chắn sẽ gặp sự cố và trình quản lý quy trình đảm bảo khởi động lại chúng khi chúng xảy ra. Họ giữ cho ứng dụng của bạn tồn tại và họ cũng có thể tự động khởi động ứng dụng khi khởi động hệ thống

PM2 là trình quản lý quy trình được sử dụng nhiều nhất trong Node. js và nó rất dễ sử dụng. Nếu ứng dụng của bạn nằm trong vùng chứa, Docker có các tính năng quản lý quy trình tích hợp. Nếu bạn muốn tìm hiểu DevOps và muốn thoải mái hơn với Linux thì sử dụng systemd là một lựa chọn tuyệt vời

Còn nhiều điều nữa để chạy một Nút sản xuất. js bên cạnh việc khởi động lại tự động – bạn phải thêm nhật ký hữu ích và thiết lập theo dõi & cảnh báo trong số những thứ khác. Bạn không cần phải học những điều đó trước khi triển khai ứng dụng của mình

Đưa ứng dụng của bạn vào hoạt động, cho cả thế giới thấy những gì bạn đã xây dựng và lo lắng về phần còn lại sau

Chúc mừng vận chuyển. 🚀

Trở thành một Node lành nghề. nhà phát triển js

Mỗi thứ Ba khác, tôi gửi email với các mẹo về xây dựng Node vững chắc. ứng dụng js. Nếu bạn muốn phát triển với tư cách là một nhà phát triển web và cùng tôi phát triển sự nghiệp, hãy gửi email của bạn bên dưới. 👇

Tôi có thể sử dụng Nodejs trong sản xuất không?

Bạn có thể báo hiệu cho Node. js mà bạn đang chạy trong sản xuất bằng cách đặt NODE_ENV=biến môi trường sản xuất . trong trình bao, nhưng tốt hơn là đặt nó trong tệp cấu hình trình bao của bạn (e. g. . bash_profile bằng vỏ Bash) vì nếu không thì cài đặt không tồn tại trong trường hợp khởi động lại hệ thống.

Làm cách nào để xây dựng API nút js cho sản xuất?

Thiết lập môi trường .
Cài đặt nút. Bạn có thể tải xuống Node từ trang web chính của họ bao gồm trình cài đặt tích hợp. .
Cài đặt MongoDB
Xem lại tài liệu API
Nhân bản dự án hạt giống. Để sao chép nhánh hạt giống của repo này, hãy chạy lệnh sau. .
Chạy npm install để cài đặt tất cả các mô-đun cần thiết cho dự án này

Làm cách nào để triển khai ứng dụng nút js trong mã sản xuất với harry?

Cách triển khai Nút. .
cuộn tròn -sL https. //deb. nút nguồn. com/setup_14. x. sudo -E bash -.
sudo apt-get cài đặt -y nodejs. .
nút --version && npm --version. .
ứng dụng sudo vi. js. .
const express = yêu cầu('express') const app = express() const port = 3000 ứng dụng. .
npm cài đặt nhanh. .
ứng dụng nút. js

Nút JS được triển khai như thế nào?

Để triển khai một Nút. js, nhấp vào nút Dịch vụ web mới trong tùy chọn Dịch vụ web . Bạn cũng có thể nhấp vào nút Mới + được hiển thị trong tiêu đề ngay trước ảnh hồ sơ của bạn và chọn tùy chọn Dịch vụ web.