Nodemon נועד לרפרש את הפרוסס של הנוד כשמשתנה הקוד.
בניגוד למה שנכתב למעלה, deploy של קוד חדש בכל מקרה מצריך להוריד ולעלות את השרת, גם אם זה בעזרת nodemon. הדבר יגרום לdowntime.בשביל זה המציאו process managers כדוגמת pm2, שמה שהם עושים, זה לנהל את תהליכי ה-node.
pm2 שאיתו אני משתמש, מאפשר לך להריץ כמה instances של אותה אפליקציה בעזרת cluster, מה שמאפשר לי בזמן deploy, לעלות את הקוד, ואז בעזרת pm2 לעשות reload.
הוא יודע לעשות את ה-reload בצורה שתיהיה zero-downtime, ע"י כך שהוא מוריד תהליך אחד, אחרי שהוא עלה, מוריד את השני. (בשביל זה צריך להריץ לפחות 2 תהליכים של אותה האפליקציה).
בנוסף לכך, כיוון שהאפליקציה רצה על 2 תהליכים (אפשר להריץ כמה שרוצים), זה בעצם מאפשר לך לעשות "load balance" בין תהליכים. (במידה והשרת שלך מרובה ליבות / מעבדים).