Compartir por


Publicar y suscribir mensajes MQTT mediante Azure IoT MQ Preview

Importante

Operaciones de IoT de Azure, habilitado por Azure Arc, está actualmente en VERSIÓN PRELIMINAR. No se debería usar este software en versión preliminar en entornos de producción.

Consulte Términos de uso complementarios para las versiones preliminares de Microsoft Azure para conocer los términos legales que se aplican a las características de Azure que se encuentran en la versión beta, en versión preliminar o que todavía no se han publicado para que estén disponibles con carácter general.

La versión preliminar de MQ de Azure IoT incluye un agente MQTT de nivel empresarial compatible con estándares que es escalable, de alta disponibilidad y nativo de Kubernetes. Proporciona el plano de mensajería para Operaciones de IoT de Azure (versión preliminar), permite la comunicación perimetral bidireccional o en la nube y potencia aplicaciones controladas por eventos en el perímetro.

Conforme con MQTT

IoT MQ cuenta con un MQTT broker conforme con los estándares que admite MQTT v3.1.1 y MQTT v5.

El Transporte de telemetría de cola de mensajes (MQTT) ha surgido como la lengua franca entre los protocolos del espacio de IoT. El diseño sencillo de MQTT permite que un único broker atienda a decenas de miles de clientes simultáneamente, con una creación y administración ligera de temas de publicación-suscripción. Muchos dispositivos IoT admiten MQTT de forma nativa sin necesidad de configuración, con la larga cola de protocolos de IoT que se racionalizan en MQTT mediante puertas de enlace de traducción posteriores.

IoT MQ usa el protocolo MQTT como base para la capa de mensajería. Para obtener más información acerca de las características MQTT compatibles, consulte Compatibilidad de características MQTT en Azure IoT MQ (versión preliminar).

Alta disponibilidad y escalabilidad.

Kubernetes puede escalar las cargas de trabajo horizontalmente para ejecutarlas en varias instancias. Esta redundancia significa más capacidad para atender las solicitudes y confiabilidad en el caso de que cualquier instancia deje de funcionar. Kubernetes cuenta con recuperación automática integrada y las instancias se recuperan automáticamente.

Además de ser una tecnología de escalado flexible, Kubernetes es también un estándar para DevOps. Si MQTT es la lengua franca entre los protocolos de IoT, Kubernetes es la lengua franca para la capa de infraestructura informática. Al adoptar Kubernetes, puede usar las mismas herramientas, canalización de CI/CD, supervisión, empaquetado de aplicaciones y aptitudes de los empleados en todas partes. El resultado es un único sistema integral que abarca la informática en la nube, los servidores locales y las puertas de enlace de IoT más pequeñas de la planta de producción. Puede dedicar menos tiempo a la infraestructura o a DevOps y centrarse en su negocio.

Azure IoT MQ se centra en el único valor de plano de datos nativo del perímetro que puede proporcionar al ecosistema de Kubernetes, al tiempo que se adapta perfectamente a él. Aporta un plano de plataforma de mensajería escalable y de alto rendimiento creado en torno a MQTT, así como una perfecta integración con otras cargas de trabajo de Kubernetes escalables y Azure.

Seguro de forma predeterminada

IoT MQ se basa en los conceptos probados de identidad y seguridad nativos de Kubernetes y Azure, lo que hace que sea muy seguro y utilizable. Admite varios mecanismos de autenticación para aportar flexibilidad, junto con mecanismos de control de acceso pormenorizado hasta el nivel de tema de MQTT individual.

Integración de Azure Arc

La plataforma híbrida de Microsoft gira en torno a Kubernetes con Azure Arc como único plano de control. Proporciona un plano de administración que proyecta los recursos actuales que no son de Azure o que son del entorno local o de otras nubes en Azure Resource Manager. El resultado es un único panel de control para administrar las máquinas virtuales, los clústeres de Kubernetes y las bases de datos que no se ejecutan en centros de datos de Azure.

IoT MQ se implementa como una extensión de Azure Arc para Kubernetes y se puede administrar a través de un proveedor de recursos de Azure (RP) completo: microsoft/IoTOperationsMQ. Esto significa que puede administrarse igual que los recursos nativos en la nube de Azure, como máquinas virtuales, almacenamiento, etc.

La tecnología de Azure Arc permite que los cambios surtan efecto en los servicios de IoT MQ que se ejecutan en el clúster de Kubernetes local. Opcionalmente, si prefiere un enfoque totalmente nativo de Kubernetes, puede administrar IoT MQ con definiciones de recursos personalizados (CRD) de Kubernetes localmente o usando tecnologías de GitOps, como Flux.

Conectores de la nube

Es posible que tenga requisitos de mensajería diferentes para su escenario en la nube. Por ejemplo, una ruta de acceso rápida bidireccional en la nube o el perímetro para datos de alta prioridad o para alimentar paneles en la nube casi en tiempo real y una ruta de acceso lenta de menor costo para datos menos críticos en cuanto al tiempo que se pueden actualizar en lotes.

Para proporcionar flexibilidad, Azure IoT MQ proporciona conectores de Azure integrados a Event Hubs (con el punto de conexión de Kafka), Funcionalidad de agente MQTT de Event Grid, Microsoft Fabric y Blob Storage. IoT MQ es extensible para que pueda elegir la solución de mensajería en la nube que prefiera y que funcione con su solución.

Al basarse en Azure Arc, permite configurar los conectores para usar la identidad administrada de Azure con el fin de acceder a los servicios en la nube con el eficaz control de acceso basado en rol (RBAC) de Azure. No se requiere ninguna administración manual, no segura y complicada de credenciales.

Modelo de programación de Dapr

Dapr simplifica la fontanería entre las aplicaciones distribuidas mediante la exposición de funcionalidad común de aplicaciones distribuidas, como la administración del estado, la invocación de servicio a servicio y la mensajería de publicación-suscripción. Los componentes de Dapr se basan en estos bloques de creación y proporcionan la implementación concreta de cada funcionalidad. Puede centrarse en la lógica de negocios y dejar que Dapr controle los detalles de las aplicaciones distribuidas.

IoT MQ proporciona bloques de creación de publicación-suscripción y almacenamiento de estados de Dapr conectables que hacen que el desarrollo y la implementación de aplicaciones controladas por eventos en el perímetro sean fáciles e independientes de la tecnología.

Architecture

El MQTT broker tiene tres capas:

  • Capa de front-end sin estado que controla las solicitudes de los clientes.
  • Equilibrador de carga que enruta las solicitudes y conecta el broker con otros.
  • Capa de back-end con estado y particionada que almacena y procesa los datos.

La capa de back-end divide los datos por claves diferentes, como el identificador de cliente para las sesiones de cliente y el nombre del tema para los mensajes de tema. Usa la replicación en cadena para replicar los datos en cada partición. En el caso de los datos compartidos por todas las particiones, usa una única cadena que abarca todas las particiones.

Los objetivos de esta arquitectura son:

  • Tolerancia a errores y aislamiento: la publicación de mensajes continúa si se produce un error en los nodos del back-end e impide que los errores se propaguen al resto del sistema.
  • Recuperación de errores: recuperación automática de errores sin intervención del operador.
  • Sin pérdida de mensajes: entrega de mensajes si se están ejecutando al menos un nodo del front-end y un nodo del back-end.
  • Escalado flexible: escalado horizontal del procesamiento de publicación y suscripción para sustentar implementaciones perimetrales y en la nube.
  • Rendimiento coherente a gran escala: limitar la sobrecarga de latencia de los mensajes debido a la replicación en cadena.
  • Simplicidad operativa: dependencia mínima de los componentes externos para simplificar el mantenimiento y la complejidad.

Pasos siguientes

Implementación de extensiones de Operaciones de IoT de Azure (versión preliminar) en un clúster de Kubernetes