Share via


Confiabilidad en la carga de trabajo de IoT

Las cargas de trabajo de IoT, como todas las cargas de trabajo, tienen el potencial de funcionar mal. Las principales consideraciones de confiabilidad para las soluciones de IoT bien diseñadas son la rapidez con la que puede detectar los cambios y la rapidez con la que puede reanudar las operaciones.

A menudo, las aplicaciones de IoT se distribuyen a gran escala y pueden funcionar en redes no confiables sin acceso persistente ni visibilidad en flujos de datos de un extremo a otro. Debido a estos factores, debe diseñar la arquitectura de IoT teniendo en cuenta la disponibilidad y la resistencia.

La creación de una solución de IoT confiable requiere una consideración cuidadosa de los dispositivos, los servicios en la nube y cómo interactúan. Las opciones que se toman para el hardware del dispositivo, la conectividad y los protocolos, y los servicios en la nube afectan a los requisitos y funcionalidades de confiabilidad de la solución.

Evaluación de la confiabilidad en la carga de trabajo de IoT

Para evaluar la carga de trabajo de IoT mediante las lentes del pilar de confiabilidad de Well-Architected Framework, complete las preguntas de confiabilidad de las cargas de trabajo de IoT en Azure Well-Architected Review. Después de que la evaluación identifique las recomendaciones clave de confiabilidad de la solución de IoT, use el siguiente contenido para ayudar a implementar las recomendaciones.

Principios de diseño

Cinco pilares de excelencia arquitectónica respaldan la metodología de diseño de cargas de trabajo de IoT. Estos pilares sirven como brújula para las decisiones de diseño posteriores en las principales áreas de diseño de IoT. Los siguientes principios de diseño amplían el pilar de calidad de Azure Well-Architected Framework: confiabilidad.

Principio de diseño Consideraciones
Diseño de dispositivos para resistencia Diseñe los dispositivos para satisfacer los requisitos de tiempo de actividad y disponibilidad de la solución de un extremo a otro. Asegúrese de que el dispositivo IoT puede funcionar de forma eficaz con conectividad intermitente a la nube.
Diseño de requisitos empresariales Las implicaciones de los costos son inevitables al introducir modificaciones arquitectónicas para cumplir los acuerdos de nivel de servicio (SLA). Por ejemplo, para tener una mayor confiabilidad y alta disponibilidad, puede implementar redundancias entre regiones y un sistema automatizado para el escalado automático. Este equilibrio debe considerarse con cuidado.
Procedimientos de actualización seguros y sencillos Una solución de IoT empresarial debe proporcionar una estrategia para cómo administran los operadores los dispositivos. Los operadores de IoT requieren herramientas y prácticas de actualización sencillas y confiables.
Observación del estado de la aplicación Defina indicadores de nivel de servicio (SLI) y objetivos de nivel de servicio (SLO) en función de la observabilidad. Agregue procesos para la auditoría, la supervisión y las alertas más allá de lo que proporcionan los servicios en la nube.
Alta disponibilidad y recuperación ante desastres (HA/DR) para componentes críticos. Componentes resistentes de hardware y software que se basan en redundancia, incluidas las redundancias entre regiones.
Planeamiento de la capacidad Planee las cuotas de servicio y las limitaciones, la latencia entre la acción de detección y establezca puntos de referencia a escala de producción para admitir el flujo de datos ininterrumpido.

Capas de arquitectura de IoT

Los principios de diseño de confiabilidad ayudan a aclarar las consideraciones para asegurarse de que la carga de trabajo de IoT cumple los requisitos de las capas fundamentales de la arquitectura de IoT. Para lograr la confiabilidad general de la solución, cada capa debe tener niveles aceptables de confiabilidad.

Diagrama que muestra las capas y las actividades transversales en una arquitectura de IoT.

Capa de dispositivo y puerta de enlace

Como parte de la solución de IoT general, diseñe los dispositivos para satisfacer los requisitos de disponibilidad y tiempo de actividad de un extremo a otro de la solución. Los dispositivos y las puertas de enlace tienen muchas formas. Los dispositivos y puertas de enlace de IoT pueden realizar la recopilación de datos, el control de supervisión y el análisis perimetral.

  • La recopilación de datos conecta los dispositivos a los sensores o los suscribe a la telemetría de los sistemas de bajada e inserta los datos recopilados en la nube. El diseño de la solución de IoT debe garantizar una administración de dispositivos confiable y comunicaciones confiables desde el dispositivo a la nube.

  • Los dispositivos que proporcionan control de supervisión no solo recopilan datos para enviarlos a la nube, sino que también realizan acciones basadas en esos datos. Los dispositivos envían datos de vuelta a las máquinas o al entorno para realizar acciones de supervisión. La confiabilidad de las aplicaciones de control de supervisión es fundamental.

Diseño de dispositivos

Diseñe y seleccione dispositivos IoT para funcionar de forma confiable en las condiciones de funcionamiento esperadas durante su duración prevista. Un dispositivo confiable debe realizar según sus especificaciones de hardware y software, y cualquier error debe detectarse y administrarse mediante mitigación, reparación o reemplazo. Diseñe dispositivos para la confiabilidad, pero también planee errores.

Ciclo de vida del dispositivo

La duración limitada del servicio afecta a la confiabilidad de la solución. Evalúe las consecuencias del error del dispositivo en la solución y defina una estrategia de ciclo de vida del dispositivo según los requisitos de la solución.

La evaluación del impacto en los errores del dispositivo incluye:

  • Gravedad, como puntos únicos de errores.
  • Probabilidad, como el tiempo medio entre errores.
  • Detectabilidad, como el modo de error y el análisis de efectos.
  • Período de tiempo de inactividad aceptable.

El tiempo de inactividad operativo aceptable determina la velocidad y la extensión del mantenimiento del dispositivo. La disponibilidad o la durabilidad del dispositivo y el suministro de pieza es una consideración importante para el ciclo de vida del dispositivo.

Cuanto más modular sea el diseño, más fácil es intercambiar partes del sistema, especialmente si algunas partes se vuelven obsoletas antes que otras. Las cadenas de suministro de componentes y módulos alternativas o de varios orígenes son fundamentales para soluciones confiables.

Requisitos de entorno

Las condiciones en las que opera un dispositivo afectan a su confiabilidad. Defina los requisitos del entorno y use dispositivos con las especificaciones de características adecuadas. Estas especificaciones incluyen parámetros como el rango de temperatura de funcionamiento, la humedad, la clasificación de protección de entrada (IP), la inmunidad de interferencia electromagnética (EMI) y la inmunidad de choque y vibración.

Perfil operativo

El esfuerzo de rendimiento afecta al comportamiento operativo de los dispositivos y, por tanto, su confiabilidad. Defina perfiles operativos que calcule el comportamiento durante la duración del dispositivo y evalúe la confiabilidad de los dispositivos en consecuencia. Estos perfiles incluyen modos de operación, como la transmisión inalámbrica o los modos de bajo consumo, y las condiciones ambientales, como la temperatura, durante la duración del dispositivo.

En condiciones de funcionamiento normales, el dispositivo y el software deben ejecutarse de forma segura dentro de los perfiles operativos especificados. Los dispositivos deben ser capaces de atender y procesar todos los sensores externos y el procesamiento de datos que requiere la solución. Evite ejecutarse en el límite de funcionalidades del dispositivo.

Normativas y estándares

Los dispositivos para sectores específicos están sujetos a normativas y estándares aplicables. Defina normativas y estándares, y asegúrese de que los dispositivos cumplan los requisitos de cumplimiento y conformidad. Las regulaciones incluyen la certificación y el marcado, como FCC o CE. Los estándares incluyen aplicaciones de la industria o agencia, como ATEX y MIL-SPEC, y la conformidad de seguridad, por ejemplo IEC 61508.

Capa de modelado y administración de dispositivos

Los servicios en la nube proporcionan a cada dispositivo una identidad y administran los dispositivos a escala. La nube suele ser el punto de entrada de datos final para todos los mensajes que fluyen desde los dispositivos. En las soluciones de IoT, los servicios en la nube deben proporcionar confiabilidad para que los dispositivos IoT integren y transmitan datos.

Las condiciones de conectividad del dispositivo, incluidas las de nivel superior a la nube y de bajada a las redes locales, deben formar parte del diseño de confiabilidad de la solución de IoT. Evalúe el posible efecto de la interrupción o interferencia de conectividad y defina una estrategia de conectividad en consecuencia.

La estrategia de conectividad debe incluir solidez, por ejemplo, la funcionalidad de reserva y la administración de desconexión, y la copia de seguridad de almacenamiento en búfer para mitigar la dependencia de la nube para las funciones críticas o de seguridad.

Los siguientes procedimientos de diseño, control de errores y supervisión se relacionan con la conectividad.

Diseño de conectividad

Una solución de IoT debe habilitar el flujo de información entre dispositivos conectados intermitentemente y servicios basados en la nube. Asegúrese de que los dispositivos IoT pueden funcionar de forma eficaz con conectividad intermitente a la nube.

Entre los procedimientos recomendados se incluyen las siguientes recomendaciones:

  • Implemente la lógica de reintento y retroceso en el software del dispositivo.
  • Sincronice el estado del dispositivo con la nube.
  • Asegúrese de que puede almacenar datos en dispositivos si la solución no puede tolerar la pérdida de datos.
  • Use el muestreo de datos y las simulaciones para medir la capacidad de red y las líneas base de requisitos de almacenamiento.

Implementación de conectividad

Los SDK de dispositivo IoT de Azure proporcionan bibliotecas cliente que puede usar en dispositivos o puertas de enlace para simplificar la conectividad con los servicios de Azure IoT. Puede usar los SDK para instrumentar clientes de dispositivos IoT que:

  • Conéctese a la nube.
  • Proporcionar una experiencia de desarrollo de cliente coherente en distintas plataformas.
  • Simplifique las tareas de conectividad comunes mediante la abstracción de los detalles de los protocolos subyacentes y los patrones de procesamiento de mensajes, como retroceso exponencial con vibración y lógica de reintento.

Supervisión de la conectividad

Los problemas de conectividad de los dispositivos IoT pueden ser difíciles de solucionar debido a los muchos posibles puntos de error. La lógica de la aplicación, las redes físicas, los protocolos, el hardware, la Azure IoT Hub y otros servicios en la nube pueden tener problemas.

La capacidad de detectar e identificar el origen de un problema es fundamental. Sin embargo, una solución de IoT a escala podría tener miles de dispositivos, por lo que no resulta práctico comprobar manualmente los dispositivos individuales. Azure Monitor y Azure Event Grid pueden ayudarle a diagnosticar problemas de conectividad en IoT Hub.

Recursos de conectividad

Capa de ingesta y nivel de comunicación

El nivel de ingesta y comunicación de IoT abarca las cuotas y límites del servicio, la capacidad, la limitación y la escalabilidad automática.

Diseño de capacidad redundante

Al planear umbrales y alertas, tenga en cuenta la latencia entre la detección y la acción realizadas. Asegúrese de que el sistema y los operadores tengan tiempo suficiente para responder a las solicitudes de cambio. De lo contrario, por ejemplo, podría detectar una necesidad de aumentar el número de unidades, pero el sistema podría producir un error al perder mensajes antes de que el aumento pueda surtir efecto.

Planeamiento de cuotas de servicio

Al igual que con todos los servicios de plataforma, IoT Hub y el servicio de aprovisionamiento de dispositivos (DPS) de IoT Hub aplican cuotas y limitaciones en determinadas operaciones, por lo que Azure puede ofrecer niveles de servicio predecibles y costos para sus servicios. Las cuotas y limitaciones están vinculadas al nivel de servicio y al número de unidades que implemente, por lo que puede diseñar la solución con el número correcto de recursos. Revise las cuotas y las limitaciones de antemano y diseñe los recursos de IoT Hub y DPS en consecuencia.

Pruebas comparativas a escala de producción

A medida que aumenta el número de dispositivos o el volumen de datos, la puerta de enlace en la nube debe escalarse para admitir el flujo de datos ininterrumpido. Debido a la naturaleza distribuida de las soluciones de IoT, el número de dispositivos y el volumen de datos, es importante establecer pruebas comparativas de escala para la solución general. Estas pruebas comparativas ayudan a planear los riesgos de capacidad. Use el simulador de telemetría de dispositivos IoT de Azure para simular volúmenes de escalado de producción.

Escalado automático para ajustar dinámicamente a las cuotas

Una ventaja de usar componentes de plataforma como servicio (PaaS) es la capacidad de escalar y reducir verticalmente con poco esfuerzo según sus necesidades. Para proporcionar el menor costo y esfuerzo operativo, considere la posibilidad de implementar un sistema automatizado para escalar y reducir verticalmente los recursos con las distintas necesidades de la solución.

Administración de cuotas y limitaciones

Para garantizar la confiabilidad de la solución, supervise continuamente el uso de recursos frente a cuotas y limitaciones para detectar aumentos de uso que indican la necesidad de escalar. En función de los requisitos empresariales, puede supervisar continuamente el uso de recursos y alertar al operador cuando se cumplan los umbrales o implementar un sistema automatizado para el escalado automático.

Capacidad y escalado de recursos

Nivel de transporte

Para conectarse al servicio en la nube para los datos, el control y la administración, los dispositivos necesitan acceso a una red. Según el tipo de solución de IoT, la confiabilidad de la conectividad puede ser su responsabilidad o la del proveedor de servicios de red. Las redes pueden tener problemas de conectividad intermitentes y los dispositivos deben administrar su comportamiento en consecuencia.

Capa de DevOps

Una solución de IoT empresarial debe proporcionar una estrategia para que los operadores administren el sistema. Para abordar la confiabilidad, la administración y las operaciones de IoT deben usar procesos de DevOps para controlar las actualizaciones, la observabilidad y la supervisión, y la implementación de alta disponibilidad y recuperación ante desastres.

Actualizaciones

El aspecto del dispositivo de las soluciones de IoT presenta desafíos en comparación con las soluciones basadas en la nube. Por ejemplo, debe haber una manera de actualizar continuamente los dispositivos para abordar vulnerabilidades y cambios en la aplicación.

Debido a la naturaleza distribuida de las soluciones de IoT, es importante adoptar directivas seguras y seguras para implementar actualizaciones. Los operadores de IoT requieren herramientas y prácticas de actualización sencillas y confiables.

Una solución de actualización de dispositivos debe admitir:

  • Implementación gradual de actualizaciones a través de controles de programación y agrupación de dispositivos.
  • Compatibilidad con actualizaciones resistentes de dispositivos A/B para la reversión sin problemas.
  • Herramientas detalladas de administración de actualizaciones e informes.
  • Optimización de red basada en el ancho de banda disponible.

Device Update para IoT Hub es un servicio que permite actualizaciones de dispositivo IoT seguras, seguras y confiables a través del aire (OTA). Device Update para IoT Hub puede agrupar dispositivos y especificar qué dispositivos deben recibir una actualización. Los operadores pueden ver el estado de las implementaciones de actualizaciones y si cada dispositivo aplica correctamente las actualizaciones necesarias.

Si se produce un error en una actualización, Device Update ayuda a los operadores a identificar los dispositivos con errores y a ver los detalles del error. La capacidad de identificar qué dispositivos no se pudieron eliminar las horas de intentar identificar manualmente el origen del error.

Device Update supervisa el estado de las implementaciones y actualizaciones de dispositivos e informa de cuántos dispositivos son compatibles con la actualización compatible con la versión más alta disponible.

Observabilidad y supervisión

Para administrar la confiabilidad general de la solución y definir procedimientos de alerta, debe supervisar todos los componentes de la solución de IoT. Todos los servicios de Azure IoT publican métricas que describen el estado y la disponibilidad del servicio. Para establecer la observabilidad de un extremo a otro, tenga en cuenta también las métricas que necesita en el lado del dispositivo. Use estas métricas como parte de la supervisión general de la confiabilidad de la solución.

La supervisión y el diagnóstico de aplicaciones de IoT son cruciales para la disponibilidad y la resistencia. En caso de error, es necesario saber que se ha producido, cuándo y por qué. Al supervisar el funcionamiento de una aplicación de IoT y los dispositivos en un estado correcto, puede detectar y corregir problemas de confiabilidad.

Para mitigar los problemas que afectan a la confiabilidad de las aplicaciones de IoT, debe poder capturar registros y señales que le ayuden a detectar problemas en las operaciones de un extremo a otro. Use el registro y la supervisión para determinar si una solución de IoT funciona según lo previsto y para ayudar a solucionar problemas con los componentes de la solución.

Las siguientes acciones admiten la observabilidad de las soluciones de IoT:

  • Establezca un mecanismo para recopilar y analizar las métricas y alertas de rendimiento.
  • Configure dispositivos, servicios en la nube y aplicaciones para recopilar y conectarse con Azure Monitor.
  • Use paneles y alertas en tiempo real para supervisar los servicios back-end de Azure.
  • Defina roles y responsabilidades para supervisar y actuar en eventos y alertas. Para obtener más información, consulte Roles, responsabilidades y permisos.
  • Implementar la supervisión continua.

Azure Monitor

Azure Monitor es la plataforma de supervisión y visualización recomendada para las soluciones de Azure IoT. Puede configurar dispositivos, servicios en la nube y aplicaciones, independientemente de la ubicación de implementación, para insertar mensajes de registro directamente o a través de conectores integrados en Azure Monitor.

  • Use la integración de métricas integradas de Azure Monitor para la supervisión remota de dispositivos IoT Edge. Para habilitar esta funcionalidad en los dispositivos, agregue el módulo IoT Edge Metrics Collector a la implementación y configúrelo para recopilar y transportar métricas del módulo a Azure Monitor.

  • Con Azure Monitor, puede supervisar el estado del entorno de IoT Hub, asegurarse de que se ejecuta correctamente y comprobar que los dispositivos no se están limitando o experimentando problemas de conexión. IoT Hub proporciona métricas de uso, como el número de mensajes usados y el número de dispositivos conectados. Puede retransmitir estos datos a Azure Monitor para su análisis y alertar a otros servicios.

  • Si la solución usa Azure IoT Central, puede usar las métricas que proporciona IoT Central para evaluar el estado de los dispositivos conectados y las exportaciones de datos activas. Las aplicaciones de IoT Central habilitan las métricas de forma predeterminada, a las que puede acceder desde el Azure Portal. Azure Monitor expone y proporciona varias maneras de interactuar con estas métricas.

  • Azure Monitor proporciona análisis de registros personalizados para facilitar la descomposición de eventos y registros en campos individuales para la indexación y la búsqueda.

  • Implemente paneles en tiempo real y alertas de Azure Monitor para supervisar los servicios back-end de Azure. Las alertas le notifican proactivamente las condiciones específicas de los datos de supervisión, por lo que puede identificar y solucionar problemas antes de que los clientes los encuentren. Puede establecer alertas en métricas, registros y el registro de actividad.

Application Insights es una característica de Azure Monitor que proporciona administración extensible del rendimiento de aplicaciones y supervisión para aplicaciones web en vivo. Si la solución de IoT usa aplicaciones personalizadas de Azure App Service, Azure Kubernetes Service o Azure Functions, puede usar Application Insights para la supervisión y el análisis de aplicaciones.

Application Insights puede:

  • Detectar automáticamente las anomalías de rendimiento.
  • Ayudar a diagnosticar problemas mediante herramientas de análisis eficaces.
  • Mostrar lo que los usuarios hacen realmente con las aplicaciones.
  • Ayuda a mejorar continuamente el rendimiento y la facilidad de uso de la aplicación.

Supervisión continua

La integración continua y la implementación continua (CI/CD) es una práctica de DevOps que ofrece software de forma más rápida y confiable para proporcionar valor continuo a los usuarios. La supervisión continua (CM) es un concepto similar que incorpora la supervisión en todas las fases y componentes de un ciclo de DevOps.

CM garantiza continuamente el estado, el rendimiento y la confiabilidad de las aplicaciones y la infraestructura a medida que fluyen a través del desarrollo, producción y lanzamiento a los clientes. Para más información, consulte:

Supervisión de recursos

Alta disponibilidad y recuperación ante desastres para componentes críticos

A medida que diseña y compila la solución de IoT, debe cumplir el Acuerdo de Nivel de Servicio para la recuperación de errores en la pila de soluciones. El Acuerdo de Nivel de Servicio debe guiarle en relación con qué componentes críticos del sistema necesitan alta disponibilidad y recuperación ante desastres. Hay varios enfoques, desde la redundancia en la pila de soluciones de IoT hasta la redundancia para capas específicas. El costo también es una consideración importante para pesar la importancia de cumplir los Acuerdos de Nivel de Servicio.

  • Los servicios de Azure IoT han definido el tiempo de actividad y los destinos de disponibilidad. Revise los SLA para los servicios de Azure IoT que forman parte de la solución para ver si cumplen los objetivos de tiempo de actividad. Por ejemplo, Azure IoT Hub tiene un Acuerdo de Nivel de Servicio del 99,9 %, lo que significa que debe planear durante 1 minuto y 36 segundos de tiempo de inactividad potencial al día. El SDK de Azure IoT Hub proporciona lógica integrada y configurable para controlar los reintentos y el retroceso.

  • Considere la posibilidad de dividir los objetivos de tiempo de actividad en dos categorías: operaciones de ingesta de datos y administración de dispositivos. Por ejemplo, podría ser fundamental que un dispositivo envíe correctamente datos a un centro de IoT, incluso si los servicios de administración de dispositivos no están disponibles. Para más información, consulte las características de confiabilidad del SDK de Azure IoT Hub.

  • Considere la posibilidad de usar hardware redundante para sensores, energía y almacenamiento. El hardware redundante permite que los dispositivos funcionen si un componente crítico no está disponible. El hardware también puede ayudar con problemas de conectividad. Por ejemplo, puede usar un enfoque de almacenamiento y reenvío para los datos cuando la conectividad no está disponible. Azure IoT Edge tiene esta característica integrada.

  • Los dispositivos también deben poder controlar las interrupciones en la nube. El emparejamiento de regiones de Azure proporciona una estrategia de alta disponibilidad y recuperación ante desastres para IoT Hub que cumple muchos requisitos de Acuerdo de Nivel de Servicio. Si el emparejamiento de regiones no es suficiente, considere la posibilidad de implementar un centro de IoT secundario. También puede usar DPS para evitar configuraciones de IoT Hub codificadas de forma segura en los dispositivos. Si el centro de IoT principal deja de funcionar, DPS puede asignar los dispositivos a otro centro.

  • Considere la posibilidad de implementar un patrón de mensajes de latido para los dispositivos que espera estar en línea la mayor parte del tiempo. Este patrón usa una ruta de IoT Hub personalizada con Azure Stream Analytics, Azure Logic Apps o Azure Functions para determinar si se ha producido un error en un latido. Puede usar el latido para definir alertas de Azure Monitor que realicen acciones según sea necesario.

Recursos de alta disponibilidad y recuperación ante desastres

Pasos siguientes