DR для служб PaaS
Разработайте аварийное восстановление для Azure SQL Database с помощью георепликации и групп автоматического переключения и сравните этот подход с репликацией на уровне VM для рабочих нагрузок с состоянием.
«DR для служб PaaS» — бесплатный урок Azure Fundamentals на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Azure Fundamentals, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Azure Fundamentals содержит 4 уроков всего.
DR для PaaS и IaaS
Аварийное восстановление для служб IaaS (VM) обычно включает использование Azure Site Recovery для репликации всей OS и дисков с данными во вторичный регион. У служб PaaS модели DR отличаются, поскольку базовой инфраструктурой управляет Microsoft. Для PaaS DR обычно настраивается на уровне данных: данные реплицируются во вторичный регион, а сама платформа запускается автоматически.
Azure SQL Database: встроенное резервирование
Azure SQL Database обеспечивает встроенную высокую доступность на уровне зон в пределах одного региона. Для межрегионального DR служба предоставляет две ключевые возможности: активную георепликацию (доступные для чтения вторичные базы данных в четырех других регионах) и группы автоматического переключения (автоматическое переключение с одной конечной точкой прослушивателя). Они настраиваются на уровне базы данных или сервера без использования Azure Site Recovery.
# Create a geo-replication link:
az sql db replica create \
--resource-group myRG \
--server primarySqlServer \
--name myDatabase \
--partner-server secondarySqlServer \
--partner-resource-group secondaryRGГруппы автоматического переключения
Группы автоматического переключения добавляют автоматизацию и единую конечную точку подключения поверх георепликации. Вы настраиваете группу на первичном сервере, добавляете вторичный сервер и задаете период ожидания восстановления — время, в течение которого Azure ждет восстановления первичного сервера перед запуском автоматического переключения. Приложения подключаются к конечной точке прослушивателя (например, mygroup.database.windows.net) и после переключения автоматически перенаправляются без изменения строк подключения.
# Create an auto-failover group:
az sql failover-group create \
--resource-group myRG \
--server primarySqlServer \
--name myFailoverGroup \
--partner-server secondarySqlServer \
--partner-resource-group secondaryRG \
--failover-policy Automatic \
--grace-period 60RPO для Azure SQL с георепликацией
Георепликация Azure SQL Database выполняется асинхронно: транзакции фиксируются на первичном сервере, а затем реплицируются на вторичный. Это означает небольшую задержку репликации, обычно менее 5 секунд в нормальных условиях. Поэтому RPO для георепликации SQL в большинстве сценариев составляет примерно 5 секунд, что подходит для рабочих нагрузок уровня 1 и уровня 2, требующих минимальной потери данных.
Восстановление SQL на момент времени
Все уровни Azure SQL Database включают автоматические резервные копии: полные копии выполняются еженедельно, дифференциальные — каждые 12 часов, а копии журнала транзакций — каждые 5–12 минут. Это позволяет выполнять восстановление на момент времени (PITR) — восстанавливать базу данных на любую секунду в пределах периода хранения (7–35 дней для Standard/General Purpose, до 35 дней для Business Critical). PITR полезно для восстановления после случайного удаления или повреждения данных.
# Restore a database to a specific point in time:
az sql db restore \
--resource-group myRG \
--server mySqlServer \
--name myDatabase-restored \
--source-database-name myDatabase \
--time '2026-06-20T14:30:00Z'Cosmos DB: запись в несколько регионов для DR
Azure Cosmos DB с записью в несколько регионов обеспечивает глобальным приложениям почти нулевой RPO. Все настроенные регионы могут одновременно принимать операции записи, а Cosmos DB автоматически синхронизирует данные с помощью собственного протокола репликации. При сбое региона трафик автоматически направляется в остальные работоспособные регионы без необходимости ручного переключения, что позволяет достичь значений RTO и RPO, близких к нулю.
# Add a secondary region to Cosmos DB:
az cosmosdb update \
--resource-group myRG \
--name myCosmosAccount \
--locations regionName=eastus failoverPriority=0 isZoneRedundant=true \
regionName=westus failoverPriority=1 isZoneRedundant=trueОсобенности DR для Azure App Service
Azure App Service сам по себе не хранит состояние (код приложения развертывается из системы управления исходным кодом или ZIP-файла). Для DR основное внимание уделяется уровню данных (базе данных и хранилищу больших двоичных объектов). App Service можно быстро развернуть во вторичном регионе с помощью конвейера CI/CD. Однако необходимо убедиться, что ваш пользовательский домен, сертификаты TLS и параметры приложения реплицируются или задаются сценариями, чтобы их можно было быстро воссоздать во вторичном регионе.
# Export App Service configuration (app settings + connection strings):
az webapp config appsettings list \
--name myWebApp \
--resource-group myRG \
--output json > appsettings-backup.json
# Apply to secondary region App Service:
az webapp config appsettings set \
--name myWebApp-secondary \
--resource-group secondaryRG \
--settings @appsettings-backup.jsonAzure Storage: GRS и RA-GRS
Azure Blob Storage с геоизбыточным хранилищем (GRS) автоматически реплицирует данные во вторичный регион, расположенный в сотнях миль. Данные реплицируются асинхронно (RPO обычно составляет менее 15 минут). GRS с доступом для чтения (RA-GRS) позволяет читать данные из вторичной конечной точки еще до запуска переключения, что полезно для рабочих нагрузок аналитики и отчетности во время сбоя первичного региона.
# Create a storage account with RA-GRS:
az storage account create \
--resource-group myRG \
--name mystorageaccount \
--sku Standard_RAGRS \
--kind StorageV2
# Secondary endpoint: mystorageaccount-secondary.blob.core.windows.netDR для Azure Functions и Logic Apps
Azure Functions не хранят состояние по своей архитектуре, поэтому их легко развернуть повторно. Для DR разверните то же приложение функций во вторичном регионе и используйте Traffic Manager для маршрутизации триггеров HTTP между регионами. Для триггеров, не использующих HTTP (Service Bus, Event Grid) настройте источник сообщений так, чтобы он направлял сообщения в оба региона, либо поручите вторичному региону опрашивать тот же источник. Состояние функций в Durable Functions хранится в Azure Storage — убедитесь, что для этого хранилища используется GRS.
Выбор между активной георепликацией и группами автоматического переключения
Use active geo-replication, если Вам нужен детальный контроль — например, чтобы направлять трафик чтения на вторичную реплику для повышения производительности или независимо управлять несколькими вторичными репликами в разных регионах. Use auto-failover groups, если Вам нужна простота: единая конечная точка прослушивателя, автоматическое переключение по таймеру и встроенная оркестрация процесса переключения без ручного вмешательства.
Сравнение затрат на DR в PaaS и на виртуальных машинах
DR в PaaS часто обходится дешевле, чем DR на основе виртуальных машин, по нескольким причинам. Георепликация SQL Database оплачивает только хранилище и вычислительные ресурсы вторичной реплики; Вам не нужно платить за полную лицензию на ОС виртуальной машины. Azure Cosmos DB взимает плату за подготовленные единицы запроса (RU) в каждом регионе. Azure Storage GRS увеличивает стоимость хранилища примерно в 2 раза. В отличие от этого, виртуальные машины, реплицируемые с помощью ASR, требуют полной оплаты вычислительных ресурсов, хранилища и лицензий во вторичном регионе.
Быстрая проверка
Проверьте своё понимание концепций Microsoft Azure Fundamentals (AZ-900) из этого урока.
Повторение урока
В этом уроке Вы узнали, что PaaS DR сосредоточен на уровне данных, а не на репликации виртуальных машин; Azure SQL auto-failover groups предоставляют единую конечную точку прослушивателя с автоматическим переключением; а Cosmos DB multi-region writes обеспечивают почти нулевые значения RTO и RPO для глобальных приложений. Далее мы рассмотрим нормативные стандарты Azure и модель разделения ответственности.
Часто задаваемые вопросы
Урок «DR для служб PaaS» бесплатный?
Да — полный текст урока «DR для служб PaaS» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Azure Fundamentals, подпишись на CoddyKit PRO. Курс Azure Fundamentals содержит 4 уроков всего.
Чему я научусь в уроке «DR для служб PaaS»?
Разработайте аварийное восстановление для Azure SQL Database с помощью георепликации и групп автоматического переключения и сравните этот подход с репликацией на уровне VM для рабочих нагрузок с сост… Ты практикуешь Azure Fundamentals с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Azure Fundamentals?
Предыдущий опыт не требуется. Azure Fundamentals на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «DR для служб PaaS»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Azure Fundamentals?
Да. Каждый урок Azure Fundamentals включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Определение RTO, RPO и уровней восстановления
- Планы восстановления и автоматическое переключение
- Тестирование DR без влияния на рабочую среду
- DR для служб PaaS