Описание параметров высокого уровня доступности и аварийного восстановления для развертываний PaaS

Завершено

У платформы PaaS есть отличия, когда речь идет о доступности. Вы можете настроить только параметры, предоставляемые Azure.

Для параметров Базы данных SQL Azure и Управляемого экземпляра Базы данных SQL Azure на основе SQL Server доступны такие параметры, как активная георепликация (только База данных SQL Azure) и группы автоматической отработки отказа (База данных SQL Azure или Управляемый экземпляр Базы данных SQL Azure).

База данных Azure для MySQL имеет соглашение об уровне обслуживания, которое гарантирует доступность в 99,99 %, то есть почти без простоев. В случае Базы данных Azure для MySQL, если возникает проблема на уровне узла, например сбой оборудования, запускается встроенный механизм отработки отказа. Все изменения транзакций в базе данных MySQL записываются синхронно в хранилище после их фиксации. В случае прерывания работы на уровне узла сервер базы данных автоматически создает новый узел и подключает к нему хранилище данных.

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

База данных Azure для PostgreSQL использует ту же модель, что и MySQL в стандартной модели развертывания. Однако Azure PostgreSQL также предлагает решение горизонтального гипермасштабирования, которое называется Citus. Citus предоставляет как горизонтальное увеличение масштаба, так и дополнительный высокий уровень доступности для группы серверов. Если параметр включен, для каждого узла группы серверов настраивается резервная реплика, что также увеличит стоимость, так как число серверов в группе удвоится. В случае если на исходном узле возникла проблема, например он перестал отвечать на запросы или полностью отключился, резервная реплика занимает его место. Данные синхронизируются через синхронную потоковую репликацию PostgreSQL.

Как и в случае с базой данных Azure для MySQL, решения, использующие базу данных Azure для PostgreSQL, должны также включать в приложение логику повторных попыток из-за удаления соединений и потери выполняемых транзакций.

Базы данных Azure для MySQL и PostgreSQL поддерживают возможность создания реплики чтения. Это означает, что реплику можно использовать для таких действий, как отчетность, для снятия части нагрузки с базы данных — источника. Реплика чтения также повышает доступность, так как она существует в другом регионе.