12/08/2018, 16:47

Tổng quan về PM2

Mình vừa trở về sau khi tham gia chuyển đổi hệ thống cho một dự án. Ban đầu dự án này xây dựng dựa trên nền tảng duy nhất là PHP 5.5 build trên một VPS tại Singapore. Là thành viên trong bất kỳ dự án nào, mình luôn mong muốn đem lại những trải nghiệm tốt nhất tới người sử dụng, một khi họ truy cập ...

Mình vừa trở về sau khi tham gia chuyển đổi hệ thống cho một dự án. Ban đầu dự án này xây dựng dựa trên nền tảng duy nhất là PHP 5.5 build trên một VPS tại Singapore. Là thành viên trong bất kỳ dự án nào, mình luôn mong muốn đem lại những trải nghiệm tốt nhất tới người sử dụng, một khi họ truy cập vào website. Và các thành viên trong team đều ý thức được rằng đó là một trong những yếu tố quan trọng ảnh hưởng tới tỉ lệ giữ chân người dùng. Do đó hệ thống sẽ phải có những thay đổi, đặc biệt là tốc độ tải trang phải nhanh và ổn định trong khi dự án sẽ ngày một phình to hơn. Đó là lý do Nodejs được lựa chọn và áp dụng.

Tại sao sử dụng PM2?

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:

  • Ổn định, tin cậy để giữ server luôn sống.
  • Có API trực quan, dễ sử dụng và có thể thực hiện được qua command line.
  • Có các bản update thường xuyên. Chứu không phải là một process manager cũ kỹ, đã lâu không người sử dụng.
  • Auto start các processes khi có reboot system.
  • Có các cài đặt nâng cao cho từng process thông qua các environment variables (biến mội trường). Và PM2 là công cụ đã được chúng tôi sử dụng để quản lý ứng dụng nodejs cho dự án vì nó đáp ứng được những gì mà chúng ta đang cần.

PM2 là gì?

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.             </div>
            
            <div class=

0