Wyszukiwanie w witrynie

4 Menedżery procesów dla aplikacji Node.js w systemie Linux


Menedżer procesów Node.js to przydatne narzędzie zapewniające, że proces lub skrypt Node.js działa w sposób ciągły (na zawsze) i umożliwia automatyczne uruchamianie przy starcie systemu .

Pozwala monitorować działające usługi i ułatwia typowe zadania administracyjne systemu (takie jak ponowne uruchamianie w przypadku awarii, zatrzymywanie, ponowne ładowanie konfiguracji bez przestojów, modyfikowanie zmiennych/ustawień środowiskowych, wyświetlanie wskaźników wydajności i wiele więcej). Obsługuje także rejestrowanie aplikacji, klastrowanie i równoważenie obciążenia, a także wiele innych przydatnych funkcji zarządzania procesami.

Przeczytaj także: 14 najlepszych frameworków NodeJS dla programistów w 2019 roku

Menedżer pakietów jest przydatny zwłaszcza przy wdrażaniu aplikacji Node.js w środowisku produkcyjnym. W tym artykule dokonamy przeglądu czterech menedżerów procesów do zarządzania aplikacjami Node.js w systemie Linux.

1. PM2

PM2 to zaawansowany, bogaty w funkcje, wieloplatformowy i najpopularniejszy menedżer procesów na poziomie produkcyjnym dla Node.js o otwartym kodzie źródłowym z wbudowanym modułem równoważenia obciążenia. Umożliwia wyświetlanie, monitorowanie i działanie na wszystkich uruchomionych procesach Nodejs, a także obsługuje tryb klastra.

Obsługuje monitorowanie aplikacji: oferuje prosty sposób monitorowania wykorzystania zasobów (pamięci i procesora) aplikacji. Wspiera przepływ pracy związany z zarządzaniem procesami, umożliwiając konfigurowanie i dostrajanie zachowania każdej aplikacji za pośrednictwem pliku procesu (obsługiwane formaty obejmują Javascript, JSON i YAML).

Dzienniki aplikacji są zawsze kluczowe w środowisku produkcyjnym, w związku z tym PM2 pozwala na łatwe zarządzanie logami aplikacji. Zapewnia różne sposoby i formaty odpowiednio obsługi i wyświetlania dzienników. Możesz wyświetlać dzienniki w czasie rzeczywistym, opróżniać je i ładować ponownie, jeśli zajdzie taka potrzeba.

Co ważne, PM2 obsługuje skrypty startowe, które możesz skonfigurować tak, aby automatycznie uruchamiały procesy po oczekiwanym lub nieoczekiwanym ponownym uruchomieniu komputera. Obsługuje także automatyczne ponowne uruchamianie aplikacji, gdy plik zostanie zmodyfikowany w bieżącym katalogu lub jego podkatalogach.

Ponadto PM2 jest wyposażony w system modułów, który umożliwia użytkownikom tworzenie niestandardowych modułów do zarządzania procesami Nodejs. Na przykład możesz utworzyć moduł do modułu rotacji dzienników lub równoważenia obciążenia i wiele więcej.

Wreszcie, jeśli korzystasz z kontenerów Docker, PM2 umożliwia integrację kontenerów i oferuje system API, który pozwala na programowe korzystanie z niego.

2. PM StrongLoop

StrongLoop PM to także zaawansowany menedżer procesów produkcyjnych typu open source dla aplikacji Node.js z wbudowanym równoważeniem obciążenia, podobnie jak PM2, i można go używać za pomocą polecenia- liniową lub interfejsem graficznym.

Obsługuje monitorowanie aplikacji (wyświetlanie wskaźników wydajności, takich jak czas pętli zdarzeń, zużycie procesora i pamięci), wdrażanie na wielu hostach, tryb klastra, ponowne uruchamianie i aktualizacje aplikacji bez przestojów, automatyczne ponowne uruchamianie procesów w przypadku awarii oraz agregowanie dzienników i zarządzanie nimi.

Co więcej, jest wyposażony w obsługę Dockera, umożliwia eksportowanie wskaźników wydajności do serwerów zgodnych ze StatsD i przeglądanie ich na konsolach innych firm, takich jak DataDog, Graphite<, Splunk, a także Syslog i surowe pliki dziennika.

3. Na zawsze

Forever to proste i konfigurowalne narzędzie z interfejsem wiersza poleceń typu open source, umożliwiające ciągłe (na zawsze) uruchamianie danego skryptu. Nadaje się do uruchamiania mniejszych wdrożeń aplikacji i skryptów Node.js. Możesz użyć forever na dwa sposoby: za pomocą wiersza poleceń lub osadzając go w swoim kodzie.

Umożliwia zarządzanie procesami Node.js (uruchamianie, wyświetlanie listy, zatrzymywanie, zatrzymywanie wszystkich, ponowne uruchamianie, restartowanie wszystkich itp.) i obsługuje śledzenie zmian w plikach, tryb debugowania, dzienniki aplikacji, zabijanie dostosowywania procesu i sygnału wyjścia i wiele więcej. Ponadto obsługuje kilka opcji użycia, które można przekazać bezpośrednio z wiersza poleceń lub przekazać je w pliku JSON.

4. SystemD – Menedżer usług i systemu

W systemie Linux Systemd jest demonem zarządzającym zasobami systemowymi, takimi jak procesy i inne komponenty systemu plików. Każdy zasób zarządzany przez systemd nazywany jest jednostką. Istnieją różne typy jednostek, w tym jednostki serwisowe, urządzenia, gniazda, wierzchowce, cele i wiele innych.

Systemd zarządza jednostkami poprzez plik konfiguracyjny znany jako plik unit. Dlatego też, aby zarządzać swoim serwerem Node.js jak każdą inną usługą systemową, musisz utworzyć dla niego plik jednostkowy, który w tym przypadku będzie plikiem usługi.

Po utworzeniu pliku usługi dla serwera Node.js możesz go uruchomić, włączyć automatyczne uruchamianie podczas uruchamiania systemu, sprawdzić jego status, uruchomić ponownie (zatrzymać i uruchomić ponownie) lub załaduj ponownie jego konfigurację, a nawet zatrzymaj ją jak każdą inną usługę systemową.

Aby uzyskać więcej informacji, zobacz: Jak tworzyć i uruchamiać nowe jednostki usług w Systemd przy użyciu skryptu powłoki

Streszczenie

Menedżer pakietów Node.js to przydatne narzędzie do wdrażania projektu w środowisku produkcyjnym. Utrzymuje aplikację przy życiu na zawsze i upraszcza sposób jej kontrolowania. W tym artykule sprawdziliśmy cztery menedżery pakietów dla Node.js. Jeśli masz jakieś uwagi lub pytania, które chcesz zadać, skorzystaj z poniższego formularza opinii, aby się z nami skontaktować.