Поделиться через


Надежность в Azure Stream Analytics

Azure Stream Analytics — это высоко отказоустойчивая служба, которая обрабатывает и анализирует потоковую передачу данных из нескольких источников одновременно. Stream Analytics предоставляет сведения, которые можно использовать для создания сложных конвейеров обработки событий с помощью запросов, таких как SQL.

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

В этой статье описывается, как Stream Analytics устойчива к потенциальным проблемам, таким как временные сбои и сбои зон доступности. В нем содержатся рекомендации по защите критически важных рабочих мест в регионе от сбоев и обслуживания служб. Он также выделяет ключевые сведения о соглашении об уровне обслуживания Stream Analytics (SLA).

Это важно

Повышение устойчивости Stream Analytics может иметь ограниченный эффект, если другие компоненты не являются одинаково устойчивыми. Учитывайте надежность источников данных, включая входные и выходные данные. В зависимости от требований к устойчивости может потребоваться внести изменения конфигурации в нескольких областях.

Рекомендации по развертыванию в производственной среде

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

  • Используйте регионы, поддерживающие зоны доступности. Разверните задания потоковой передачи и другие ресурсы в регионах, поддерживающих зоны доступности.
  • Разверните достаточную емкость. Задайте единицы потоковой передачи (SUS) на основе ожидаемой пропускной способности и дополнительной емкости для обработки пиковых нагрузок. Добавьте буфер над базовыми требованиями для обработки внезапных увеличений.
  • Мониторинг состояния. Реализуйте комплексный мониторинг с помощью метрик и журналов диагностики Azure Monitor для отслеживания работоспособности заданий, входных и выходных событий и использования ресурсов. Настройте оповещения для критически важных метрик, таких как задержка подложки и ошибки среды выполнения, чтобы обнаружить проблемы, прежде чем они влияют на обработку данных. Дополнительные сведения см. в разделе "Мониторинг Stream Analytics".
  • Реализуйте избыточность в нескольких регионах для критически важных рабочих нагрузок. Развертывание идентичных заданий Stream Analytics в нескольких регионах. Репликация конфигураций и обеспечение соответствующей маршрутизации данных для обеспечения региональной устойчивости. Stream Analytics не предоставляет собственную репликацию в нескольких регионах, но этот подход обеспечивает аварийное переключение и непрерывность работы. Для получения дополнительной информации см. Индивидуальные решения для нескольких регионов для обеспечения устойчивости.

Обзор архитектуры надежности

В этом разделе описываются некоторые важные аспекты работы службы, наиболее релевантные с точки зрения надежности. В этом разделе представлена логическая архитектура, включающая некоторые ресурсы и функции, которые развертываются и используются. Он также обсуждает аппаратную архитектуру, которая содержит сведения о том, как работает служба изнутри.

Логическая архитектура

Задание — это основная единица в Stream Analytics, которая позволяет определять и запускать логику потоковой обработки. Задание состоит из следующих основных компонентов:

  • Входные данные , считывающие потоковую передачу данных из источников данных, таких как Центры событий Azure, Центр Интернета вещей Azure или служба хранилища Azure.
  • Запрос, обрабатывающий и преобразующий данные.
  • Выходные данные , которые непрерывно записывают результаты в разные места назначения, такие как База данных SQL Azure, Azure Data Lake Storage, Azure Cosmos DB и Power BI.

Дополнительные сведения см. в разделе "Модель ресурсов Stream Analytics".

Физическая архитектура

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

  • Рабочие узлы: Задания Stream Analytics выполняются в кластере. Виртуальные машины в кластере называются рабочими узлами. При использовании SKU "Стандартный" или "Стандартный V2" ваши задания выполняются в общих кластерах. При использовании выделенного номера SKU задания выполняются в собственном выделенном кластере.

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

  • Sus: SUS представляют вычислительные ресурсы, которые выполняют задание. Чем больше единиц SUs, тем больше вычислительных ресурсов выделяется для задания. Платформа управляет рабочими узлами и распределением заданий между рабочими узлами, но вы отвечаете за выделение служебных единиц (SUs) для заданий. Дополнительные сведения см. в статье "Общие сведения и настройка SUS Stream Analytics".

  • Контрольные точки: Stream Analytics поддерживает состояние задания с помощью регулярного создания контрольных точек. Контрольные точки помогают быстро восстановить завершившиеся с ошибкой задания с минимальной повторной обработкой данных, даже для заданий, использующих логику запросов с сохранением состояния.

    При возникновении сбоев обработки Stream Analytics автоматически перезапускается с последней контрольной точки и повторно обрабатывает события, которые завершаются сбоем во время обработки. Эта гарантия применяется ко всем встроенным функциям и пользовательским функциям в задании. Но достижение доставки из конца в конец ровно один раз зависит от возможностей места назначения. Дополнительные сведения см. в разделе "Контрольные точки и концепции воспроизведения в заданиях Stream Analytics".

Замечание

С помощью Stream Analytics в IoT Edge можно выполнять задания в собственной инфраструктуре. При использовании Stream Analytics в IoT Edge вы отвечаете за его настройку в соответствии с требованиями к надежности. Stream Analytics в IoT Edge находится вне области этой статьи.

Устойчивость к временным сбоям

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

Все облачные приложения должны следовать рекомендациям по обработке временных ошибок Azure при обмене данными с любыми размещенными в облаке API, базами данных и другими компонентами. Дополнительные сведения см. в Рекомендациях по обработке временных сбоев.

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

Настоятельно рекомендуется настроить политики обработки ошибок на выходе. Но эти политики применяются только к ошибкам преобразования данных, и они не изменяют способ обработки временных сбоев Stream Analytics.

Устойчивость к сбоям зоны доступности

Зоны доступности — это физически отдельные группы центров обработки данных в регионе Azure. При сбое одной зоны службы могут переключиться на одну из оставшихся зон.

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

При создании задания Stream Analytics в регионе с поддержкой зоны служба распределяет вычислительные ресурсы задания между несколькими зонами доступности.

Схема, показывающая зонально-избыточное задание Stream Analytics.

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

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

На схеме показано, как кластер Stream Analytics поддерживает непрерывность службы во время сбоя в зоне доступности путем перераспределения экземпляров заданий по здоровым зонам. В верхней части схемы три столбца представляют зону доступности 1, зону доступности 2 и зону доступности 3. Красная граница и красный круг с белым символом X визуально различают зону доступности №3, в которой произошёл сбой и которая недоступна. На левой стороне находится коробка с надписью "кластер Stream Analytics," содержащая значок, обозначающий общий или выделенный вычислительный ресурс. В кластере Stream Analytics три горизонтальных ряда распространяются через зоны доступности 1 и 2. Каждая строка представляет отдельное задание, которое выполняется в кластере. Зона доступности 3 не отображает значки заданий в любой из трех строк, что означает, что все экземпляры заданий, которые ранее выполнялись в этой зоне сбоя, были удалены.

Избыточность зоны применяется ко всем функциям Stream Analytics, включая обработку запросов, контрольные точки и задачи управления заданиями. Stream Analytics автоматически реплицирует данные о состоянии задания и контрольных точках в зонах доступности, что предотвращает потерю данных и снижает время простоя во время сбоев зоны.

Требования

  • Поддержка региона: Избыточность зоны для ресурсов Stream Analytics поддерживается в любом регионе, поддерживающем зоны доступности. Полный список регионов, поддерживающих зоны доступности, см. в списке регионов Azure.
  • Требования SKU: Резервирование по зонам доступно во всех SKU Stream Analytics.

Себестоимость

Зональная избыточность в Stream Analytics не влечет за собой дополнительных расходов. Вы оплачиваете ту же ставку для единиц SUS, выполняется ли задание в конфигурации, избыточной между зонами, или в конфигурации, не избыточной между зонами. Дополнительные сведения см. в разделе цен на Stream Analytics.

Настройка поддержки зоны доступности

Поведение, когда все зоны работоспособны

В этом разделе описывается, что ожидать, когда задания Stream Analytics являются избыточными по зонам, а все зоны доступности работают.

  • Маршрутизация трафика между зонами: Stream Analytics выполняет каждое задание на рабочих узлах. Работники в любой зоне могут обрабатывать входящие потоковые данные. Служба использует внутреннюю балансировку нагрузки для распределения задач обработки между зонами.

  • Репликация данных между зонами: Stream Analytics реплицирует состояние задания и данные контрольной точки синхронно в зонах доступности. По мере того как задание обрабатывает события и обновляет свое состояние, Stream Analytics записывает эти изменения в несколько зон доступности, прежде чем подтвердить их. Эта синхронная репликация гарантирует нулевой потери данных, даже если вся зона становится недоступной. Процесс репликации является прозрачным для приложения и не влияет на задержку обработки в обычных условиях.

Поведение во время сбоя зоны

В этом разделе описывается, что ожидать, когда задания Stream Analytics являются избыточными по зонам, и возникает сбой зоны доступности.

  • Обнаружение и ответ: Платформа Stream Analytics отвечает за обнаружение сбоя в зоне доступности и реагирование на него. Stream Analytics обозначает работников в неисправной зоне как нездоровых и автоматически перераспределяет задачи между работниками в оставшихся здоровых зонах. Вам не нужно ничего делать, чтобы инициировать переключение зоны.
  • Активные запросы: Stream Analytics перемещает выполняющиеся задания на другую рабочую роль в здоровую зону доступности.

    Stream Analytics использует контрольные точки для поддержания состояния обработки. Во время сбоя зоны рабочие в работоспособных зонах автоматически повторно обрабатывают задания, выполняемые в неисправной зоне с последней контрольной точки.

  • Ожидаемая потеря данных: Система контрольных точек задания гарантирует отсутствие потери данных.

  • Ожидаемое время простоя: Выполняющиеся задания автоматически возобновляются после того, как платформа переместит их на работоспособный сервер.

  • Перенаправка трафика: Служба автоматически перенаправляет все новые входные данные работникам в здоровых зонах. Существующие соединения с входными источниками восстанавливаются в рабочих зонах. Выходные подключения так же восстанавливаются, что обеспечивает непрерывный поток данных через потоковый конвейер.

Восстановление зоны

Когда не удалось восстановить зону доступности, Stream Analytics автоматически объединяет ее в активный пул обработки. Задания начинают задействовать восстановленную инфраструктуру.

Вы не принимаете никаких действий для восстановления зоны. Платформа обрабатывает все задачи восстановления зоны, включая репликацию состояния и перераспределение рабочей нагрузки.

Тестирование на сбои в зоне

Платформа Stream Analytics управляет маршрутизацией трафика, отработкой отказа и восстановлением зоны, поэтому не нужно инициировать или проверять процессы сбоя в зоне доступности.

Устойчивость к сбоям на уровне региона

Stream Analytics развертывает ресурсы в одном регионе Azure. Если регион становится недоступным, задания (и выделенные кластеры, если применимо), также недоступны.

Индивидуальные решения для нескольких регионов для повышения устойчивости

Чтобы обеспечить устойчивость нескольких регионов для рабочих нагрузок потоковой передачи, рассмотрите возможность развертывания отдельных заданий в нескольких регионах. При таком подходе вы несете ответственность за развертывание заданий и управление ими, а также за настройку соответствующих стратегий маршрутизации и репликации данных. Задания Stream Analytics являются двумя отдельными сущностями. Ответственность вашего приложения состоит в том, чтобы отправлять данные в оба региональных входных канала и согласовывать региональные выходные данные. Дополнительные сведения см. в разделе "Достижение геоизбыточности" для заданий Stream Analytics.

Резервное копирование и восстановление

Stream Analytics не имеет встроенной функции резервного копирования и восстановления.

Если вы хотите переместить, скопировать или создать резервную копию определения и конфигурации заданий, можно использовать расширение Stream Analytics для Visual Studio Code для экспорта существующего задания в облаке Azure на локальный компьютер. После сохранения всей конфигурации заданий Stream Analytics локально его можно развернуть в одном регионе или другом регионе Azure. Дополнительные сведения см. в статье "Копирование, резервное копирование и перемещение заданий Stream Analytics".

Устойчивость к обслуживанию служб

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

Учтите следующие моменты, чтобы убедиться, что ваши задания устойчивы к техническому обслуживанию служб.

  • Настройте задания для обеспечения устойчивости к повторным выполнениям. Stream Analytics обычно использует контрольные точки для восстановления данных после обслуживания службы. Но иногда он должен использовать метод воспроизведения вместо этого. Необходимо настроить источники входных данных, чтобы воспроизведение не приводило к неправильным или частичным результатам выходных данных. Дополнительные сведения см. в разделе "Восстановление заданий после обновления службы".

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

    Вы можете снизить риск ошибки, влияющей на рабочую нагрузку, развернув идентичные задания в двух регионах Azure. Отслеживайте эти задания , чтобы получать уведомления при возникновении непредвиденного события. Если одно из этих заданий вступает в состояние сбоя после обновления службы Stream Analytics, выполните следующие действия:

    • Обратитесь в службу поддержки Azure , чтобы определить причину и устранить проблему.
    • Переключение всех последующих потребителей для использования выходных данных исправного задания.

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

Соглашение об уровне обслуживания

Соглашение об уровне обслуживания (SLA) для служб Azure описывает ожидаемую доступность каждой службы и условия, которые должно соответствовать вашему решению для достижения этого ожидания доступности. Для получения дополнительной информации см. Соглашения об уровне обслуживания для онлайн-сервисов.

Stream Analytics предоставляет отдельные соглашения об уровне обслуживания доступности для вызовов API, которые используются для управления заданиями, и операций выполнения заданий.