Развертывание Развертывание веб-приложения в веб-ферме - PullRequest
0 голосов
/ 06 сентября 2011

У нас есть веб-приложение asp.net с сервером sql, которое развернуто на ферме серверов с объединенными базами данных. Мы используем хранимые процедуры (в отличие от подготовленных операторов SQL) и сеансы inproc. В рамках достижения высокой доступности (по крайней мере для пакетов обновления с контролируемым набором изменений) мы намерены использовать развертывание в ферме, что означает, что мы делаем это:

  1. Завершение работы группы серверов
  2. Развернуть приложение на этих серверах
  3. Откройте эти серверы
  4. Закройте другую группу. Повторите 1-3 для всех групп.

Хотя это может означать, что некоторые пользователи будут отключены, приложение все еще доступно, и страница поддержки не требуется.

Легкая часть заключается в развертывании веб-приложения, но более сложная часть заключается в том, что в хранимой процедуре есть изменения (например, добавлен новый параметр). Будет момент, когда потребуется обе версии хранимой процедуры (существующая и новая развертываемая).

Мы рассмотрели 4 варианта хранимых процедур:

  1. Не используйте скользящие развертывания, если в выпуске есть изменение хранимой процедуры
  2. Если в выпуске используется непрерывное развертывание, разрешены только новые хранимые процедуры, даже если это означает дублирование кода
  3. Ввести версионность хранимых процедур и некоторые компоненты инфраструктуры на уровне приложения для автоматического добавления номера версии к вызываемому sproc.
  4. Перезаписать существующую хранимую процедуру и разрешить некоторые вызовы хранимой процедуры.

У всех подходов есть свои плюсы и минусы, и эти 3) являются наиболее жизнеспособными, но и наиболее сложными. Какой из них вы бы порекомендовали? Есть ли какие-либо хитрости в SQL Server для обработки этого сценария? Есть ли другие подходы?

1 Ответ

0 голосов
/ 08 сентября 2011

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

Выдержка из ссылки:

Улучшает доступность производственной базы данных во время обновлений.

Чтобы минимизировать время простоя для зеркальной базы данных, вы можете последовательно обновить экземпляры SQL Server, которыеучаствуют в сеансе зеркального отображения базы данных.Это повлечет за собой время простоя только одного аварийного переключения.Эта форма апгрейда называется скользящим апгрейдом.

...