4 Διαχειριστές διεργασιών για εφαρμογές Node.js στο Linux


Ένας Διαχείριση διαδικασιών Node.js είναι ένα χρήσιμο εργαλείο για να διασφαλιστεί ότι μια διαδικασία ή σενάριο Node.js εκτελείται συνεχώς (για πάντα) και μπορεί να του επιτρέψει την αυτόματη εκκίνηση κατά την εκκίνηση του συστήματος .

Σας επιτρέπει να παρακολουθείτε τις υπηρεσίες που εκτελούνται και διευκολύνει κοινές εργασίες διαχείρισης συστήματος (όπως επανεκκίνηση σε περίπτωση αποτυχίας, διακοπή, επαναφόρτωση διαμορφώσεων χωρίς διακοπές λειτουργίας, τροποποίηση μεταβλητών/ρυθμίσεων περιβάλλοντος, εμφάνιση μετρήσεων απόδοσης και πολλά άλλα). Υποστηρίζει επίσης καταγραφή εφαρμογών, ομαδοποίηση και εξισορρόπηση φορτίου, και τόσες άλλες χρήσιμες λειτουργίες διαχείρισης διεργασιών.

Διαβάστε επίσης: 14 καλύτερα NodeJS Frameworks για προγραμματιστές το 2019

Ένας διαχειριστής πακέτων είναι χρήσιμος ειδικά για την ανάπτυξη εφαρμογών Node.js σε περιβάλλον παραγωγής. Σε αυτό το άρθρο, θα εξετάσουμε τέσσερις διαχειριστές διεργασιών για τη διαχείριση εφαρμογών Node.js σε ένα σύστημα Linux.

1. PM2

Το PM2 είναι ένας ανοιχτός κώδικας, προηγμένος, πλούσιος σε δυνατότητες, πολλαπλών πλατφορμών και ο πιο δημοφιλής διαχειριστής διεργασιών σε επίπεδο παραγωγής για το Node.js με ενσωματωμένο εξισορροπητή φορτίου. Σας επιτρέπει να καταχωρείτε, να παρακολουθείτε και να ενεργείτε σε όλες τις εκκινημένες διεργασίες Nodejs και υποστηρίζει τη λειτουργία συμπλέγματος.

Υποστηρίζει παρακολούθηση εφαρμογών: προσφέρει έναν απλό τρόπο παρακολούθησης της χρήσης πόρων (μνήμης και CPU) της εφαρμογής σας. Υποστηρίζει τη ροή εργασιών διαχείρισης διεργασιών, επιτρέποντάς σας να διαμορφώσετε και να συντονίσετε τη συμπεριφορά κάθε εφαρμογής μέσω ενός αρχείου διεργασίας (οι υποστηριζόμενες μορφές περιλαμβάνουν τα Javascript, JSON και YAML<).

Τα αρχεία καταγραφής εφαρμογών είναι πάντα βασικά σε ένα περιβάλλον παραγωγής, από αυτή την άποψη το PM2 σας επιτρέπει να διαχειρίζεστε εύκολα τα αρχεία καταγραφής της εφαρμογής σας. Παρέχει διαφορετικούς τρόπους και μορφές χειρισμού και εμφάνισης αρχείων καταγραφής αντίστοιχα. Μπορείτε να εμφανίσετε αρχεία καταγραφής σε πραγματικό χρόνο, να τα ξεπλύνετε και να τα φορτώσετε ξανά όταν χρειάζεται.

Είναι σημαντικό ότι το PM2 υποστηρίζει σενάρια εκκίνησης τα οποία μπορείτε να διαμορφώσετε για αυτόματη εκκίνηση των διαδικασιών σας σε αναμενόμενες ή μη αναμενόμενες επανεκκινήσεις του μηχανήματος. Υποστηρίζει επίσης την αυτόματη επανεκκίνηση μιας εφαρμογής όταν ένα αρχείο τροποποιείται στον τρέχοντα κατάλογο ή στους υποκαταλόγους του.

Επιπλέον, το PM2 συνοδεύεται από ένα σύστημα λειτουργικών μονάδων που επιτρέπει στους χρήστες να δημιουργούν προσαρμοσμένες λειτουργικές μονάδες για τη διαχείριση διαδικασιών Nodejs. Για παράδειγμα, μπορείτε να δημιουργήσετε μια μονάδα για τη μονάδα περιστροφής καταγραφής ή την εξισορρόπηση φορτίου και πολλά άλλα.

Τελευταίο αλλά εξίσου σημαντικό, εάν χρησιμοποιείτε κοντέινερ Docker, το PM2 επιτρέπει την ενοποίηση κοντέινερ και προσφέρει ένα σύστημα API που σας επιτρέπει να το χρησιμοποιείτε μέσω προγραμματισμού.

2. StrongLoop PM

Το StrongLoop PM είναι επίσης ένας προηγμένος διαχειριστής διαδικασίας παραγωγής ανοιχτού κώδικα για εφαρμογές Node.js με ενσωματωμένη εξισορρόπηση φορτίου όπως το PM2 και μπορεί να χρησιμοποιηθεί μέσω εντολής- γραμμή ή μια γραφική διεπαφή.

Υποστηρίζει παρακολούθηση εφαρμογών (προβολή μετρήσεων απόδοσης όπως χρόνοι βρόχου συμβάντων, CPU και κατανάλωση μνήμης), ανάπτυξη πολλαπλών κεντρικών υπολογιστών, λειτουργία συμπλέγματος, επανεκκινήσεις και αναβαθμίσεις εφαρμογών μηδενικού χρόνου λειτουργίας, αυτόματη επανεκκίνηση διεργασιών σε περίπτωση αποτυχίας και συγκέντρωση και διαχείριση αρχείων καταγραφής.

Επιπλέον, αποστέλλεται με υποστήριξη Docker, σας επιτρέπει να εξάγετε μετρήσεις απόδοσης σε διακομιστές συμβατούς με StatsD και να προβάλλετε σε κονσόλες τρίτου κατασκευαστή, όπως DataDog, Graphite<, Splunk καθώς και Syslog και ακατέργαστα αρχεία καταγραφής.

3. Για πάντα

Το Forever είναι ένα ανοιχτού κώδικα, απλό και διαμορφώσιμο εργαλείο διεπαφής γραμμής εντολών για συνεχή εκτέλεση ενός δεδομένου σεναρίου (για πάντα). Είναι κατάλληλο για την εκτέλεση μικρότερων αναπτύξεων εφαρμογών και σεναρίων Node.js. Μπορείτε να χρησιμοποιήσετε το για πάντα με δύο τρόπους: μέσω της γραμμής εντολών ή ενσωματώνοντάς το στον κώδικά σας.

Σας επιτρέπει να διαχειρίζεστε (έναρξη, λίστα, διακοπή, διακοπή όλων, επανεκκίνηση, επανεκκίνηση όλων, κ.λπ.) διεργασίες Node.js και υποστηρίζει παρακολούθηση για αλλαγές αρχείων, λειτουργία εντοπισμού σφαλμάτων, αρχεία καταγραφής εφαρμογών, θανάτωση προσαρμογής διεργασίας και σήματος εξόδου, και πολλά άλλα. Επιπλέον, υποστηρίζει πολλές επιλογές χρήσης τις οποίες μπορείτε να περάσετε απευθείας από τη γραμμή εντολών ή να τις μεταβιβάσετε σε ένα αρχείο JSON.

4. SystemD – Service and System Manager

Στο Linux, το Systemd είναι ένας δαίμονας που διαχειρίζεται πόρους συστήματος, όπως διεργασίες και άλλα στοιχεία του συστήματος αρχείων. Οποιοσδήποτε πόρος διαχειρίζεται το systemd είναι γνωστός ως μονάδα. Υπάρχουν διάφοροι τύποι μονάδων, όπως υπηρεσίες, συσκευή, υποδοχή, βάση, στόχος και πολλές άλλες μονάδες.

Το Systemd διαχειρίζεται μονάδες μέσω ενός αρχείου διαμόρφωσης που είναι γνωστό ως αρχείο μονάδας. Επομένως, για να διαχειριστείτε τον διακομιστή σας Node.js όπως οποιεσδήποτε άλλες υπηρεσίες συστήματος, πρέπει να δημιουργήσετε για αυτόν ένα αρχείο μονάδας, το οποίο σε αυτήν την περίπτωση θα είναι αρχείο υπηρεσίας.

Μόλις δημιουργήσετε ένα αρχείο υπηρεσίας για τον διακομιστή σας Node.js, μπορείτε να το ξεκινήσετε, να ενεργοποιήσετε την αυτόματη εκκίνηση κατά την εκκίνηση του συστήματος, να ελέγξετε την κατάστασή του, να κάνετε επανεκκίνηση (διακοπή και εκκίνηση ξανά) ή επαναφορτώστε τη διαμόρφωσή του, ακόμα και να το σταματήσετε όπως κάθε άλλη υπηρεσία systemd.

Για περισσότερες πληροφορίες, δείτε: Πώς να δημιουργήσετε και να εκτελέσετε νέες μονάδες υπηρεσίας στο Systemd χρησιμοποιώντας Shell Script

Περίληψη

Ένας διαχειριστής πακέτων Node.js είναι ένα χρήσιμο εργαλείο για την ανάπτυξη του έργου σας σε περιβάλλον παραγωγής. Διατηρεί μια εφαρμογή ζωντανή για πάντα και απλοποιεί τον τρόπο με τον οποίο μπορείτε να την ελέγξετε. Σε αυτό το άρθρο, εξετάσαμε τέσσερις διαχειριστές πακέτων για το Node.js. Εάν έχετε οποιεσδήποτε προσθήκες ή ερωτήσεις να κάνετε, χρησιμοποιήστε την παρακάτω φόρμα σχολίων για να επικοινωνήσετε μαζί μας.