Arquitectura de referencia de Azure IoT

Blob Storage
Functions
IoT Hub
IoT Device Provisioning Service
Logic Apps
Stream Analytics

En este artículo, se analiza una arquitectura recomendada para aplicaciones de IoT que utilizan componentes Azure PaaS (plataforma como servicio). En el diagrama siguiente se reflejan diferentes componentes de Azure que se pueden usar para diseñar una solución de IoT. El diagrama muestra (y el artículo resalta) la mayoría de los servicios que se usan con frecuencia, pero ninguna solución necesita usar todos ellos. Si acaba de empezar a trabajar con Azure IoT o si quiere crear su primera solución de prueba de concepto, comience aquí:

Diagrama de la arquitectura

Esta arquitectura de referencia usa componentes de PaaS (plataforma como servicio) de Azure. Microsoft recomienda comenzar a usar Azure IoT Central, que es una plataforma de solución de IoT de aPaaS (plataforma de aplicaciones como servicio). Está diseñado para simplificar y acelerar el ensamblaje y las operaciones de la solución de IoT al ensamblar previamente, escalar y administrar muchos de los mismos servicios PaaS descritos en esta arquitectura de referencia. El resultado es un área de superficie de API y experiencia de usuario lista para usar que se completa con las funcionalidades necesarias para conectar, administrar y operar flotas de dispositivos a escala. Obtenga más información sobre cómo comparar IoT Central (aPaaS) con un enfoque de solución PaaS de Azure en función de las necesidades de la solución.

Las soluciones de Azure IoT implican cosas (generalmente dispositivos) que generan datos, los detalles que se consiguen con los datos y las acciones que realiza en función de los detalles. Por ejemplo, pensemos en un motor que envía datos de temperatura. Estos datos se utilizan para evaluar si el motor está funcionando según lo esperado. La información sobre su rendimiento se usa para priorizar una programación de mantenimiento para el motor.

Dispositivos

Azure IoT admite una gran variedad de dispositivos, desde microcontroladores que ejecutan Azure RTOS y Azure Sphere hasta paneles para desarrolladores como MX Chip y Raspberry Pi. Azure IoT también admite puertas de enlace de servidor inteligentes capaces de ejecutar código personalizado. Los dispositivos pueden realizar algún tipo procesamiento local a través de un servicio como Azure IoT Edge, o simplemente conectarse directamente a Azure para poder enviar y recibir datos de la solución de IoT.

Cuando los dispositivos están conectados a la nube, existen varios servicios que le ayudan a ingerir datos. Azure IoT Hub es un servicio de puerta de enlace en la nube que puede conectar y administrar dispositivos de forma segura. IoT Hub Device Provisioning Service (DPS) permite realizar un aprovisionamiento de tipo Just-In-Time y sin intervención del usuario que le ayuda a registrar una gran cantidad de dispositivos de forma segura y escalable. Azure Digital Twins habilita modelos virtuales de sistemas del mundo real.

Información detallada

Una vez que los dispositivos se han conectado a la nube, sus datos se pueden procesar y explorar para obtener información personalizada sobre su entorno. A nivel general, existen dos maneras de procesar datos —: las rutas de acceso activas, flexibles y las inactivas. La diferencia entre ellas tiene que ver con los requisitos de latencia y de acceso a datos.

  • Las rutas de acceso activas analizan los datos según llegan, casi en tiempo real. En las rutas de acceso activas, los datos de telemetría se deben procesar con una latencia muy baja. Una ruta de acceso activa se implementa normalmente mediante un motor de procesamiento de flujos. Considere la posibilidad de usar servicios como Azure Stream Analytics o HDInsight. La salida puede desencadenar una alerta o escribirse en un formato estructurado que se puede consultar mediante herramientas de análisis.
  • La ruta de acceso flexible analiza los datos que pueden adaptarse a los retrasos más largos para obtener un procesamiento más detallado. Considere la posibilidad de usar Azure Data Explorer o Azure Time Series Insights para almacenar y analizar grandes volúmenes de datos.
  • Las rutas de acceso inactivas realizan un procesamiento por lotes en intervalos más prolongados (cada hora o diariamente). La ruta de acceso inactiva se emplea generalmente con grandes volúmenes de datos que se pueden almacenar en Azure Data Lake, pero los resultados no se necesitan de manera tan urgente como los de las rutas activas o flexibles. Considere la posibilidad de usar Azure Machine Learning o Azure Databricks para analizar datos inactivos.

Acciones

Puede utilizar la información detallada recopilada a partir de los datos del dispositivo para supervisar, administrar y controlar el entorno. Las acciones de integración empresarial pueden incluir el almacenamiento de mensajes informativos, la generación de alarmas, el envío de mensajes de correo electrónico o de SMS o la integración con aplicaciones empresariales como CRM y ERP. Los siguientes servicios están disponibles para la administración y la integración empresarial:

  • Power BI se conecta a los datos y los modela y visualiza. Power BI le permite trabajar en conjunto con los datos y usar la inteligencia artificial para tomar decisiones controladas por datos.
  • Azure Maps le permite crear aplicaciones web y móviles que tienen en cuenta la ubicación mediante servicios geoespaciales (búsquedas, mapas, enrutamiento, seguimiento y tráfico), API y SDK.
  • Azure Cognitive Search proporciona un servicio de búsqueda sobre diversos tipos de contenido. Esto incluye la indexación, el enriquecimiento con IA y las funcionalidades de consulta.
  • Azure API Management proporciona una única ubicación para administrar todas las API.
  • Azure Web Apps le permite implementar aplicaciones web que se escalan con la organización.
  • Mobile Apps le permite crear aplicaciones nativas y multiplataforma para iOS, Android, Windows o Mac.
  • Dynamics 365 combina CRM (administración de relaciones con clientes) y ERP (planificación de recursos empresariales) en la nube.
  • Microsoft Flow es una oferta de SaaS para automatizar flujos de trabajo entre aplicaciones y otros servicios de SaaS.
  • Azure Logic Apps es una oferta de PaaS basada en la nube que se usa para crear y automatizar los flujos de trabajo que integran las aplicaciones, datos, servicios y sistemas.

Azure también proporciona varios servicios para ayudarle a supervisar toda la solución de IoT y mantenerla segura. Los servicios de diagnóstico incluyen Azure Monitor. Los servicios de seguridad como Azure Active Directory y Azure Defender para IoT le permiten controlar, ver y administrar la configuración de seguridad, la detección de amenazas y la respuesta.

Digital Twins

Los clientes pueden explorar Digital Twins como un mecanismo para controlar y supervisar los entornos conectados. Un gemelo digital es un modelo virtual de un entorno real que funciona con los datos de sistemas empresariales y dispositivos de IoT. Se usa para proporcionar detalles y acciones de una empresa u organización. Así pues, los desarrolladores y arquitectos buscan gemelos digitales como una solución que les permita habilitar entornos inteligentes y conectados, como los siguientes:

  • Mantenimiento predictivo en la fabricación
  • Visibilidad de la cadena de suministro
  • Preparación para confirmaciones inteligentes para los inventarios en tiempo real
  • Hogares conectados y edificios inteligentes

Implementación a escala

Compile la solución para implementarla a escala global. Para lograr una escalabilidad óptima, compile la aplicación de IoT como servicios discretos que se pueden escalar de forma independiente. Esta sección contiene información sobre la escalabilidad que se puede aplicar en varios servicios de Azure.

Funciones. Cuando se lee desde el punto de conexión de Event Hubs, hay un máximo de instancias de funciones por cada partición del centro de eventos. La velocidad máxima de procesamiento viene determinada por la velocidad con la que una instancia de función puede procesar los eventos procedentes de una única partición. La función debe procesar los mensajes en lotes.

IoT Hub. Para IoT Hub, tenga en cuenta los siguientes factores de escala:

  • La cuota diaria máxima de mensajes en IoT Hub.
  • La cuota de los dispositivos conectados en una instancia de IoT Hub.
  • Rendimiento de ingesta: la rapidez con la que IoT Hub puede ingerir mensajes.
  • Rendimiento de procesamiento: la rapidez con la que se procesan los mensajes entrantes.

Cada instancia de IoT Hub se aprovisiona con un determinado número de unidades en un de precios y escalado nivel determinado. El nivel y el número de unidades determinan la cuota diaria máxima de mensajes que los dispositivos pueden enviar al centro. Para obtener más información, consulte las cuotas y limitaciones de IoT Hub. Se puede escalar verticalmente un centro sin interrumpir las operaciones existentes.

Stream Analytics. Los trabajos de Stream Analytics se escalan mejor si son paralelos en todos los puntos de la canalización de Stream Analytics, desde el de entrada al de consulta y al de salida. Un trabajo totalmente paralelo permite a Stream Analytics dividir el trabajo entre varios nodos de proceso. Para más información, consulte Aprovechamiento de la paralelización de consultas en Azure Stream Analytics.

IoT Hub realiza automáticamente particiones de los mensajes de dispositivo según el id. de dispositivo. Todos los mensajes de un dispositivo concreto llegarán siempre a la misma partición, aunque una única partición puede tener mensajes de varios dispositivos. Por tanto, la unidad de paralelización es el identificador de partición.

Seguridad

Esta sección contiene puntos a tener en cuenta para crear soluciones seguras.

Modelo de seguridad de Confianza cero

"Confianza cero" es un modelo de seguridad que asume que se producirán infracciones y trata cada intento de acceso como si se originara en una red abierta. Así pues, Confianza cero asume que ha implementado los conceptos básicos, como proteger las identidades y limitar el acceso. Esto incluye comprobar explícitamente los usuarios, tener acceso a sus dispositivos y poder tomar decisiones de acceso dinámico mediante la detección de riesgos en tiempo real. Una vez que se cumplan los conceptos básicos, puede cambiar el foco a los siguientes requisitos de Confianza cero para las soluciones de IoT:

  • Use una identidad segura para autenticar los dispositivos.
  • Use el acceso con privilegios mínimos para mitigar el radio del impacto.
  • Supervise el estado del dispositivo para controlar el acceso o marque los dispositivos para su corrección.
  • Realice actualizaciones para mantener los dispositivos en buen estado.
  • Realice supervisiones para detectar amenazas emergentes y responder a estas.

Para obtener todos los detalles, lea las notas del producto Ciberseguridad de Confianza cero para Internet de las cosas.

Comunicación segura y confiable

Toda la información que se recibe desde un dispositivo o que se envía a este debe ser de confianza. A menos que un dispositivo pueda admitir las siguientes funcionalidades criptográficas, se debería limitar a la comunicación con las redes locales y toda comunicación con Internet debería pasar a través de una puerta de enlace de campo:

  • Cifrado de datos y firmas digitales con un algoritmo de cifrado de claves simétricas posiblemente seguro, analizado públicamente y ampliamente implementado.
  • Compatibilidad con TLS 1.2 para TCP o con cualquier otra ruta de acceso de comunicación basada en flujos, o con DTLS 1.2 para rutas de acceso de comunicación basadas en datagramas. La compatibilidad con la administración de certificados X.509 es opcional y se puede sustituir por el modo de clave previamente compartida para TLS, que es más eficiente en el nivel de procesos y en el nivel inalámbrico, y que se puede implementar con compatibilidad con los algoritmos AES y SHA-2.
  • Almacén de claves actualizable y claves por dispositivo. Cada dispositivo debe contar con material o tokens de clave exclusivos que lo identifiquen en el sistema. Los dispositivos deben almacenar la clave de forma segura en el dispositivo (por ejemplo, con un almacén de claves seguro). El dispositivo debe ser capaz de actualizar las claves o tokens periódicamente, o como reacción en situaciones de emergencia como, por ejemplo, una infracción del sistema.
  • El firmware y el software de la aplicación del dispositivo deben permitir las actualizaciones para habilitar la reparación de las vulnerabilidades de seguridad descubiertas.

No obstante, muchos dispositivos están demasiado restringidos para admitir estos requisitos. En ese caso, debe usarse una puerta de enlace de campo. Los dispositivos se conectan de forma segura a la puerta de enlace de campo mediante una red de área local y la puerta de enlace permite una comunicación segura con la nube.

Protección contra manipulación física

Se recomienda encarecidamente que el diseño del dispositivo incorpore características que lo protejan contra cualquier intento de manipulación física, para ayudar a garantizar la integridad de la seguridad y la confiabilidad de todo el sistema.

Por ejemplo:

  • Elija microcontroladores o microprocesadores, o hardware auxiliar que proporcione un almacenamiento seguro, y use material de clave criptográfica como, por ejemplo, la integración de un módulo de plataforma segura (TPM).
  • Cargador de arranque y carga de software seguros, anclados en el TPM.
  • Use sensores para detectar intentos de intrusión e intentos de manipular el entorno del dispositivo con alertas y una posible "autodestrucción digital" del dispositivo.

Para otras consideraciones de seguridad, consulte Arquitectura de seguridad de Internet de las cosas (IoT).

Confiabilidad y rendimiento

Un área clave que hay que considerar para tener soluciones resistentes de IoT es la continuidad empresarial y recuperación ante desastres. El diseño de alta disponibilidad (HA) y de recuperación ante desastres (DR) puede permitirle definir y alcanzar los objetivos de tiempo de actividad adecuados para su solución.

Los distintos servicios de Azure le ofrecen diferentes opciones de redundancia y conmutación por error para ayudarle a lograr los objetivos de tiempo de actividad que mejor se adapten a sus objetivos empresariales. La incorporación de cualquiera de estas alternativas de alta disponibilidad y recuperación ante desastres en la solución de IoT requiere una evaluación cuidadosa de las ventajas y desventajas entre:

  • El nivel de resistencia que necesita
  • La complejidad de implementación y mantenimiento
  • Impacto en el costo de los bienes vendidos (COGS)

En el artículo  Orientación técnica de la continuidad empresarial de Azure se describe un marco general que le ayudará a reflexionar sobre la continuidad empresarial y la recuperación ante desastres. El documento  Recuperación ante desastres y alta disponibilidad para aplicaciones de Azure le proporciona una guía de diseño de arquitectura enfocada a estrategias para que las aplicaciones de Azure logren una alta disponibilidad y recuperación ante desastres.

También puede encontrar información de rendimiento específica del servicio en la documentación de cada servicio de Azure IoT.

Consideraciones sobre el costo

En general, use la calculadora de precios de Azure para calcular los costos. Otras consideraciones se describen en la sección Costo de Marco de buena arquitectura de Microsoft Azure.

Pasos siguientes

Para obtener más información sobre las partes individuales de una arquitectura de la solución, consulte los temas siguientes: