Я только начинающий, но вот что я знаю:
1.
Raven и хранение всего в
Sentry. Для себя я проще делаю и перенаправляю вывод внутри скрипта в лог-файл.
2. Используется одно из главных преимуществ MongoDB -
delayed slave.
3. Еще не сталкивался, но могу могу предположить, что поедание памяти можно решить только двумя путями - написанием качественного кода и перезапуском приложений, когда на сервере недостаточно памяти. Естественно предуматривать соответствующую архитектуру, например два одновременно работающих Node.js инстанса и
балансировщик между ними. Перезапускать их поочередно. С монгой тут примерно тоже самое, можно сделать кластер на mongos. Хорошие курсы
тут. Из практики достаточно одного хорошего инстанса на 32-64GB RAM если ваша база занимает 20 GB. Монга действительно жрет память ведрами. Но и использует ее эффективно. Многие проблемы решаются благоразумным индексированием и пониманием того, что для быстрой работы все данные с индексами должны помещаться в память.
4. Перезапуск делается
примерно так. Плюс еще есть демон
monit, который мониторит запущеные процессы. Еще, если погуглите, то найдете 1001
способ Continuous Integration. Это когда деплой и рестарт серверов происходит автоматически.
Полагаю, что профи меня поправят.