В настоящее время у меня есть 2 сервера Debian (VPS с 4 ГБ памяти), и я размещаю множество веб-сайтов разной важности: некоторые из них являются производственными, а другие - демонстрационными / промежуточными / тестовыми. Примерно 15-20 сайтов, один из которых скоро будет иметь приличную посещаемость.
На данный момент мои производственные сайты развернуты на одном сервере, а демонстрационные / промежуточные / тестовые - на другом. Оба сервера работают под управлением Apache и MySQL.
Я прочитал и понял большинство преимуществ отделения базы данных (MySQL) от веб-сервера (Apache, но, вероятно, собираюсь перейти на nginx). На данный момент у меня нет проблем с производительностью, но мне нужно перемещать вещи с одного сервера на другой, и мне было интересно, не пришло ли время реорганизовать данные на обоих серверах. На данный момент у меня нет денег на добавление дополнительных серверов.
Мой вопрос: лучше ли разместить все мои веб-сайты на одном из двух серверов и их соответствующие базы данных на другом, учитывая, что они разделены между производственными и демонстрационными / промежуточными / тестовыми приложениями, или мне лучше сохранить разделение между производственные и непроизводственные приложения (с учетом факторов безопасности / производительности)?
В идеале я бы переместил все непроизводственные приложения на третий сервер, но на данный момент это невозможно.
Хотя здесь был принят ответ, я категорически не согласен с тем, что это правильный путь.
Если у вас нет сложных требований к развертыванию и / или тестированию мощности, тогда зачем вы платите за сервер для размещения непроизводственного оборудования? Все, что вам нужно, это локальная виртуальная машина (реализовать пропускную способность, задержку и потерю пакетов на прокси-сервере - тривиальная задача).
Даже VP падают. Если вам нужна высокая доступность, обе системы должны быть симметричными. Предположим, у вас есть вероятность отказа узла 0,01%. Тогда вероятность потерять ваш сервис в его нынешнем виде составляет 0,01%. Разделите службу по вертикали (http и mysql), тогда ваша вероятность полной потери службы составит 0,01 + 0,01% - вдвое больше, чем было. OTOH с симметричной конфигурацией вероятность полной потери обслуживания составляет 0,01% * 0,01% = 0,0000001%, и вы получаете преимущества большей производительности и емкости, а также простой способ реализации A / B-тестирования.
Как вы реализуете кластеризацию mysql и балансировку трафика - это более сложный вопрос, но его можно решить без добавления дополнительного программного обеспечения / оборудования.
Лично я был бы склонен оставить установку как есть. (1 производственный сервер и 1 тестовый / демонстрационный / промежуточный сервер). Не вижу преимуществ в его изменении. И я не вижу недостатков в том, чтобы оставить его нетронутым. Вы планируете третий сервер, который в любом случае заставит вас изменить установку. Если производительность БД вызывает беспокойство, подумайте о кластеризации MySQL на обоих серверах. Простая работа по настройке ведущий / ведомый делает свое дело. Таким образом, вы можете использовать один или оба узла для всех запросов выбора, а другой - для всех запросов редактирования (вставки, обновления и т. Д.). Таким образом распределяется нагрузка.