Планирование серверной инфраструктуры при размещении дублированного веб-продукта на нескольких серверах - PullRequest
0 голосов
/ 06 июня 2011

У нас есть продукт для веб-приложений, который мы продаем компаниям, размещенным на наших серверах. Продукт содержит несколько веб-приложений, служб Windows и базы данных SQL-сервера. Сейчас у нас есть только один клиент, который использует наш продукт. У нас есть два сервера - один для веб-приложений и сервисов, а другой для БД.

Чтобы добавить продукт к другому клиенту, нам нужно «продублировать» все приложения и базу данных и запустить их отдельно.

Поскольку мы начали расширяться, и некоторым компаниям потребуется больше мощности серверов, чем другим, мне нужно спланировать инфраструктуру серверов.

Наличие двух серверов для каждого клиента звучит смешно. Стоимость хостинга будет огромной. Что будет, когда у меня будет 10 клиентов? И, вероятно, некоторые серверы будут потреблять больше энергии, чем другие, в результате чего серверы будут использовать 30% своей емкости, а другие - 70%.

Одна вещь, которая меня действительно волнует, - это отделение БД от каждого продукта, поэтому в случае компрометации сервера риску подвергнется только один дБ.

Итак ... я думал о виртуальных машинах ... Звучит правильно? Нужны ли два супер-сервера для хранения экземпляров виртуальных машин? (один для сети и другой для БД?) Как насчет балансировки нагрузки и т. Д.? Потребуется ли больше времени на обслуживание только потому, что я использую виртуальные машины? Есть какие-нибудь рекомендации по аппаратному обеспечению?

Любая помощь будет оценена

Большое спасибо

1 Ответ

1 голос
/ 06 июня 2011

Виртуальные машины, безусловно, самый безопасный способ разделения клиентов, который позволит вам гибко распределять определенный процент ресурсов между конкретными клиентами.

Однако использование отдельных процессов на одном и том же физическом компьютере будет работать лучше (но не всегда значительно) и позволит более динамично использовать ресурсы (т. Е. Если один всплеск возрастает, он будет использовать ресурсы, которые ему необходимы). Эта настройка не позволит вам так же легко управлять распределением ресурсов. Вам также нужно будет создать свои собственные инструменты мониторинга, чтобы увидеть и проанализировать, какие процессы (клиенты) используют какие ресурсы (добавление в perfmon).

Использование отдельных процессов также опасно, если ваше приложение не было разработано для этого. Везде, где приложение кэширует данные в файловой системе или получает доступ к чему-либо, кроме памяти, и базу данных необходимо тщательно очистить, чтобы убедиться, что данные от клиентов не смешаны и не переданы.

Управление отдельными виртуальными машинами - это больше работы, каждая из которых похожа на собственный компьютер. Таким образом, вы должны управлять всеми виртуальными машинами и физической машиной.

Возможно, вы захотите рассмотреть хостинг в более динамичной среде, такой как Amazon AWS или Microsoft Azure, которая позволит вам при необходимости более легко увеличивать / уменьшать, чем виртуальная машина на традиционном хосте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...