Можно ли развернуть корпоративное приложение ASP.NET и изменения схемы SQL с нулевым временем простоя?

У нас есть огромное веб-приложение ASP.NET, которое необходимо развернуть в LIVE с нулевым или почти нулевым временем простоя. Позвольте мне указать, что я прочитал следующий вопрос / ответы , но, к сожалению, он не решает наших проблем, поскольку наша архитектура немного сложнее.

Допустим, в настоящее время у нас есть два IIS серверы, отвечающие на запросы, и оба подключены к одному серверу MSSQL. Решение кажется простым, но это не из-за серьезных изменений схемы, которые нам время от времени приходится вносить. Из-за огромного размера простое резервное копирование базы данных занимает около 8 минут, что стало неприемлемым, но это необходимо перед каждым новым развертыванием по соображениям безопасности.

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

В настоящее время лучшая идея, которую мы придумали, - это покупка другого SQL-сервера, который бы быть настроенным как реплика исходной БД. Из балансировщика нагрузки мы направляем весь новый трафик на один из двух веб-серверов IIS. Когда второй веб-сервер свободен от запущенных сеансов, мы можем развернуть новый код. Теперь самое сложное. На этом этапе мы перейдем в автономный режим с веб-сайтом, отключим репликацию между двумя SQL-серверами, чтобы у нас был моментальный снимок базы данных в согласованном состоянии (экономит 7,5 из 8 минут). Наконец, мы обновим схему базы данных на главном сервере SQL и направим весь трафик через обновленный веб-сервер, пока мы обновляем второй веб-сервер до новой версии.

Пожалуйста, поделитесь своими мыслями по поводу этого решения. Можем ли мы каким-то образом избавиться от необходимости отключаться от веб-сайта? Как компании, работающие на синем чипе с веб-приложениями mammuth, развертывают их?

Любая идея или предложение приветствуются! Покупка нового оборудования или программного обеспечения на самом деле не проблема - мы просто упускаем самую важную идею. Заранее благодарим за помощь!

Редактировать 1 (2010.01.12): 1. Резервное копирование базы данных
2а. Развертывание веб-сайта
2b. Обновление схемы базы данных
3. Перейти на обновленный веб-сайт
4 (необязательно): простой способ вернуться к старому сайту, если что-то пойдет не так.

19
задан Community 23 May 2017 в 12:08
поделиться