ലിനക്സിലെ Node.js ആപ്ലിക്കേഷനുകൾക്കായുള്ള 4 പ്രോസസ്സ് മാനേജർമാർ


ഒരു Node.js പ്രോസസ് മാനേജർ ഒരു Node.js പ്രോസസ്സ് അല്ലെങ്കിൽ സ്ക്രിപ്റ്റ് തുടർച്ചയായി (എന്നേക്കും) പ്രവർത്തിക്കുന്നുവെന്നും സിസ്റ്റം ബൂട്ടിൽ അത് യാന്ത്രികമായി ആരംഭിക്കാൻ പ്രാപ്തമാക്കാനും കഴിയുന്ന ഒരു ഉപയോഗപ്രദമായ ഉപകരണമാണ്.

പ്രവർത്തിക്കുന്ന സേവനങ്ങൾ നിരീക്ഷിക്കാൻ ഇത് നിങ്ങളെ അനുവദിക്കുന്നു കൂടാതെ ഇത് പൊതുവായ സിസ്റ്റം അഡ്മിനിസ്ട്രേഷൻ ജോലികൾ സുഗമമാക്കുന്നു (പരാജയത്തിൽ പുനരാരംഭിക്കുക, നിർത്തുക, പ്രവർത്തനരഹിതമായ കോൺഫിഗറേഷനുകൾ റീലോഡ് ചെയ്യുക, എൻവയോൺമെന്റ് വേരിയബിളുകൾ/ക്രമീകരണങ്ങൾ പരിഷ്ക്കരിക്കുക, പ്രകടന അളവുകൾ കാണിക്കുക എന്നിവയും മറ്റും). ഇത് ആപ്ലിക്കേഷൻ ലോഗിംഗ്, ക്ലസ്റ്ററിംഗ്, ലോഡ് ബാലൻസിങ് എന്നിവയും മറ്റ് ഉപയോഗപ്രദമായ പ്രോസസ്സ് മാനേജ്മെന്റ് സവിശേഷതകളും പിന്തുണയ്ക്കുന്നു.

ഒരു പ്രൊഡക്ഷൻ എൻവയോൺമെന്റിൽ Node.js ആപ്ലിക്കേഷനുകൾ വിന്യസിക്കുന്നതിന് ഒരു പാക്കേജ് മാനേജർ ഉപയോഗപ്രദമാണ്. ഈ ലേഖനത്തിൽ, ഒരു Linux സിസ്റ്റത്തിൽ Node.js ആപ്ലിക്കേഷൻ മാനേജ്മെന്റിനായുള്ള നാല് പ്രോസസ് മാനേജർമാരെ ഞങ്ങൾ അവലോകനം ചെയ്യും.

1. PM2

PM2 ഒരു ഓപ്പൺ സോഴ്uസ്, അഡ്വാൻസ്uഡ്, ഫീച്ചർ സമ്പന്നമായ, ക്രോസ്-പ്ലാറ്റ്uഫോമാണ്, കൂടാതെ ഒരു ബിൽറ്റ്-ഇൻ ലോഡ് ബാലൻസറുള്ള Node.js-നുള്ള ഏറ്റവും ജനപ്രിയമായ പ്രൊഡക്ഷൻ-ലെവൽ പ്രോസസ് മാനേജരുമാണ്. ലോഞ്ച് ചെയ്ത എല്ലാ Nodejs പ്രക്രിയകളും ലിസ്റ്റുചെയ്യാനും നിരീക്ഷിക്കാനും പ്രവർത്തിക്കാനും ഇത് നിങ്ങളെ അനുവദിക്കുന്നു, കൂടാതെ ഇത് ക്ലസ്റ്റർ മോഡിനെ പിന്തുണയ്ക്കുന്നു.

ഇത് ആപ്ലിക്കേഷൻ മോണിറ്ററിംഗിനെ പിന്തുണയ്ക്കുന്നു: നിങ്ങളുടെ ആപ്ലിക്കേഷന്റെ റിസോഴ്സ് (മെമ്മറി, സിപിയു) ഉപയോഗം നിരീക്ഷിക്കുന്നതിനുള്ള ഒരു ലളിതമായ മാർഗം വാഗ്ദാനം ചെയ്യുന്നു. ഒരു പ്രോസസ്സ് ഫയൽ വഴി ഓരോ ആപ്ലിക്കേഷന്റെയും സ്വഭാവം ക്രമീകരിക്കാനും ട്യൂൺ ചെയ്യാനും നിങ്ങളെ അനുവദിക്കുന്നതിലൂടെ ഇത് നിങ്ങളുടെ പ്രോസസ് മാനേജ്മെന്റ് വർക്ക്ഫ്ലോയെ പിന്തുണയ്ക്കുന്നു (പിന്തുണയ്ക്കുന്ന ഫോർമാറ്റുകളിൽ Javascript, JSON, YAML എന്നിവ ഉൾപ്പെടുന്നു).

ഒരു പ്രൊഡക്ഷൻ പരിതസ്ഥിതിയിൽ ആപ്ലിക്കേഷൻ ലോഗുകൾ എപ്പോഴും പ്രധാനമാണ്, ഇക്കാര്യത്തിൽ PM2 നിങ്ങളുടെ ആപ്ലിക്കേഷന്റെ ലോഗുകൾ എളുപ്പത്തിൽ നിയന്ത്രിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു. ഇത് യഥാക്രമം ലോഗുകൾ കൈകാര്യം ചെയ്യുന്നതിനും പ്രദർശിപ്പിക്കുന്നതിനുമായി വ്യത്യസ്ത രീതികളും ഫോർമാറ്റുകളും നൽകുന്നു. നിങ്ങൾക്ക് ലോഗുകൾ തത്സമയം പ്രദർശിപ്പിക്കാനും ഫ്ലഷ് ചെയ്യാനും ആവശ്യമുള്ളപ്പോൾ വീണ്ടും ലോഡുചെയ്യാനും കഴിയും.

പ്രധാനമായും, പ്രതീക്ഷിക്കുന്നതോ അപ്രതീക്ഷിതമോ ആയ മെഷീൻ പുനരാരംഭിക്കുന്നതിലുടനീളം നിങ്ങളുടെ പ്രക്രിയകൾ യാന്ത്രികമായി ആരംഭിക്കുന്നതിന് നിങ്ങൾക്ക് കോൺഫിഗർ ചെയ്യാൻ കഴിയുന്ന സ്റ്റാർട്ടപ്പ് സ്ക്രിപ്റ്റുകളെ PM2 പിന്തുണയ്ക്കുന്നു. നിലവിലെ ഡയറക്uടറിയിലോ അതിന്റെ ഉപ ഡയറക്uടറികളിലോ ഒരു ഫയൽ പരിഷ്uക്കരിക്കുമ്പോൾ ഒരു ആപ്ലിക്കേഷന്റെ യാന്ത്രിക പുനരാരംഭത്തെയും ഇത് പിന്തുണയ്uക്കുന്നു.

കൂടാതെ, Nodejs പ്രോസസ്സ് മാനേജ്uമെന്റിനായി ഇഷ്uടാനുസൃത മൊഡ്യൂളുകൾ സൃഷ്uടിക്കാൻ ഉപയോക്താക്കളെ അനുവദിക്കുന്ന ഒരു മൊഡ്യൂൾ സിസ്റ്റവുമായാണ് PM2 വരുന്നത്. ഉദാഹരണത്തിന്, നിങ്ങൾക്ക് ലോഗ് റൊട്ടേഷൻ മൊഡ്യൂളിനോ ലോഡ് ബാലൻസിംഗിനോ വേണ്ടി ഒരു മൊഡ്യൂൾ സൃഷ്ടിക്കാൻ കഴിയും, കൂടാതെ മറ്റു പലതും.

അവസാനമായി പക്ഷേ, നിങ്ങൾ ഡോക്കർ കണ്ടെയ്uനറുകൾ ഉപയോഗിക്കുകയാണെങ്കിൽ, PM2 കണ്ടെയ്uനർ സംയോജനം അനുവദിക്കുന്നു, കൂടാതെ അത് പ്രോഗ്രാമാറ്റിക് ആയി ഉപയോഗിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്ന ഒരു API സിസ്റ്റം വാഗ്ദാനം ചെയ്യുന്നു.

PM2 പോലെ ബിൽറ്റ്-ഇൻ ലോഡ് ബാലൻസിംഗ് ഉള്ള Node.js ആപ്ലിക്കേഷനുകൾക്കായുള്ള ഒരു ഓപ്പൺ സോഴ്uസ്, അഡ്വാൻസ്ഡ് പ്രൊഡക്ഷൻ പ്രോസസ് മാനേജർ കൂടിയാണ് StrongLoop PM, ഇത് ഒരു കമാൻഡ്-ലൈൻ അല്ലെങ്കിൽ ഗ്രാഫിക്കൽ ഇന്റർഫേസ് വഴി ഉപയോഗിക്കാം.

ഇത് ആപ്ലിക്കേഷൻ മോണിറ്ററിംഗ് (ഇവന്റ് ലൂപ്പ് ടൈംസ്, സിപിയു, മെമ്മറി ഉപഭോഗം തുടങ്ങിയ പ്രകടന മെട്രിക്uസ് കാണുക), മൾട്ടി-ഹോസ്റ്റ് വിന്യാസം, ക്ലസ്റ്റർ മോഡ്, സീറോ-ഡൗൺടൈം ആപ്ലിക്കേഷൻ റീസ്റ്റാർട്ടുകളും അപ്uഗ്രേഡുകളും, പരാജയപ്പെടുമ്പോൾ സ്വയമേവയുള്ള പ്രോസസ്സ് പുനരാരംഭിക്കലും ലോഗ് അഗ്രഗേഷനും മാനേജ്മെന്റും പിന്തുണയ്ക്കുന്നു.

കൂടാതെ, ഇത് ഡോക്കർ പിന്തുണയോടെ അയയ്ക്കുന്നു, സ്റ്റാറ്റ്സ്ഡി-അനുയോജ്യമായ സെർവറുകളിലേക്ക് പ്രകടന അളവുകൾ എക്uസ്uപോർട്ടുചെയ്യാനും ഡാറ്റാഡോഗ്, ഗ്രാഫൈറ്റ്, സിസ്uലോഗ്, റോ ലോഗ് ഫയലുകൾ എന്നിവ പോലുള്ള മൂന്നാം കക്ഷി കൺസോളുകളിൽ കാണാനും നിങ്ങളെ അനുവദിക്കുന്നു.

3. എന്നേക്കും

തന്നിരിക്കുന്ന സ്uക്രിപ്റ്റ് തുടർച്ചയായി (എന്നേക്കും) പ്രവർത്തിപ്പിക്കുന്നതിനുള്ള ഒരു ഓപ്പൺ സോഴ്uസ്, ലളിതവും കോൺഫിഗർ ചെയ്യാവുന്നതുമായ കമാൻഡ്-ലൈൻ ഇന്റർഫേസ് ടൂളാണ് ഫോറെവർ. Node.js ആപ്പുകളുടെയും സ്ക്രിപ്റ്റുകളുടെയും ചെറിയ വിന്യാസങ്ങൾ പ്രവർത്തിപ്പിക്കുന്നതിന് ഇത് അനുയോജ്യമാണ്. നിങ്ങൾക്ക് രണ്ട് തരത്തിൽ എന്നേക്കും ഉപയോഗിക്കാൻ കഴിയും: കമാൻഡ്-ലൈൻ വഴി അല്ലെങ്കിൽ നിങ്ങളുടെ കോഡിൽ അത് ഉൾച്ചേർത്ത്.

Node.js പ്രോസസുകൾ നിയന്ത്രിക്കാൻ (ആരംഭിക്കുക, ലിസ്റ്റ് ചെയ്യുക, നിർത്തുക, എല്ലാം നിർത്തുക, പുനരാരംഭിക്കുക, എല്ലാം പുനരാരംഭിക്കുക മുതലായവ..) ഇത് നിങ്ങളെ അനുവദിക്കുന്നു, കൂടാതെ ഇത് ഒരു പ്രോസസ്സ് ഇല്ലാതാക്കുന്നതിനും സിഗ്നൽ ഇഷ്uടാനുസൃതമാക്കൽ ഇല്ലാതാക്കുന്നതിനും പിന്തുണയ്uക്കുന്നു. കൂടാതെ, നിങ്ങൾക്ക് കമാൻഡ് ലൈനിൽ നിന്ന് നേരിട്ട് കൈമാറാനോ JSON ഫയലിൽ കൈമാറാനോ കഴിയുന്ന നിരവധി ഉപയോഗ ഓപ്ഷനുകളെ ഇത് പിന്തുണയ്ക്കുന്നു.

4. SystemD - സേവനവും സിസ്റ്റം മാനേജറും

ലിനക്സിൽ, സിസ്റ്റം റിസോഴ്സുകളും ഫയൽ സിസ്റ്റത്തിന്റെ മറ്റ് ഘടകങ്ങളും പോലെയുള്ള സിസ്റ്റം റിസോഴ്സുകൾ കൈകാര്യം ചെയ്യുന്ന ഒരു ഡെമണാണ് Systemd. systemd നിയന്ത്രിക്കുന്ന ഏതൊരു ഉറവിടവും ഒരു യൂണിറ്റ് എന്നറിയപ്പെടുന്നു. സേവനം, ഉപകരണം, സോക്കറ്റ്, മൗണ്ട്, ടാർഗെറ്റ് തുടങ്ങി നിരവധി യൂണിറ്റുകൾ ഉൾപ്പെടെ വിവിധ തരം യൂണിറ്റുകൾ ഉണ്ട്.

Systemd ഒരു യൂണിറ്റ് ഫയൽ എന്നറിയപ്പെടുന്ന ഒരു കോൺഫിഗറേഷൻ ഫയൽ വഴി യൂണിറ്റുകൾ കൈകാര്യം ചെയ്യുന്നു. അതിനാൽ, മറ്റേതൊരു സിസ്റ്റം സേവനങ്ങളെയും പോലെ നിങ്ങളുടെ Node.js സെർവർ മാനേജുചെയ്യുന്നതിന്, നിങ്ങൾ അതിനായി ഒരു യൂണിറ്റ് ഫയൽ സൃഷ്ടിക്കേണ്ടതുണ്ട്, അത് ഈ സാഹചര്യത്തിൽ ഒരു സേവന ഫയലായിരിക്കും.

നിങ്ങളുടെ Node.js സെർവറിനായി ഒരു സർവീസ് ഫയൽ സൃഷ്ടിച്ചുകഴിഞ്ഞാൽ, നിങ്ങൾക്കത് ആരംഭിക്കാനും സിസ്റ്റം ബൂട്ട് സമയത്ത് സ്വയമേവ ആരംഭിക്കാനും പ്രാപ്uതമാക്കാനും അതിന്റെ നില പരിശോധിക്കാനും പുനരാരംഭിക്കാനും (നിർത്തി വീണ്ടും ആരംഭിക്കാനും) അല്ലെങ്കിൽ അതിന്റെ കോൺഫിഗറേഷൻ വീണ്ടും ലോഡുചെയ്യാനും കഴിയും. മറ്റേതെങ്കിലും systemd സേവനങ്ങൾ പോലെ ഇത് നിർത്തുക.

കൂടുതൽ വിവരങ്ങൾക്ക്, കാണുക: ഷെൽ സ്uക്രിപ്റ്റ് ഉപയോഗിച്ച് Systemd-ൽ പുതിയ സേവന യൂണിറ്റുകൾ എങ്ങനെ സൃഷ്uടിക്കുകയും പ്രവർത്തിപ്പിക്കുകയും ചെയ്യാം

ഒരു പ്രൊഡക്ഷൻ പരിതസ്ഥിതിയിൽ നിങ്ങളുടെ പ്രോജക്റ്റ് വിന്യസിക്കുന്നതിനുള്ള ഒരു ഉപയോഗപ്രദമായ ഉപകരണമാണ് Node.js പാക്കേജ് മാനേജർ. ഇത് ഒരു ആപ്ലിക്കേഷനെ എന്നെന്നേക്കുമായി നിലനിർത്തുകയും നിങ്ങൾക്ക് അത് എങ്ങനെ നിയന്ത്രിക്കാമെന്നത് ലളിതമാക്കുകയും ചെയ്യുന്നു. ഈ ലേഖനത്തിൽ, Node.js-നുള്ള നാല് പാക്കേജ് മാനേജർമാരെ ഞങ്ങൾ അവലോകനം ചെയ്തു. നിങ്ങൾക്ക് എന്തെങ്കിലും കൂട്ടിച്ചേർക്കലുകളോ ചോദ്യങ്ങളോ ചോദിക്കാനുണ്ടെങ്കിൽ, ഞങ്ങളെ ബന്ധപ്പെടുന്നതിന് ചുവടെയുള്ള ഫീഡ്uബാക്ക് ഫോം ഉപയോഗിക്കുക.