Настройка аварийного восстановления для многоуровневого веб-приложения на основе IISSet up disaster recovery for a multi-tier IIS-based web application

Программные средства являются механизмом обеспечения эффективности бизнес-операций в организации.Application software is the engine of business productivity in an organization. Разные веб-приложения используются для различных целей.Various web applications can serve different purposes in an organization. Некоторые приложения, например приложения обработки платежных ведомостей, финансовые приложения и сайты для обслуживания клиентов, очень важны для деятельности организации.Some applications, like applications used for payroll processing, financial applications, and customer-facing websites, might be critical to an organization. Чтобы избежать потери производительности, необходимо постоянно поддерживать их работу.To prevent loss of productivity, it's important for the organization to have these applications continuously up and running. Более того, постоянная доступность этих приложений позволяет сохранить репутацию организации.More importantly, having these applications consistently available can help prevent damage to the brand or image of the organization.

Важнейшие веб-приложения обычно настраиваются как многоуровневые приложения с поддержкой Интернета, базы данных и приложений на различных уровнях.Critical web applications are typically set up as multi-tier applications: the web, database, and application are on different tiers. Кроме того, что они распределяются по различным уровням, эти приложения могут также использовать несколько серверов на каждом уровне для балансировки трафика.In addition to being spread across various tiers, the applications might also use multiple servers in each tier to load balance the traffic. Более того, сопоставления между различными уровнями и на веб-сервере могут основываться на статических IP-адресах.Moreover, the mappings between various tiers and on the web server might be based on static IP addresses. При отработке отказа некоторые из этих сопоставлений потребуется обновить, особенно если на веб-сервере настроено несколько веб-сайтов.On failover, some of these mappings need to be updated, especially if multiple websites are configured on the web server. Если веб-приложения используют SSL, необходимо обновить привязки сертификатов.If web applications use SSL, you must update certificate bindings.

Традиционные методы восстановления, не основанные на репликации, включают в себя архивацию различных файлов конфигурации, параметров реестра, привязок, настраиваемых компонентов (COM или .NET), содержимого и сертификатов.Traditional recovery methods that aren't based on replication involve backing up various configuration files, registry settings, bindings, custom components (COM or .NET), content, and certificates. Файлы можно восстановить с помощью выполняемых вручную действий.Files are recovered through a set of manual steps. Традиционные методы восстановления на основе резервного копирования и восстановления файлов вручную весьма трудоемки, могут приводить к ошибкам и не являются масштабируемыми.The traditional recovery methods of backing up and manually recovering files are cumbersome, error-prone, and not scalable. Например, вы можете забыть об архивации сертификатов.For example, you might easily forget to back up certificates. После отработки отказа у вас не останется другого выбора, кроме как приобрести новые сертификаты для сервера.After failover, you're left with no choice but to buy new certificates for the server.

Хорошее решение аварийного восстановления поддерживает моделирование планов восстановления для сложных архитектур приложений.A good disaster recovery solution supports modeling recovery plans for complex application architectures. Вы также должны иметь возможность добавить настраиваемые действия к планам восстановления для обработки сопоставлений приложений между уровнями.You should also be able to add customized steps to the recovery plan to handle application mappings between tiers. В случае аварии сопоставление приложений обеспечивает надежное решение "одним щелчком", позволяющее уменьшить RTO.If there is a disaster, application mappings provide a single-click, sure-shot solution that helps lead to a lower RTO.

В этой статье описывается защита веб-приложения на основе служб IIS с помощью Azure Site Recovery.This article describes how to protect a web application that's based on Internet Information Services (IIS) by using Azure Site Recovery. В ней рассматриваются передовые методы репликации трехуровневого веб-приложения на основе IIS в Azure, выполнение отработки аварийного восстановления и выполнение отработки отказа приложения в Azure.The article covers best practices for replicating a three-tier, IIS-based web application to Azure, how to do a disaster recovery drill, and how to fail over the application to Azure.

Предварительные требованияPrerequisites

Прежде чем начать, необходимо знать, как выполнять следующие задачи:Before you begin, ensure that you know how to do the following tasks:

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

Веб-приложение на основе IIS обычно следует одной из представленных ниже моделей развертывания.An IIS-based web application typically follows one of the following deployment patterns:

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

Веб-ферма на основе IIS с маршрутизацией запросов приложений, сервером IIS и SQL Server.An IIS-based web farm with Application Request Routing (ARR), an IIS server, and SQL Server.

Схема веб-фермы на основе IIS с тремя уровнями

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

Веб-ферма на основе IIS с маршрутизацией запросов приложений, сервером IIS, сервером приложений и SQL Server.An IIS-based web farm with ARR, an IIS server, an application server, and SQL Server.

Схема веб-фермы на основе IIS с четырьмя уровнями

Поддержка Site RecoverySite Recovery support

Для примеров этой статьи использовались виртуальные машины VMware с IIS 7.5 под управлением Windows Server 2012 R2 Enterprise.For the examples in this article, we use VMware virtual machines with IIS 7.5 on Windows Server 2012 R2 Enterprise. Так как репликация Site Recovery не зависит от приложения, описанные в этой статье рекомендации подходят для представленных ниже сценариев, а также для различных версий IIS.Because Site Recovery replication isn't application-specific, the recommendations in this article are expected to apply in the scenarios listed in the following table, and for different versions of IIS.

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

СценарийScenario На дополнительный сайтTo a secondary site В AzureTo Azure
Hyper-V.Hyper-V YesYes YesYes
VMwareVMware YesYes YesYes
Физический серверPhysical server Нет No YesYes
Таблицы AzureAzure Нет данныхNA YesYes

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

Чтобы реплицировать все виртуальные машины веб-фермы IIS в Azure, следуйте рекомендациям статьи Тестовая отработка отказа в Azure с помощью Site Recovery.To start replicating all the IIS web farm virtual machines to Azure, follow the guidance in Test failover to Azure in Site Recovery.

Если используется статический IP-адрес, вы можете указать нужный IP-адрес для виртуальной машины.If you are using a static IP address, you can specify the IP address that you want the virtual machine to take. Чтобы задать IP-адрес, откройте раздел Compute and Network (Вычисления и сеть) > TARGET IP (Целевой IP-адрес).To set the IP address, go to Compute and Network settings > TARGET IP.

Снимок экрана, на котором показано, как задать целевой IP-адрес в области вычислений и сети Site Recovery

Создайте план восстановленияCreate a recovery plan

План восстановления позволяет воссоздать последовательность различных уровней в многоуровневом приложении во время отработки отказа.A recovery plan supports the sequencing of various tiers in a multi-tier application during a failover. Благодаря этому обеспечивается целостность на уровне приложения.Sequencing helps maintain application consistency. При создании плана восстановления для многоуровневого веб-приложения выполните действия, описанные в этой статье.When you create a recovery plan for a multi-tier web application, complete the steps described in Create a recovery plan by using Site Recovery.

Добавление виртуальных машин в группы отработки отказаAdd virtual machines to failover groups

Обычное многоуровневое веб-приложение IIS содержит следующие компоненты:A typical multi-tier IIS web application consists of the following components:

  • уровень базы данных с виртуальными машинами SQL;A database tier that has SQL virtual machines.
  • веб-уровень, включающий сервер IIS и уровень приложения.The web tier, which consists of an IIS server and an application tier.

Добавьте виртуальные машины в разные группы в соответствии с уровнем.Add virtual machines to different groups based on the tier:

  1. Создайте план восстановления.Create a recovery plan. Добавьте виртуальные машины уровня базы данных в группу 1,Add the database tier virtual machines under Group 1. чтобы они были выключены последними, а начинали работу первыми.This ensures that database tier virtual machines are shut down last and brought up first.
  2. Добавьте виртуальные машины уровня приложения в группу 2,Add the application tier virtual machines under Group 2. чтобы они начинали работу сразу после включения уровня базы данных.This ensures that application tier virtual machines are brought up after the database tier has been brought up.
  3. Добавьте виртуальные машины веб-уровня в группу 3,Add the web tier virtual machines in Group 3. чтобы они начинали работу сразу после включения уровня приложения.This ensures that web tier virtual machines are brought up after the application tier has been brought up.
  4. Добавьте виртуальные машины с балансировкой нагрузки в группу 4,Add load balance virtual machines in Group 4. чтобы они начинали работу сразу после включения веб-уровня.This ensures that load balance virtual machines are brought up after the web tier has been brought up.

Дополнительные сведения см. в разделе Настройка плана восстановления.For more information, see Customize the recovery plan.

Добавление скрипта в план восстановленияAdd a script to the recovery plan

Чтобы настроить правильную работу веб-фермы IIS, вам может потребоваться выполнить некоторые операции после отработки отказа виртуальных машин Azure или во время тестовой отработки отказа.For the IIS web farm to function correctly, you might need to do some operations on the Azure virtual machines post-failover or during a test failover. Вы можете настроить автоматическое выполнение некоторых операций после отработки отказа.You can automate some post-failover operations. Например, можно обновить записи DNS, изменить привязку сайта или изменить строку подключения, добавив соответствующие скрипты в план восстановления.For example, you can update the DNS entry, change a site binding, or change a connection string by adding corresponding scripts to the recovery plan. Сведения о настройке автоматизированных заданий с помощью скрипта см. в статье Добавление скрипта VMM в план восстановления.Add a VMM script to a recovery plan describes how to set up automated tasks by using a script.

Обновление DNSDNS update

Если в DNS настроено динамическое обновление, виртуальные машины обычно обновляют IP-адрес сразу после запуска.If DNS is configured for dynamic DNS update, virtual machines usually update the DNS with the new IP address when they start. Если вы хотите добавить явное действие для обновления DNS (обновление IP-адреса виртуальных машин), добавьте скрипт для обновления IP-адреса в DNS как завершающее действие после отработки отказа в группах плана восстановления.If you want to add an explicit step to update DNS with the new IP addresses of the virtual machines, add a script to update IP in DNS as a post-failover action on recovery plan groups.

Строка подключения в файле web.config приложенияConnection string in an application’s web.config

Строка подключения определяет базу данных, с которой обменивается данными веб-сайт.The connection string specifies the database that the website communicates with. Если строка подключения содержит имя виртуальной машины базы данных, то после отработки отказа никаких действий не требуется.If the connection string carries the name of the database virtual machine, no further steps are needed post-failover. Приложение может автоматически взаимодействовать с базой данных.The application can automatically communicate with the database. Кроме того, если IP-адрес виртуальной машины базы данных сохраняется, нет необходимости обновлять строку подключения.Also, if the IP address for the database virtual machine is retained, it doesn't be need to update the connection string.

Если строка подключения ссылается на виртуальную машину базы данных с помощью IP-адреса, ее необходимо обновить после отработки отказа.If the connection string refers to the database virtual machine by using an IP address, it needs to be updated post-failover. Например, приведенная ниже строка подключения указывает на базу данных с IP-адресом 127.0.1.2.For example, the following connection string points to the database with the IP address 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 в плане восстановления.To update the connection string in the web tier, add an IIS connection update script after Group 3 in the recovery plan.

Привязки сайта для приложенияSite bindings for the application

Каждый сайт содержит сведения о привязке,Every site consists of binding information. которые включают в себя тип привязки, IP-адрес, на котором сервер IIS прослушивает запросы к сайту, номер порта и имена узлов сайта.The binding information includes the type of binding, the IP address at which the IIS server listens to the requests for the site, the port number, and the host names for the site. Во время отработки отказа вам необходимо обновить эти привязки, если изменяется связанный с ними IP-адрес.During the failover, you might need to update these bindings if there's a change in the IP address that's associated with them.

Примечание

Если для привязки сайта вы выбрали Все неназначенные, обновление этой привязки после отработки отказа не требуется.If you set the site binding to All unassigned, you don't need to update this binding post-failover. Кроме того, если после отработки отказа IP-адрес, связанный с сайтом, остается прежним, привязку к сайту обновлять не нужно.Also, if the IP address associated with a site isn't changed post-failover, you don't need to update the site binding. (Период хранения IP-адреса зависит от сетевой архитектуры и подсетей, назначенных основному сайту и сайту восстановления.(The retention of the IP address depends on the network architecture and subnets assigned to the primary and recovery sites. Их обновление может быть нецелесообразным для организации.)Updating them might not be feasible for your organization.)

Снимок экрана, показывающий установку привязки SSL

Если с сайтом связан IP-адрес, обновите все привязки сайта новым IP-адресом.If you associated the IP address with a site, update all site bindings with the new IP address. Чтобы изменить привязки сайта, добавьте скрипт обновления веб-уровня IIS в группу 3 в плане восстановления.To change the site bindings, add an IIS web tier update script after Group 3 in the recovery plan.

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

Если у вас есть виртуальная машина с маршрутизацией запросов приложений, чтобы обновить IP-адрес, добавьте скрипт для отработки отказа при использовании маршрутизации запросов приложений IIS в группу 4.If you have an ARR virtual machine, to update the IP address, add an IIS ARR failover script after Group 4.

Привязка SSL-сертификата для подключения HTTPSSSL certificate binding for an HTTPS connection

С веб-сайтами может быть связан SSL-сертификат, который обеспечивает безопасный обмен данными между веб-сервером и браузером пользователя.A website might have an associated SSL certificate that helps ensure a secure communication between the web server and the user’s browser. Если у веб-сайта есть HTTPS-подключение, а также связанная HTTPS-привязка сайта к IP-адресу сервера IIS с привязкой SSL-сертификата, необходимо добавить новую привязку сайта для сертификата с IP-адресом виртуальной машины IIS после отработки отказа.If the website has an HTTPS connection, and also has an associated HTTPS site binding to the IP address of the IIS server with an SSL certificate binding, you must add a new site binding for the certificate with the IP address of the IIS virtual machine post-failover.

SSL-сертификат можно выдать для следующих компонентов:The SSL certificate can be issued against these components:

  • Полного доменного имени веб-сайта.The fully qualified domain name of the website.
  • Имени сервера.The name of the server.
  • Группового сертификата для доменного имени.A wildcard certificate for the domain name.
  • IP-адреса.An IP address. Если SSL-сертификат сформирован для IP-адреса сервера IIS, другой SSL-сертификат нужно создать для IP-адреса сервера IIS на сайте Azure.If the SSL certificate is issued against the IP address of the IIS server, another SSL certificate needs to be issued against the IP address of the IIS server on the Azure site. Необходимо создать дополнительную привязку SSL для этого сертификата.An additional SSL binding for this certificate needs to be created. Таким образом, рекомендуется не использовать SSL-сертификат для IP-адреса.Because of this, we recommend not using an SSL certificate issued against the IP address. Этот вариант используется не часто, а вскоре он будет объявлен устаревшим в соответствии с изменениями на форуме CA/Browser.This option is less widely used and will soon be deprecated in accordance with new certificate authority/browser forum changes.

Обновление зависимости между веб-уровнем и уровнем приложенияUpdate the dependency between the web tier and the application tier

Если у приложения есть зависимость на основе IP-адреса виртуальных машин, вам необходимо обновить эту зависимость после отработки отказа.If you have an application-specific dependency that's based on the IP address of the virtual machines, you must update this dependency post-failover.

Запуск тестовой отработки отказаRun a test failover

  1. На портале Azure выберите хранилище служб восстановления.In the Azure portal, select your Recovery Services vault.
  2. Выберите план восстановления, созданный для веб-фермы IIS.Select the recovery plan that you created for the IIS web farm.
  3. Выберите Тестовая отработка отказа.Select Test Failover.
  4. Чтобы запустить тестовую отработку отказа, выберите точку восстановления и виртуальную сеть Azure.To start the test failover process, select the recovery point and the Azure virtual network.
  5. После запуска вторичной среды можно выполнить проверку.When the secondary environment is up, you can perform validations.
  6. После завершения проверки выберите Validations complete (Проверка завершена), чтобы очистить среду тестовой отработки отказа.When validations are complete, to clean the test failover environment, select Validations complete.

Дополнительные сведения см. в статье Тестовая отработка отказа в Azure с помощью Site Recovery.For more information, see Test failover to Azure in Site Recovery.

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

  1. На портале Azure выберите хранилище служб восстановления.In the Azure portal, select your Recovery Services vault.
  2. Выберите план восстановления, созданный для веб-фермы IIS.Select the recovery plan that you created for the IIS web farm.
  3. Выберите Отработка отказа.Select Failover.
  4. Чтобы запустить отработку отказа, выберите точку восстановления.To start the failover process, select the recovery point.

Дополнительные сведения см. в статье Отработка отказа в Site Recovery.For more information, see Failover in Site Recovery.

Дополнительная информацияNext steps