כמה עוד 13.08.2021:42

שאלה לגבי עקרונות Best Practice של להעלות שרת של Node לפרודקשן

אם אני עובד עם nodemon בזמן הפיתוח, יש עניין שהקוד שמעלה את השרת בסביבות productio יהיה עם הפקודה node index.js ולא עם nodemon?

אני משחק בינתיים ברמה של פרויקטיים אישיים ומבחני בית, וסתם זאת שאלה שעלתה לי לראש..

תודה, אלון
King_Cobra 13.08.2022:37
1. הסבר שמסביר יפה את העניין למה לא לא להריץ ישירות את nodejs אלא דרך Nodemon בתגובה להודעה מספר 0
או supervisor בנוסף הם מזכירים שם גם משהו שנקרא pm2, הסיבה שהם רושמים שלהריץ את nodejs ישירות זה לא טוב, היא שאם קרה שינוי בשרת אז יהיה צורך להוריד את השרת ולהעלות אותו מחדש, לעומת זאת אם אתה משתמש ב nodemon או supervisor אז ברגע שיש שינוי השרת יאתחל את עצמו לבד עם השינוי החדש. לגבי ה pm2 הם נותנים דוגמה שאתה פונה ל endpoint ומבקש קובץ שלא קיים והדבר עלול להקריס את השרת שלך אז ה pm2 יריץ את השרת מחדש במקרה כזה.

https://www.freecodecamp.org/news/y?...
כמה עוד 15.08.2021:49
2. תודה רבה בתגובה להודעה מספר 1
CaTz 18.08.2020:43
3. לא מומלץ להריץ nodemon בסביבת prod כיוון שזה לא הכלי בתגובה להודעה מספר 0
Nodemon נועד לרפרש את הפרוסס של הנוד כשמשתנה הקוד.
בניגוד למה שנכתב למעלה, deploy של קוד חדש בכל מקרה מצריך להוריד ולעלות את השרת, גם אם זה בעזרת nodemon. הדבר יגרום לdowntime.

בשביל זה המציאו process managers כדוגמת pm2, שמה שהם עושים, זה לנהל את תהליכי ה-node.
pm2 שאיתו אני משתמש, מאפשר לך להריץ כמה instances של אותה אפליקציה בעזרת cluster, מה שמאפשר לי בזמן deploy, לעלות את הקוד, ואז בעזרת pm2 לעשות reload.
הוא יודע לעשות את ה-reload בצורה שתיהיה zero-downtime, ע"י כך שהוא מוריד תהליך אחד, אחרי שהוא עלה, מוריד את השני. (בשביל זה צריך להריץ לפחות 2 תהליכים של אותה האפליקציה).
בנוסף לכך, כיוון שהאפליקציה רצה על 2 תהליכים (אפשר להריץ כמה שרוצים), זה בעצם מאפשר לך לעשות "load balance" בין תהליכים. (במידה והשרת שלך מרובה ליבות / מעבדים).
כמה עוד 20.08.2020:24
4. תודה רבה! למדתי משהו חדש בתגובה להודעה מספר 3
@CaTz@
hank_mudy 21.08.2017:41
5. הסבר מעולה בתגובה להודעה מספר 3
תפתתפת 06.10.2022:52
6. אצלי בארגון העלתי את זה ב DOCKER IMAGE על מכונה. בתגובה להודעה מספר 0
OmerBa 08.10.2011:33
7. רק docker בתגובה להודעה מספר 0
אוהב לתכנת 18.11.2000:31
8. Nodemon נועד לפיתוח בעיקר, pm2 זה מה שאתה צריך בתגובה להודעה מספר 0
העבר לפורום אחר
העבר לפורום:
סיבה:
תגובה חדשה
כותרת:
תוכן:
סמיילים:
הצג
עריכת אשכול
כותרת:
תוכן:
סמיילים:
הצג