Настройка аварийного восстановления для многоуровневого веб-приложения на основе IIS

Программные средства являются механизмом обеспечения эффективности бизнес-операций в организации. Разные веб-приложения используются для различных целей. Некоторые приложения, например приложения обработки платежных ведомостей, финансовые приложения и сайты для обслуживания клиентов, очень важны для деятельности организации. Чтобы избежать потери производительности, необходимо постоянно поддерживать их работу. Более того, постоянная доступность этих приложений позволяет сохранить репутацию организации.

Важнейшие веб-приложения обычно настраиваются как многоуровневые приложения с поддержкой Интернета, базы данных и приложений на различных уровнях. Кроме того, что они распределяются по различным уровням, эти приложения могут также использовать несколько серверов на каждом уровне для балансировки трафика. Более того, сопоставления между различными уровнями и на веб-сервере могут основываться на статических IP-адресах. При отработке отказа некоторые из этих сопоставлений потребуется обновить, особенно если на веб-сервере настроено несколько веб-сайтов. Если веб-приложения используют TLS, необходимо обновить привязки сертификатов.

Традиционные методы восстановления, не основанные на репликации, включают в себя архивацию различных файлов конфигурации, параметров реестра, привязок, настраиваемых компонентов (COM или .NET), содержимого и сертификатов. Файлы можно восстановить с помощью выполняемых вручную действий. Традиционные методы восстановления на основе резервного копирования и восстановления файлов вручную весьма трудоемки, могут приводить к ошибкам и не являются масштабируемыми. Например, вы можете забыть об архивации сертификатов. После отработки отказа у вас не останется другого выбора, кроме как приобрести новые сертификаты для сервера.

Хорошее решение аварийного восстановления поддерживает моделирование планов восстановления для сложных архитектур приложений. Вы также должны иметь возможность добавить настраиваемые действия к планам восстановления для обработки сопоставлений приложений между уровнями. В случае аварии сопоставление приложений обеспечивает надежное решение "одним щелчком", позволяющее уменьшить RTO.

В этой статье описывается защита веб-приложения на основе служб IIS с помощью Azure Site Recovery. В ней рассматриваются передовые методы репликации трехуровневого веб-приложения на основе IIS в Azure, выполнение отработки аварийного восстановления и выполнение отработки отказа приложения в Azure.

Необходимые компоненты

Прежде чем начать, необходимо знать, как выполнять следующие задачи:

Модели развертывания

Веб-приложение на основе IIS обычно следует одной из представленных ниже моделей развертывания.

Модель развертывания 1

Веб-ферма на основе IIS с маршрутизацией запросов приложений, сервером IIS и SQL Server.

Diagram of an IIS-based web farm that has three tiers

Модель развертывания 2

Веб-ферма на основе IIS с маршрутизацией запросов приложений, сервером IIS, сервером приложений и SQL Server.

Diagram of an IIS-based web farm that has four tiers

Поддержка Site Recovery

Для примеров этой статьи использовались виртуальные машины VMware с IIS 7.5 под управлением Windows Server 2012 R2 Enterprise. Так как репликация Site Recovery не зависит от приложения, описанные в этой статье рекомендации подходят для представленных ниже сценариев, а также для различных версий IIS.

Исходный и целевой объект

Сценарий На дополнительный сайт В Azure
Hyper-V Да Да
VMware Да Да
Физический сервер No Да
Azure Неприменимо Да

Репликация виртуальных машин

Чтобы реплицировать все виртуальные машины веб-фермы IIS в Azure, следуйте рекомендациям статьи Тестовая отработка отказа в Azure с помощью Site Recovery.

Если используется статический IP-адрес, вы можете указать нужный IP-адрес для виртуальной машины. Чтобы задать IP-адрес, откройте раздел Network settings (Параметры сети) >TARGET IP (Целевой IP-адрес).

Screenshot that shows how to set the target IP in the Site Recovery Network pane

Создание плана восстановления

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

Добавление виртуальных машин в группы отработки отказа

Обычное многоуровневое веб-приложение IIS содержит следующие компоненты:

  • уровень базы данных с виртуальными машинами SQL;
  • веб-уровень, включающий сервер IIS и уровень приложения.

Добавьте виртуальные машины в разные группы в соответствии с уровнем.

  1. Создайте план восстановления. Добавьте виртуальные машины уровня базы данных в группу 1, чтобы они были выключены последними, а начинали работу первыми.
  2. Добавьте виртуальные машины уровня приложения в группу 2, чтобы они начинали работу сразу после включения уровня базы данных.
  3. Добавьте виртуальные машины веб-уровня в группу 3, чтобы они начинали работу сразу после включения уровня приложения.
  4. Добавьте виртуальные машины с балансировкой нагрузки в группу 4, чтобы они начинали работу сразу после включения веб-уровня.

Дополнительные сведения см. в разделе Настройка плана восстановления.

Добавление скрипта в план восстановления

Чтобы настроить правильную работу веб-фермы IIS, вам может потребоваться выполнить некоторые операции после отработки отказа виртуальных машин Azure или во время тестовой отработки отказа. Вы можете настроить автоматическое выполнение некоторых операций после отработки отказа. Например, можно обновить записи DNS, изменить привязку сайта или изменить строку подключения, добавив соответствующие скрипты в план восстановления. Сведения о настройке автоматизированных заданий с помощью скрипта см. в статье Добавление скрипта VMM в план восстановления.

Обновление DNS

Если в DNS настроено динамическое обновление, виртуальные машины обычно обновляют IP-адрес сразу после запуска. Если вы хотите добавить явное действие для обновления DNS (обновление IP-адреса виртуальных машин), добавьте скрипт для обновления IP-адреса в DNS как завершающее действие после отработки отказа в группах плана восстановления.

Строка подключения в файле web.config приложения

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

Если строка подключения ссылается на виртуальную машину базы данных с помощью IP-адреса, ее необходимо обновить после отработки отказа. Например, приведенная ниже строка подключения указывает на базу данных с IP-адресом 127.0.1.2.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="ConnStringDb1" connectionString="Data Source= 127.0.1.2\SqlExpress; Initial Catalog=TestDB1;Integrated Security=False;" />
</connectionStrings>
</configuration>

Чтобы обновить строку подключения на веб-уровне, добавьте скрипт обновления для подключения IIS в группу 3 в плане восстановления.

Привязки сайта для приложения

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

Примечание.

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

Screenshot that shows setting the TLS/SSL binding

Если с сайтом связан IP-адрес, обновите все привязки сайта новым IP-адресом. Чтобы изменить привязки сайта, добавьте скрипт обновления веб-уровня IIS в группу 3 в плане восстановления.

Обновление IP-адреса подсистемы балансировки нагрузки

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

Привязка TLS/SSL-сертификата для подключения HTTPS

С веб-сайтами можно связать TLS/SSL-сертификат, который обеспечивает безопасный обмен данными между веб-сервером и браузером пользователя. Если у веб-сайта есть HTTPS-подключение, а также HTTPS-привязка сайта к IP-адресу сервера IIS со связанным TLS/SSL-сертификатом, необходимо добавить новую привязку сайта для сертификата с IP-адресом виртуальной машины IIS после отработки отказа.

TLS/SSL-сертификат можно выдать для следующих компонентов:

  • Полного доменного имени веб-сайта.
  • Имени сервера.
  • Группового сертификата для доменного имени.
  • IP-адреса. Если TLS/SSL-сертификат сформирован для IP-адреса сервера IIS, другой TLS/SSL-сертификат нужно создать для IP-адреса сервера IIS на сайте Azure. Необходимо создать дополнительную привязку TLS для этого сертификата. Таким образом, не рекомендуем использовать TLS/SSL-сертификат для IP-адреса. Этот вариант используется не часто, а вскоре он будет объявлен устаревшим в соответствии с изменениями на форуме CA/Browser.

Обновление зависимости между веб-уровнем и уровнем приложения

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

Запуск тестовой отработки отказа

  1. На портале Azure выберите хранилище служб восстановления.
  2. Выберите план восстановления, созданный для веб-фермы IIS.
  3. Выберите Тестовая отработка отказа.
  4. Чтобы запустить тестовую отработку отказа, выберите точку восстановления и виртуальную сеть Azure.
  5. После запуска вторичной среды можно выполнить проверку.
  6. После завершения проверки выберите Validations complete (Проверка завершена), чтобы очистить среду тестовой отработки отказа.

Дополнительные сведения см. в статье Тестовая отработка отказа в Azure с помощью Site Recovery.

Запуск отработки отказа

  1. На портале Azure выберите хранилище служб восстановления.
  2. Выберите план восстановления, созданный для веб-фермы IIS.
  3. Выберите Отработка отказа.
  4. Чтобы запустить отработку отказа, выберите точку восстановления.

Дополнительные сведения см. в статье Отработка отказа в Site Recovery.

Следующие шаги