Khi mới cài đặt, chưa có một tool nào được tích hợp để phục vụ cho deployment cho nodejs app. Và đó thực sự là vấn đề cần được giải quyết ngay. Khi bạn chạy một Nodejs app, tức là đang tạo ra một process mới (tiến trình mới) trên server. Chúng ta cần một trình quản lý process với nhiều yêu cầu được đặt ra:
PM2 là một trình quản lý các process (tiến trình) dành cho các ứng dụng Nodejs. Nó được viết bằng chính Nodejs và Shell. PM2 cũng được tích hợp bộ cân bằng tải (load balancer). Bạn có thể giữ cho các process của server còn sống và reload/restart với zero downtime. Và như bạn biết, zero downtime là cái chúng tôi đang rất cần lúc này.
Chúng ta sử dụng PM2 qua các dòng lệnh trên command line đồng thời có thể quản lý bằng giao diện người dùng thông qua Key Metrics. Giao diện quản lý trên nên web giống như trong hình sau: Keymetrics Các thông số hiển thị rất trực quan giúp cho việc quản lý tốt được hơn, hay có thể reload/restart mà không cần phải connect SSH tới server rồi dùng command line.
Bây giờ, hãy cũng mình điểm qua các tính năng chính của PM2:
PM2 được cài đặt thông qua NPM (Nodejs Package Management) bởi nó được viết bằng Javascript + Shell mà. Do đó system requirement đầu tiên là phải cài đặt NPM trước. Và tất nhiên là bạn phải cài Nodejs trước NPM. Nếu bạn chưa có Nodejs, NPM thì hãy xem qua bài viết này rồi quay trở lại đây để tiếp tục. Command cài đặt PM2 với NPM:
npm install -g pm2
Kiểm tra phiên bản PM2 sau khi cài đặt hoàn tất:
pm2 -v
2.9.1
Hướng dẫn sử dụng/tính năng:
pm2 -h
Usage: pm2 [cmd] app
Options: ....
Basic Examples:
Start an app using all CPUs available + set a name :
$ pm2 start app.js -i 0 --name "api"
Restart the previous app launched, by name :
$ pm2 restart api
Stop the app :
$ pm2 stop api
Restart the app that is stopped :
$ pm2 restart api
Remove the app from the process list :
$ pm2 delete api
Kill daemon pm2 :
Update pm2 :
$ npm install pm2@latest -g ; pm2 update
More examples in https://github.com/Unitech/pm2#usagefeatures
Deployment help:
$ pm2 deploy help
Cách sử dụng
Hầu hết các câu lệnh của PM2 đều dùng chung một cú pháp:
pm2 [cmd] app
Với hai tham số, trong đó:
Chạy một app được cấu hình từ file app.js (hoặc có thể là file json) và được đặt tên là "api"
:
$ pm2 start app.js --name "api"
Khởi động lại app thông qua tên:
$ pm2 restart "api"
Xóa pocess của app qua tên:
$ pm2 delete "api"
Kill các app đang chạy bởi pm2:
$ pm2 kill
Hay deploy:
$ pm2 deploy
Trên đây là bài viết tổng quan về PM2 và cách sử dụng cơ bản nhất của nó. Là điều kiện cần, trước khi bạn muốn hiểu nhiều hơn về nó.
Unpublished comment
Viết câu trả lời