Привет, сообщество ServerFault!
Обычно я скрываю / участвую в StackOverflow, однако недавно я играл с серверной облачной службой и был бы признателен за ваши мысли.
Я создаю веб-приложения (обычно от малого до среднего размера с низким трафиком), и в настоящее время у меня есть 3 виртуальные машины, работающие на Debian и обслуживающие веб-файлы через Apache и данные с MySQL. Каждый VPS обслуживает от 10 до 30 сайтов; несколько пользовательских приложений, несколько Wordpress и несколько статических HTML-сайтов.
Благодаря новому облачному сервису, с которым я играю (в настоящее время он находится в стадии бета-тестирования, поэтому он бесплатный!), У меня есть возможность запускать / останавливать и масштабировать серверы по своему усмотрению. Первый эксперимент в моем списке - заменить Apache на Nginx, и пока все идет хорошо. Однако я начинаю задаваться вопросом, будет ли какая-то польза от того, что один сервер будет «оптимизирован» для обслуживания файлов через Nginx и хранения медиафайлов, а затем другой сервер будет «оптимизирован» для запуска и обслуживания данных через MySQL.
Я не знаю, много ли вы могли бы сделать для оптимизации каждого сервера для веб-хостинга или хостинга баз данных, или есть ли какие-то другие большие преимущества в разделении служб? Буду признателен за любые мысли / комментарии по этому поводу и любые другие варианты, которые я мог пропустить.
Примечание: Используя облачный сервис, у меня есть возможность полностью настроить серверы на лету, включая память, дисковое пространство и скорость диска (SATA, SAS, SSD).
В общем-то
Если вы можете указать любой тип сервера, то я не вижу причин, по которым вы не могли бы создавать серверы с высокими техническими характеристиками и запускать как DB, так и HTTPD на одном компьютере, хотя, помимо затрат, я думаю, что это основные преимущества и недостатки:
Преимущества
Недостатки
Неуверенный в том, где подходит стоимость (что дороже).
Хотя это и не относится к разделению серверов, одна вещь, которая может быть полезна, - это разделение веб-контента на статическое и динамическое, чтобы уменьшить накладные расходы на обработку статического контента (нет необходимости загружать PHP, если вы просто отправляете статический файл).
Личная заметка: Мы запускаем VMware как в центре обработки данных (аренда блейдов), так и локально. Я предпочитаю держать DB / HTTPD отдельно. У нас есть отдельные виртуальные машины DB / HTTPD в центре обработки данных, но не локально. Я предпочитаю первое, и хотя у меня нет статистики, виртуальные машины в центре обработки данных работают с гораздо более низкими характеристиками, чем наши комбинированные виртуальные машины HTTPD / DB локально с меньшими проблемами производительности.