Я пытаюсь понять, как использовать VPS и как использовать имеющиеся у меня ресурсы.
Мне нужно запустить несколько веб-приложений, каждое в отдельном домене. Имею 1 выделенный сервер. Должен ли я разделить его на разные VPS и разместить каждое веб-приложение на VPS, или это неправильное использование того, для чего предназначен VPS?
Проблема, которую я вижу при использовании VPS, заключается в том, что серверные среды для каждого веб-приложения будут изолированы, но все веб-приложения используют аналогичную группу библиотек. В среде без vps все приложения используют общие библиотеки, но в vps мне пришлось бы скопировать эти библиотеки на каждый vps.
Это полностью зависит от трафика и узких мест. Программное обеспечение веб-сервера, такое как Apache, прекрасно способно мультиплексировать между сайтами (виртуальный хостинг) без каких-либо проблем на одном VPS, при условии, что у вас достаточно оперативной памяти и процессора для его обработки.
VPS перегружен? Если это так, вы можете рассмотреть возможность перемещения сайтов с наибольшим трафиком на их собственные виртуальные машины. В противном случае из-за отсутствия проблем с безопасностью запуск их всех на одном не должен вызывать проблем.
Если вас беспокоит синхронизация кода (вы упомянули библиотеки) в производственных системах, вы можете изучить возможность использования системы управления версиями, а затем использовать сценарий автоматического развертывания, чтобы поддерживать актуальность кода на машинах.
Если вы размещаете веб-приложения для разных клиентов, я бы предложил использовать VPS для размещения разных приложений. Это разделило бы данные о клиентах, а также не позволило бы одному клиенту использовать все ресурсы.
Если вы выделяете статический размер памяти для каждого VPS (например, 512 МБ), помните, что разные приложения не могут поделиться этим. Некоторые гипервизоры виртуализации могут обрабатывать динамическое выделение памяти, но это может быть ненадежно.
Я думаю, вам следует оценить стоимость памяти, настройки и степень вашего доверия коду своих веб-приложений. Если все они находятся на одном и том же первичном сервере, у вас будет гораздо меньше накладных расходов (работает только одно ядро, веб-сервер и поддерживающие приложения).
Если у вас бесконечные ресурсы, виртуальные машины могут дать вам массу гибкости, но в противном случае вы значительно усложните свою настройку (вы должны создавать и управлять X-серверами вместо одного).
Нет ничего плохого в том, чтобы попробовать оба варианта и сравнить производительность + использование ресурсов.