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


Повышение производительности рабочей нагрузки Интернета вещей

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

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

Эффективность производительности представляет производительность относительно использования ресурсов в указанных условиях. Эффективность производительности измеряет, насколько хорошо продукт или система при выполнении своих функций соответствует требованиям для:

  • Поведение времени, например время отклика, время обработки и пропускная способность.

  • Использование ресурсов или объемы и типы используемых ресурсов.

  • Емкость или максимальные ограничения.

Оценка эффективности производительности рабочей нагрузки Интернета вещей

Чтобы оценить рабочую нагрузку Интернета вещей с помощью основы повышения производительности платформы Well-Architected Framework, пройдите вопросы по повышению производительности для рабочих нагрузок Интернета вещей в Обзоре Well-Architected Azure. После того как оценка определит ключевые рекомендации по повышению производительности для решения Интернета вещей, используйте следующее содержимое для реализации рекомендаций.

Принципы проектирования

Пять основных принципов архитектурного совершенства лежат в основе методологии проектирования рабочих нагрузок Интернета вещей. Эти принципы служат компасом для последующих проектных решений в ключевых областях проектирования Интернета вещей. Следующие принципы проектирования расширяют качество платформы Azure Well-Architected Framework — эффективность производительности.

Принцип проектирования Рекомендации
Проектирование для горизонтального масштабирования Решение Интернета вещей может начинаться с нескольких сотен устройств или сообщений и увеличиваться до миллионов устройств и сообщений в минуту. Вы можете легко масштабировать облачные службы, чтобы увеличить нагрузку, но ситуация может быть более сложной для устройств и шлюзов Интернета вещей. Устройства Интернета вещей можно спроектировать или развернуть до завершения решения. Промышленный Интернет вещей или аналогичные отрасли могут измерять срок службы устройств в течение десятилетий. Обновление емкости путем замены устройств является дорогостоящим. В этих сценариях особенно важно планировать заранее.
Сдвиг влево при тестировании производительности Тестирование на ранних этапах и частое тестирование для раннего ловли проблем. Помните о сложности размещения датчиков, устройств и шлюзов в географически разных местах с разными характеристиками, скоростью и надежностью связи. Запланируйте эту сложность при тестировании и обязательно протестируйте сценарии сбоя, такие как отключение сети. Выполните нагрузочное и нагрузочное тестирование всех устройств, пограничных и облачных компонентов в решении Интернета вещей.
Непрерывный мониторинг производительности в рабочей среде Для мониторинга различных типов устройств в нескольких географических регионах используйте распределенное решение для мониторинга. Сбалансируйте объем информации, отслеживаемой и отправляемой в облако, с затратами на память и производительность. Настройте передачу данных для сценариев диагностики и отслеживайте их на нескольких уровнях и уровнях. Предоставление метрик шлюза для промышленных решений или решений с поддержкой шлюзов.

Уровни архитектуры Интернета вещей

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

Схема, на которую показаны слои и сквозные действия в архитектуре Интернета вещей.

Уровень устройств и шлюзов

Устройство Интернета вещей — это вычислительное устройство, которое подключается к решению Интернета вещей и может собирать, передавать или получать данные. Шлюзы — это точки подключения между устройствами и облаком, а также между Интернетом вещей и другими компонентами.

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

Обновление или замена оборудования занимает много времени. Заранее задайте размер устройств Интернета вещей для требуемой емкости и функциональности.

Чтобы оптимизировать возможности оборудования, выполните следующие действия.

  • Выполнение ресурсоемких задач вычислений и ввода-вывода на определенном оборудовании. Например, запустите алгоритмы машинного обучения (ML) на локальных графических модулях обработки (GPU).

  • Оптимизируйте существующие аппаратные возможности с помощью эффективных языков и платформ, таких как Embedded C и Rust Embedded. Вы можете использовать пакет SDK azure IoT Embedded для C при разработке для устройств с ограниченными ограничениями или когда большая часть стека безопасности и обмена данными уже доступна на устройстве.

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

Масштабирование важно для уровня устройства и шлюза. Чтобы масштабировать этот слой, выполните указанные ниже действия.

  • Используйте шлюзы в качестве единиц масштабирования. Если ваше решение добавляет устройства Или ресурсы Интернета вещей (например, серверы OPC UA ) с течением времени, используйте больше пограничных шлюзов для приема данных с этих серверов.

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

Запуск рабочих нагрузок на границе

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

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

Оптимизация подключения устройств

Чтобы оптимизировать подключение устройств, примите во внимание следующие моменты.

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

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

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

Оптимизация автономных сценариев

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

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

  • Задайте срок жизни (TTL) для данных, чтобы данные с истекшим сроком действия автоматически удаляются.

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

  • Если хранилище пограничного устройства достигает емкости, используйте стратегию вытеснения кэша, например первое вложение последнего выхода (FIFO), последнее вложение первым выходом (LIFO) или приоритет.

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

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

Уровень приема и связи

Уровень приема и обмена данными отправляет данные с устройств в решение Интернета вещей. Шаблоны обмена данными между устройствами и решением Интернета вещей:

  • Сообщения с устройства в облако.
  • Сообщения из облака на устройство,
  • Отправка файлов.
  • двойники устройств;
  • Прямые методы.

Оптимизация эффективности обмена сообщениями

Количество и размер сообщений из устройства в облако является важным параметром для повышения производительности решения Интернета вещей. Службы Интернета вещей Azure, такие как Центр Интернета вещей и Azure IoT Central, определяют ограничения на количество сообщений на уровне, что влияет как на производительность решения, так и на затраты.

Рассмотрите следующие рекомендации по обмену сообщениями:

  • Центр Интернета вещей и IoT Central вычисляют количество ежедневных сообщений квоты на основе размера сообщения размером 4 КБ. При отправке небольших сообщений некоторая емкость остается неиспользуемой. Как правило, используйте размеры сообщений, близкие к границе в 4 КБ. Группировать небольшие сообщения, отправляемые с устройства в облако, в более крупные, чтобы уменьшить общее количество сообщений, но учитывайте задержку при объединении сообщений.

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

  • Используйте встроенную пакетную обработку сообщений пакета SDK azure IoT Edge для расширенного протокола очереди сообщений (AMQP) для отправки нескольких сообщений телеметрии в облако.

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

  • Используйте мультиплексирование подключений AMQP, чтобы уменьшить зависимость от ограничений tcp-подключений на клиент пакета SDK. При мультиплексии подключений AMQP несколько устройств могут использовать одно TCP-подключение для Центр Интернета вещей.

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

  • Используйте двойники устройств для получения сведений о состоянии устройства, включая метаданные и конфигурации. Центр Интернета вещей поддерживает двойник устройства для каждого подключаемого устройства.

Общие сведения о квотах обмена сообщениями и регулировании

Уровень Центр Интернета вещей устанавливает ограничения на единицу облачного шлюза. Квота обмена сообщениями определяет устойчивую пропускную способность и стабильную скорость отправки для уровня. Центр Интернета вещей может обрабатывать нагрузки, превышающие эти квоты, в течение короткого времени, чтобы устойчиво обрабатывать всплески нагрузки или превышения нагрузки.

Другим важным ограничением является почасовая или ежедневная нагрузка на обслуживание или ограничение регулирования . Ограничения регулирования защищают Центр Интернета вещей от слишком большой нагрузки в течение слишком длительного времени.

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

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

Оптимизация обработки сообщений

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

Чтобы оптимизировать производительность обработки облачных данных, выполните приведенные далее действия.

  • Оптимизируйте формат данных, используемый для отправки данных в облако. Сравните производительность (и стоимость) пропускной способности и повышение производительности с меньшим объемом обработки облачных данных. Рассмотрите возможность использования Центр Интернета вещей обогащения сообщений для добавления контекста в сообщения устройства.

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

  • Выберите нужный уровень Центр Интернета вещей ( Базовый или Стандартный) в зависимости от требований к решению. Помните о функциях, которые не поддерживает уровень "Базовый".

  • Выберите правильный Центр Интернета вещей размер уровня 1, 2 или 3 и количество экземпляров в зависимости от пропускной способности данных, квот и регулирования операций. Для IoT Central выберите правильный уровень: Стандартный 0, Стандартный 1 или Стандартный 2 в зависимости от количества сообщений, отправленных с устройств в облако.

  • Рассмотрите возможность использования Сетка событий Azure для маршрутизации событий публикации и подписки. Дополнительные сведения см. в разделах React Центр Интернета вещей событий с помощью Службы "Сетка событий" для активации действий и Сравнение маршрутизации сообщений и Сетки событий для Центр Интернета вещей.

Определение приоритета данных

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

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

Рассмотрите следующие рекомендации по классификации и обработке данных:

  • Используйте очереди IoT Edge приоритета, чтобы обеспечить приоритет важных данных при отправке в Центр Интернета вещей. IoT Edge буферизует сообщения, если подключение отсутствует, но после восстановления соединения сначала отправляет все буферные сообщения в порядке приоритета, а затем новые сообщения.

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

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

  • Разделяйте сообщения на основе ограничений по времени. Например, отправлять сообщения в Центр Интернета вещей непосредственно при наличии ограничений по времени и использовать отправку файлов с помощью Центр Интернета вещей или пакетной передачи данных, например Фабрика данных Azure, если нет ограничений по времени. Для отправки файлов можно использовать модуль IoT Edge BLOB-объектов.

Уровень управления устройствами и моделирования

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

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

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

  • Оптимизируйте размер в зависимости от нагрузки устройства и сообщений.

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

  • Учитывайте аномалии в устойчивой пропускной способности из-за распределения данных, сезонности и ускорения.

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

Подготовка устройств с помощью DPS

Используйте DPS для настройки подключения к Центру Интернета вещей во время подготовки, когда подключение Центр Интернета вещей больше недоступно, или во время перезагрузки устройства.

  • Используйте политику равномерного распределения DPS, чтобы настроить вес для подготовки в зависимости от варианта использования. Дополнительные сведения см. в статье Как политика выделения назначает устройства Центрам Интернета вещей.

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

  • Используйте DPS для выделения устройств Центрам Интернета вещей в разных регионах в зависимости от задержки.

  • Используйте стратегию кэширования для строка подключения DPS, чтобы сократить операции повторного подключения DPS.

Управление подчиненными устройствами

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

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

  • Используйте несколько шлюзов и пограничных устройств в прозрачном режиме для подключения нисходящего транспорта телеметрии очереди сообщений (MQTT) или устройств AMQP, если их количество может меняться с течением времени для каждого сайта или расположения. Шлюзы и пограничные устройства в прозрачном режиме могут подключать устройства MQTT/AMQP для двунаправленного обмена данными. Учитывайте дополнительные затраты на буферизацию сообщений, хранение и настройку на шлюзе или пограничном устройстве при использовании прозрачного режима.

Уровень транспорта

Транспортный уровень обрабатывает подключения между устройством и решением Интернета вещей, преобразуя сообщения Интернета вещей в сетевые пакеты и отправляя их по физической сети. Решения Интернета вещей обычно используют протоколы подключения AMQP и MQTT.

Оптимизация использования ресурсов

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

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

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

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

  • Настройте DPS для перемещения состояния устройства при подключении устройства к другому облачному шлюзу.

Оптимизация обмена данными

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

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

  • Рекомендуется хранить большие объемы данных локально и отправлять их ежечасно или ежедневно.

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

Уровень хранения

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

  • Используйте базу данных временных рядов для хранения данных временных рядов с метками времени и значениями. Дополнить данные телеметрии временных рядов столбцами для фильтрации, например CustomerID, RoomID или другими столбцами для конкретных вариантов использования.

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

  • Рассмотрите возможность отделения хранилища приема данных и обработки событий от потребностей в хранилище отчетов и интеграции.

  • Используйте тип хранилища данных, соответствующий требуемой пропускной способности, размеру, сроку хранения, объему данных, требованиям CRUD и региональной репликации. Некоторые примеры: Azure Data Lake Storage, Azure Data Explorer, Azure SQL и Azure Cosmos DB.

Уровень обработки и аналитики событий

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

Оптимизация пограничной и облачной обработки

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

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

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

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

Классификация отдельных рабочих нагрузок

Разделение рабочих нагрузок по ограничению времени, требуемой задержке и времени отклика, например ответ в секундах и пакет в час. Гибридные аппаратные системы на микросхеме (SoC) могут поддерживать рабочие нагрузки на уровне устройства.

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

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

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

Обработка больших объемов облачных данных

Чтобы оптимизировать эффективность работы с большим объемом облачных данных, выполните приведенные далее действия.

  • Используйте готовую интеграцию служб между Центр Интернета вещей и назначениями данных, такими как Azure Data Lake Storage и Azure Data Explorer, которые уже оптимизированы для высокой производительности.

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

  • Используйте нужное количество Центр Интернета вещей секций и групп потребителей для количества одновременных средств чтения данных и требуемой пропускной способности.

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

  • Используйте хранилище данных, соответствующее потребностям в зависимости от требуемой пропускной способности, размера, периода хранения, объема данных, требований CRUD и региональной репликации. Примеры: Azure Data Lake Storage, Azure Data Explorer, Azure SQL или Azure Cosmos DB. Дополнительные сведения см. в статье Выбор хранилища данных Azure для приложения.

Уровень интеграции

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

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

  • Используйте четко определенные и версии API для доступа к данным и командам Интернета вещей.

  • Избегайте средств для конечных пользователей для создания определяемых пользователем запросов к хранилищу данных Интернета вещей. Рассмотрите возможность использования отдельных хранилищ данных для интеграции и создания отчетов.

Уровень DevOps

Чтобы повысить эффективность производительности, используйте следующие механизмы DevOps:

  • Подключенный реестр для локального кэширования и развертывания образов контейнеров.

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

  • Двойники устройств и двойники модулей для обновления конфигураций устройств масштабируемым и эффективным способом.

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

Мониторинг

Используйте Azure Monitor для сбора Центр Интернета вещей метрик с оповещениями для критически важных метрик. Настройка оповещений Azure Monitor на основе текущих ограничений масштабирования, таких как отправка сообщений с устройства в облако в секунду. Задайте для оповещения процент от ограничения, например 75 %, для предварительного уведомления о предстоящих ограничениях масштабируемости. Кроме того, настройте оповещения Azure Monitor для журналов и метрик, таких как количество ошибок регулирования.

Настройка оповещений службы "Работоспособности служб Azure" для активации уведомлений при изменении состояния Центр Интернета вещей.

Дальнейшие действия