Развертывание Asp.net. Как перейти на рабочий сервер - PullRequest
0 голосов
/ 04 февраля 2010

Представьте, что у нас есть сложное решение asp.net: MSSQL + ASP.NET MVC + веб-формы ASP.NET + служба WCF, размещенная в IIS.

Раз в неделю решение должно быть прозрачно развернуто на одном производственном сервере для пользователей. Развертывание может включать изменения в схеме базы данных, незначительную реконфигурацию IIS, замену файлов. Развертывание требует времени и может повлиять на время безотказной работы.

Как я могу выполнить развертывание без прерывания работы пользователей или минимизировать время простоя? Каковы методы и лучшие практики?

(например, переключение промежуточных / производственных сред)

Ответы [ 3 ]

0 голосов
/ 04 февраля 2010
  • Посмотрите, когда системой пользуется наименьшее количество людей, и постарайтесь выполнить обновления.
  • Если вы просто применяете обновления к серверу БД, вам действительно нужно беспокоиться о резервном копировании, если что-то не получится, не нужно отключать его от сети.
  • Вы сможете загружать новые страницы без перерыва для пользователей.
  • Максимально автоматизируйте это, чтобы уменьшить риск человеческой ошибки, я бы порекомендовал Wix для этого, как он может
0 голосов
/ 04 февраля 2010

Я не могу предложить полное решение, но несколько моментов, которые «сработали для меня»:

  • Разделите обновления вашей БД на (а) изменения, которые имеют обратнуюсовместимые и (б) критические изменения.Таким образом, вы можете запустить часть (а) (добавить поля, добавить таблицы, добавить индексы, ...), пока старая версия программного обеспечения еще работает.Для части (b) (изменение типов полей, преобразование данных, ...) я не думаю, что можно избежать простоев.Старайтесь, чтобы большинство изменений в БД не прерывались.

  • Объявите время простоя , чтобы ваши пользователи могли к нему адаптироваться.Во время обновления используйте функцию app_offline.htm , чтобы убедиться, что ваши пользователи увидят приятное сообщение об ошибке, объясняющее ситуацию.Это также гарантирует, что ваше приложение будет перезагружено.Обновление веб-приложения без простоев на месте без перезагрузки (т. Е. «Просто замените файлы») может привести к странным ошибкам.

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

0 голосов
/ 04 февраля 2010

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

...