4 مديري عمليات لتطبيقات Node.js في Linux

A Node.js process manager is a useful tool to ensure that a Node.js process or script runs continuously (forever) and can enable it to auto-start at system boot.

يتيح لك مراقبة الخدمات الجارية ويسهل مهام إدارة النظام الشائعة (مثل إعادة التشغيل في حالة الفشل، وإيقاف التشغيل، وإعادة تحميل التكوينات دون توقف، وتعديل المتغيرات/الإعدادات البيئية، وعرض مقاييس الأداء والكثير غيرها). كما يدعم أيضًا تسجيل التطبيقات، والتجميع، وتوازن الحمل، والعديد من ميزات إدارة العمليات الأخرى المفيدة.

اقرأ أيضًا: أفضل 14 إطار عمل NodeJS للمطورين في عام 2019

A package manager is useful especially for deployment of Node.js applications in a production environment. In this article, we will review four process managers for Node.js application management in a Linux system.

1. PM2

PM2 هو مدير عمليات مستوى الإنتاج مفتوح المصدر، متقدم، غني بالميزات، متعدد المنصات، والأكثر شهرة لـ Node.js مع موازن الحمل المدمج. يتيح لك قائمة ومراقبة والتفاعل مع جميع عمليات Nodejs التي تم إطلاقها، ويدعم وضع العنقود.

Install PM2 to Run Nodejs Apps in Linux

يدعم مراقبة التطبيقات: يوفر طريقة بسيطة لـ مراقبة استخدام الموارد (الذاكرة ووحدة المعالجة المركزية) لتطبيقك. يدعم سير عمل إدارة العمليات الخاص بك من خلال السماح لك بتكوين وضبط سلوك كل تطبيق عبر ملف عملية (تتضمن الصيغ المدعومة Javascript، JSON، و YAML).

سجلات التطبيقات دائمًا مهمة في بيئة الإنتاج، وفي هذا الصدد، يتيح لك PM2 إدارة سجلات تطبيقك بسهولة. يوفر طرقًا وتنسيقات مختلفة لمعالجة وعرض السجلات على التوالي. يمكنك عرض السجلات في الوقت الحقيقي، وتفريغها، وإعادة تحميلها عند الحاجة.

والأهم من ذلك، يدعم PM2 النصوص البدئية التي يمكنك تكوينها لبدء تشغيل العمليات عبر إعادة تشغيل الجهاز المتوقعة أو غير المتوقعة. كما يدعم إعادة تشغيل التطبيق عند تعديل ملف في الدليل الحالي أو الدلائل الفرعية له.

بالإضافة إلى ذلك، يأتي PM2 مع نظام وحدات يسمح للمستخدمين بإنشاء وحدات مخصصة لإدارة عمليات Nodejs. على سبيل المثال، يمكنك إنشاء وحدة لتدوير السجلات أو التوازن في التحميل، والكثير غير ذلك.

وأخيرًا، إذا كنت تستخدم حاويات Docker، يسمح PM2 بالتكامل مع الحاويات، ويوفر نظام API يسمح لك باستخدامه برمجيًا.

2. StrongLoop PM

StrongLoop PM هو أيضًا مدير عمليات إنتاج متقدم مفتوح المصدر لتطبيقات Node.js مع توازن تحميل مدمج تمامًا مثل PM2 ويمكن استخدامه عبر واجهة سطر الأوامر أو واجهة رسومية.

StrongLoop PM Process Manager for Nodejs

يدعم رصد التطبيق (عرض مقاييس الأداء مثل أوقات حلقة الأحداث، استهلاك وحدة المعالجة المركزية والذاكرة), نشر متعدد المضيفين، وضع العنقود، إعادة تشغيل التطبيق بدون توقف وترقيات، إعادة تشغيل العملية تلقائيًا في حالة الفشل، وتجميع وإدارة السجلات.

بالإضافة إلى ذلك، يأتي مع دعم Docker، ويسمح لك بتصدير مقاييس الأداء إلى خوادم تتوافق مع StatsD، وعرضها في وحدات تحكم من جهات خارجية مثل DataDog، Graphite، Splunk بالإضافة إلى Syslog وملفات السجل الخام.

3. إلى الأبد

Forever هو أداة واجهة سطر الأوامر مفتوحة المصدر، بسيطة وقابلة للتكوين لتشغيل سيناريو معين بشكل مستمر (إلى الأبد). إنها مناسبة لتشغيل نشرات أصغر لتطبيقات وسكربتات Node.js. يمكنك استخدام forever بطريقتين: من خلال سطر الأوامر أو عن طريق تضمينه في كودك.

Forever Run Scripts Continuously

يتيح لك إدارة (بدء، قائمة، إيقاف، إيقاف الكل، إعادة التشغيل، إعادة التشغيل الكل، الخ..) عمليات Node.js ويدعم مراقبة تغييرات الملف، وضع التصحيح، سجلات التطبيق، إيقاف عملية وتخصيص إشارة الخروج، والكثير غير ذلك. بالإضافة إلى ذلك، يدعم خيارات استخدام عدة يمكنك تمريرها مباشرة من سطر الأوامر أو تمريرها في ملف JSON.

4. SystemD – خدمة ومدير النظام

في نظام Linux، Systemd هو خدمة تدير موارد النظام مثل العمليات ومكونات أخرى من نظام الملفات. أي مورد يتم إدارته بواسطة systemd يعرف باسم وحدة. هناك أنواع مختلفة من الوحدات بما في ذلك الخدمة، الجهاز، المقبس، المسار، الهدف والعديد من الوحدات الأخرى.

Systemd يدير الوحدات عبر ملف تكوين يعرف باسم ملف وحدة. لذلك، من أجل إدارة خادم Node.js الخاص بك مثل أي خدمات النظام الأخرى، تحتاج إلى إنشاء له ملف وحدة، والذي في هذه الحالة سيكون ملف خدمة.بمجرد أن تقوم بإنشاء ملف خدمة لخادم Node.js الخاص بك، يمكنك بدء تشغيله، تمكينه للبدء التلقائي في وقت تشغيل النظام، التحقق من حالته، إعادة تشغيله (إيقافه وبدء تشغيله مرة أخرى) أو إعادة تحميل تكوينه، وحتى إيقافه مثل أي خدمات systemd أخرى.

بمجرد إنشاء ملف خدمة لخادم Node.js الخاص بك، يمكنك بدء تشغيله، تمكينه من البدء تلقائيًا عند تشغيل النظام، فحص حالته، إعادة تشغيله (إيقاف تشغيله ثم بدءه مرة أخرى) أو إعادة تحميل تكوينه، وحتى إيقاف تشغيله مثل أي خدمة systemd أخرى.

لمزيد من المعلومات، انظر: كيفية إنشاء وتشغيل وحدات خدمة جديدة في Systemd باستخدام سطر الأوامر

ملخص

A Node.js package manager is a useful tool for deploying your project in a production environment. It keeps an application alive forever and simplifies how you can control it. In this article, we reviewed four package managers for Node.js. If you have any additions or questions to ask, make use of the feedback form below to reach us.

Source:
https://www.tecmint.com/process-managers-for-node-js-applications-in-linux/