Публикация и подписка на сообщения MQTT с помощью брокера MQTT
Внимание
Предварительная версия операций Интернета вещей Azure, включенная Azure Arc в настоящее время в предварительной версии. Не следует использовать это программное обеспечение предварительной версии в рабочих средах.
Вам потребуется развернуть новую установку Операций Интернета вещей Azure, когда общедоступная версия станет доступной. Вы не сможете обновить предварительную установку.
Юридические условия, применимые к функциям Azure, которые находятся в бета-версии, предварительной версии или в противном случае еще не выпущены в общедоступную версию, см . в дополнительных условиях использования для предварительных версий Microsoft Azure.
Операции Интернета вещей имеют корпоративный уровень, совместимый со стандартами брокер MQTT, который является масштабируемым, высокодоступным и kubernetes-native. Он предоставляет плоскость обмена сообщениями для предварительной версии операций Интернета вещей Azure, позволяет двунаправленным пограничным и облачным коммуникациям и предоставляет приложения на основе событий на границе.
Соответствие MQTT
Транспорт телеметрии очереди сообщений (MQTT) появился как lingua franca среди протоколов в пространстве Интернета вещей. Простой дизайн MQTT позволяет одному брокеру одновременно обслуживать десятки тысяч клиентов с упрощенной функцией создания и управления разделами публикации и подписки. Многие устройства Интернета вещей поддерживают MQTT изначально вне коробки, при этом длинный хвост протоколов Интернета вещей рационализируется в MQTT по нижестоящим шлюзам перевода.
Брокер MQTT поддерживает уровень обмена сообщениями в Операциях Интернета вещей и поддерживает MQTT версии 3.1.1 и MQTT версии 5. Дополнительные сведения о поддерживаемых функциях MQTT см. в разделе "Поддержка функций MQTT" в брокере MQTT.
Высокая доступность и масштабируемость.
Kubernetes может горизонтально масштабировать рабочие нагрузки для выполнения в нескольких экземплярах. Эта избыточность означает дополнительную емкость для обслуживания запросов и надежности в случае падения любого экземпляра. Kubernetes имеет встроенное самовосстановление, и экземпляры восстанавливаются автоматически.
В дополнение к Kubernetes является технологией эластичного масштабирования, это также стандарт для DevOps. Если MQTT является lingua franca среди протоколов Интернета вещей, Kubernetes является lingua franca для уровня инфраструктуры вычислений. Приняв Kubernetes, вы можете использовать один конвейер CI/CD, средства, мониторинг, упаковка приложений, навыки сотрудников везде. Результатом является единая сквозная система из облачных вычислений, локальных серверов и небольших шлюзов Интернета вещей на фабрике. Вы можете тратить меньше времени на работу с инфраструктурой или DevOps и сосредоточиться на вашем бизнесе.
Брокер MQTT фокусируется на уникальном граничном значении плоскости данных, которое он может предоставить экосистеме Kubernetes, без проблем в нем. Она обеспечивает высокую производительность и масштабируемую плоскость платформы обмена сообщениями и простую интеграцию с другими масштабируемыми рабочими нагрузками Kubernetes и Azure.
Обеспечение безопасности по умолчанию
Брокер MQTT основывается на принципах безопасности и идентификации, протестированных в боях, Azure и Kubernetes, что делает его как высокобезопасным, так и пригодным для использования. Она поддерживает несколько механизмов проверки подлинности для гибкости, а также детализированные механизмы управления доступом вплоть до отдельного уровня раздела MQTT.
Совет
Доступ к развертыванию брокера MQTT по умолчанию можно получить только с помощью IP-адреса кластера, TLS и маркера учетной записи службы. Клиенты, подключающиеся извне кластера, нуждаются в дополнительной конфигурации, прежде чем они смогут подключиться.
Интеграция Azure Arc
Гибридная платформа Майкрософт привязана к Kubernetes с Azure Arc в качестве единой плоскости управления. Он предоставляет плоскость управления, которая проектирует существующие ресурсы, отличные от Azure, локальные или другие облачные ресурсы, в Azure Resource Manager. Результатом является одна панель управления для управления виртуальными машинами, кластерами Kubernetes и базами данных, не работающими в центрах обработки данных Azure.
Брокер MQTT развертывается как расширение Azure Arc для Kubernetes и может управляться с помощью полнофункционированного поставщика ресурсов Azure (RP) — microsoft/IoTOperationsMQ. Это означает, что вы можете управлять им так же, как собственные облачные ресурсы Azure, такие как Виртуальные машины, хранилище и т. д.
Технология Azure Arc позволяет вносить изменения в службы брокера MQTT, работающие в локальном кластере Kubernetes. При необходимости, если вы предпочитаете полностью собственный подход Kubernetes, вы можете управлять брокером MQTT с помощью пользовательских определений ресурсов Kubernetes (CRD) локально или с помощью технологий GitOps, таких как Flux.
Облачные соединители
Для облачного сценария могут потребоваться разные требования к обмену сообщениями. Например, двунаправленный облачный и пограничный быстрый путь для данных высокого приоритета или для питания облачных панелей мониторинга практически в режиме реального времени и более низкой стоимости медленного пути для менее критически важных данных, которые можно обновить в пакетах.
Чтобы обеспечить гибкость, брокер MQTT предоставляет встроенные соединители Azure для Центров событий (с конечной точкой Kafka), возможности брокера MQTT Сетки событий, Microsoft Fabric и хранилища BLOB-объектов. Брокер MQTT является расширяемым, чтобы выбрать предпочитаемое решение для обмена сообщениями в облаке, которое работает с вашим решением.
На основе Azure Arc соединители можно настроить для использования управляемого удостоверения Azure для доступа к облачным службам с мощными контроль доступа на основе ролей Azure (RBAC). Не требуется ручное, небезопасное и громоздкое управление учетными данными.
Модель программирования Dapr
Dapr упрощает сантехнику между распределенными приложениями путем предоставления общих возможностей распределенных приложений, таких как управление состоянием, вызов между службами и обмен сообщениями с подпиской на публикацию. Компоненты Dapr лежат под стандартными блоками и обеспечивают конкретную реализацию для каждой возможности. Вы можете сосредоточиться на бизнес-логике и разрешить Dapr обрабатывать сведения о распределенном приложении.
Брокер MQTT предоставляет подключаемые блоки dapr publish-subscribe и хранилища состояний, что делает разработку и развертывание приложений, управляемых событиями, на пограничных простом и технологически не зависящих от технологии.
Архитектура
Брокер MQTT имеет три уровня:
- Интерфейсный уровень без отслеживания состояния, обрабатывающий запросы клиента
- Подсистема балансировки нагрузки, которая направляет запросы и подключает брокер к другим пользователям
- Уровень с отслеживанием состояния и сегментированные внутренние уровни, в которой хранятся и обрабатываются данные
Внутренний слой секционирует данные по разным ключам, таким как идентификатор клиента для сеансов клиента, а также имя раздела для сообщений раздела. В нем используется репликация цепочки для репликации данных в каждой секции. Для данных, совместно используемых всеми секциями, используется одна цепочка, которая охватывает все секции.
Цели архитектуры:
- Отказоустойчивость и изоляция: публикация сообщений продолжается, если внутренние узлы завершаются сбоем и предотвращают распространение сбоев в остальной части системы.
- Восстановление сбоев: автоматическое восстановление отказа без вмешательства оператора
- Отсутствие потери сообщений: доставка сообщений, если выполняется по крайней мере один внешний узел и один внутренний узел
- Эластичное масштабирование: горизонтальное масштабирование публикации и подписки пропускной способности для поддержки пограничных и облачных развертываний
- Согласованность производительности в масштабе: ограничение задержки сообщений из-за репликации цепочки
- Операционная простота: минимальная зависимость от внешних компонентов для упрощения обслуживания и сложности