Procedimientos recomendados para la configuración de dispositivos en una solución de IoTBest practices for device configuration within an IoT solution

La administración automática de dispositivos en Azure IoT Hub automatiza muchas de las tareas repetitivas y complejas de administración de grandes flotas de dispositivos durante su ciclo de vida completo.Automatic device management in Azure IoT Hub automates many repetitive and complex tasks of managing large device fleets over the entirety of their lifecycles. En este artículo se definen muchos de los procedimientos recomendados para los diversos roles que intervienen en el desarrollo y el funcionamiento de una solución de IoT.This article defines many of the best practices for the various roles involved in developing and operating an IoT solution.

  • Integrador o fabricante de hardware de IoT: fabricantes de hardware de IoT, integradores que ensamblan hardware de diversos fabricantes o proveedores que proporcionan hardware para una implementación de IoT que fabrican o integran otros proveedores.IoT hardware manufacturer/integrator: Manufacturers of IoT hardware, integrators assembling hardware from various manufacturers, or suppliers providing hardware for an IoT deployment manufactured or integrated by other suppliers. Intervienen en el desarrollo y la integración de firmware, sistemas operativos integrados y software integrado.Involved in development and integration of firmware, embedded operating systems, and embedded software.

  • Desarrollador de soluciones de IoT: el desarrollo de soluciones de IoT suelen realizarlo los desarrolladores de soluciones.IoT solution developer: The development of an IoT solution is typically done by a solution developer. Este desarrollador puede formar parte de un equipo interno o ejercer como integrador de sistemas especializado en esta actividad.This developer may be part of an in-house team or a system integrator specializing in this activity. El desarrollador de soluciones de IoT puede desarrollar diversos componentes de la solución de IoT desde cero, integrar varios componentes estándar o de código abierto o personalizar un acelerador de soluciones de IoT.The IoT solution developer can develop various components of the IoT solution from scratch, integrate various standard or open-source components, or customize an IoT solution accelerator.

  • Operador de soluciones de IoT: una vez que la solución de IoT se implementa, requiere operaciones, supervisión, actualizaciones y mantenimiento a largo plazo.IoT solution operator: After the IoT solution is deployed, it requires long-term operations, monitoring, upgrades, and maintenance. De estas tareas puede encargarse un equipo interno formado por especialistas en tecnología de la información, equipos de operaciones de hardware y mantenimiento y especialistas en dominios que supervisan que la infraestructura de IoT funciona de manera correcta globalmente.These tasks can be done by an in-house team that consists of information technology specialists, hardware operations and maintenance teams, and domain specialists who monitor the correct behavior of the overall IoT infrastructure.

Administración automática de dispositivos para configurar dispositivos IoT a escalaUnderstand automatic device management for configuring IoT devices at scale

La administración automática de dispositivos incluye las muchas ventajas de los dispositivos gemelos y los módulos gemelos para sincronizar los estados deseados y notificados entre los dispositivos y la nube.Automatic device management includes the many benefits of device twins and module twins to synchronize desired and reported states between the cloud and devices. Las configuraciones automáticas de dispositivos actualizan automáticamente grandes conjuntos de gemelos y resumen el progreso y el cumplimiento.Automatic device configurations automatically update large sets of twins and summarize progress and compliance. En los siguientes pasos generales se describe cómo se desarrolla y usa la administración automática de dispositivos:The following high-level steps describe how automatic device management is developed and used:

  • El integrador o fabricante de hardware de IoT implementa las características de administración de dispositivos dentro de una aplicación integrada mediante dispositivos gemelos.The IoT hardware manufacturer/integrator implements device management features within an embedded application using device twins. Estas características pueden incluir actualizaciones de firmware, instalación y actualizaciones de software y administración de configuraciones.These features could include firmware updates, software installation and update, and settings management.

  • El desarrollador de soluciones de IoT implementa la capa de administración de las operaciones de administración de dispositivos mediante dispositivos gemelos y configuraciones automáticas de dispositivos.The IoT solution developer implements the management layer of device management operations using device twins and automatic device configurations. La solución debe incluir la definición de una interfaz de operador para llevar a cabo las tareas de administración de dispositivos.The solution should include defining an operator interface to perform device management tasks.

  • El operador de soluciones de IoT usa la solución de IoT para realizar tareas de administración de dispositivos, en concreto, para agrupar los dispositivos, iniciar cambios de configuración (como actualizaciones de firmware), supervisar el progreso y solucionar los problemas que surjan.The IoT solution operator uses the IoT solution to perform device management tasks, particularly to group devices together, initiate configuration changes like firmware updates, monitor progress, and troubleshoot issues that arise.

Integrador/fabricante de hardware IoTIoT hardware manufacturer/integrator

Los siguientes procedimientos recomendados van dirigidos a los fabricantes e integrados de hardware que se ocupan del desarrollo de software integrado:The following are best practices for hardware manufacturers and integrators dealing with embedded software development:

  • Implementar dispositivos gemelos: los dispositivos gemelos permiten la sincronización de la configuración deseada desde la nube y la notificación de las propiedades actuales de configuración y de dispositivo.Implement device twins: Device twins enable synchronizing desired configuration from the cloud and for reporting current configuration and device properties. La mejor manera de implementar dispositivos gemelos en aplicaciones integradas es mediante los SDK de Azure IoT.The best way to implement device twins within embedded applications is through the Azure IoT SDKs. Los dispositivos gemelos resultan muy adecuados para la configuración debido a que:Device twins are best suited for configuration because they:

    • Admiten la comunicación bidireccional.Support bi-directional communication.
    • Permiten estados de dispositivo conectado y desconectado.Allow for both connected and disconnected device states.
    • Siguen el principio de coherencia final.Follow the principle of eventual consistency.
    • Se pueden consultar completamente en la nube.Are fully queriable in the cloud.
  • Estructurar el dispositivo gemelo para la administración de dispositivos: el dispositivo gemelo se debe estructurar de tal forma que las propiedades de administración de dispositivos estén agrupadas lógicamente en secciones.Structure the device twin for device management: The device twin should be structured such that device management properties are logically grouped together into sections. Al hacer esto, los cambios en la configuración se pueden aislar sin afectar a otras secciones del dispositivo gemelo.Doing so will enable configuration changes to be isolated without impacting other sections of the twin. Por ejemplo, puede crear una sección dentro de las propiedades deseadas para firmware, otra sección para software y una tercera sección para configuración de red.For example, create a section within desired properties for firmware, another section for software, and a third section for network settings.

  • Notificar atributos de dispositivo que son útiles para la administración de dispositivos: atributos como la marca y el modelo del dispositivo físico, el firmware, el sistema operativo, el número de serie y otros identificadores resultan de utilidad para notificaciones y como parámetros para dirigir los cambios de configuración.Report device attributes that are useful for device management: Attributes like physical device make and model, firmware, operating system, serial number, and other identifiers are useful for reporting and as parameters for targeting configuration changes.

  • Definir los principales estados para notificar el estado y el progreso: Los estados de nivel superior se deben enumerar para que se pueden notificar al operador.Define the main states for reporting status and progress: Top-level states should be enumerated so that they can be reported to the operator. Por ejemplo, una actualización de firmware notificaría el estado como Actual, Descargando, Aplicando, En curso y Error.For example, a firmware update would report status as Current, Downloading, Applying, In Progress, and Error. Defina campos adicionales para obtener más información sobre cada estado.Define additional fields for more information on each state.

Desarrollador de soluciones de IoTIoT solution developer

Estos son los procedimientos recomendados para los desarrolladores de soluciones de IoT que crean sistemas basados en Azure:The following are best practices for IoT solution developers who are building systems based in Azure:

  • Implementar dispositivos gemelos: los dispositivos gemelos permiten la sincronización de la configuración deseada desde la nube y la notificación de las propiedades actuales de configuración y de dispositivo.Implement device twins: Device twins enable synchronizing desired configuration from the cloud and for reporting current configuration and device properties. La mejor manera de implementar dispositivos gemelos dentro de las aplicaciones de las soluciones en la nube es usar los SDK de Azure IoT.The best way to implement device twins within cloud solutions applications is through the Azure IoT SDKs. Los dispositivos gemelos resultan muy adecuados para la configuración debido a que:Device twins are best suited for configuration because they:

    • Admiten la comunicación bidireccional.Support bi-directional communication.
    • Permiten estados de dispositivo conectado y desconectado.Allow for both connected and disconnected device states.
    • Siguen el principio de coherencia final.Follow the principle of eventual consistency.
    • Se pueden consultar completamente en la nube.Are fully queriable in the cloud.
  • Organizar los dispositivos mediante etiquetas de dispositivo gemelo: la solución debe permitir que el operador defina anillos de calidad u otros conjuntos de dispositivos basados en diversas estrategias de implementación, como valores controlados.Organize devices using device twin tags: The solution should allow the operator to define quality rings or other sets of devices based on various deployment strategies such as canary. La organización de los dispositivos se puede implementar dentro de la solución mediante etiquetas de dispositivo gemelo y consultas.Device organization can be implemented within your solution using device twin tags and queries. La organización de los dispositivos es necesaria para permitir implementaciones de configuraciones con precisión y seguridad.Device organization is necessary to allow for configuration roll outs safely and accurately.

  • Implementar configuraciones automáticas de dispositivos: las configuraciones automáticas de dispositivos implementan y supervisan cambios de configuración en grandes conjuntos de dispositivos IoT mediante dispositivos gemelos.Implement automatic device configurations: Automatic device configurations deploy and monitor configuration changes to large sets of IoT devices via device twins.

    Las configuraciones automáticas de dispositivos están dirigidas a conjuntos de dispositivos gemelos mediante la condición de destino, que es una consulta basada en etiquetas de dispositivo gemelo o propiedades notificadas.Automatic device configurations target sets of device twins via the target condition, which is a query on device twin tags or reported properties. El contenido de destino es el conjunto de propiedades deseadas que se establecerán en los dispositivo gemelos dirigidos.The target content is the set of desired properties that will be set within the targeted device twins. El contenido de destino se debe alinear con la estructura de dispositivo gemelo definida por el fabricante o integrador de hardware de IoT.The target content should align with the device twin structure defined by the IoT hardware manufacturer/integrator. Las métricas son consultas basadas en las propiedades notificadas del dispositivo gemelo, y se deben alinear también con la estructura de dispositivo gemelo definida por el fabricante o integrador de hardware de IoT.The metrics are queries on device twin reported properties and should also align with the device twin structure defined by the IoT hardware manufacturer/integrator.

    Las configuraciones automáticas de dispositivos se ejecutan por primera vez poco después de crear la configuración y, a continuación, en intervalos de cinco minutos.Automatic device configurations run for the first time shortly after the configuration is created and then at five minute intervals. También se benefician de que IoT Hub realiza operaciones de dispositivo gemelo a una velocidad que nunca supera los límites de lecturas y actualizaciones de dispositivos gemelos.They also benefit from the IoT Hub performing device twin operations at a rate that will never exceed the throttling limits for device twin reads and updates.

  • Usar el serviciode aprovisionamiento de dispositivos: los desarrolladores de soluciones deben usar el servicio de aprovisionamiento de dispositivos para asignar etiquetas de dispositivo gemelo a nuevos dispositivos, de forma que se configurarán automáticamente mediante configuraciones automáticas de dispositivos dirigidas a dispositivos gemelos con esa etiqueta.Use the Device Provisioning Service: Solution developers should use the Device Provisioning Service to assign device twin tags to new devices, such that they will be automatically configured by automatic device configurations that are targeted at twins with that tag.

Operador de soluciones de IoTIoT solution operator

Los siguientes procedimientos recomendados están destinados a los operadores de soluciones de IoT que usan una solución de IoT creada en Azure:The following are best practices for IoT solution operators who using an IoT solution built on Azure:

  • Organizar los dispositivos para la administración: la solución de IoT debe definir o permitir la creación de anillos de calidad u otros conjuntos de dispositivos basados en diversas estrategias de implementación, como valores controlados.Organize devices for management: The IoT solution should define or allow for the creation of quality rings or other sets of devices based on various deployment strategies such as canary. Los conjuntos de dispositivos se usarán para implementar los cambios de configuración y realizar otras operaciones de administración de dispositivos a escala.The sets of devices will be used to roll out configuration changes and to perform other at-scale device management operations.

  • Realizar los cambios de configuración mediante una implementación por fases: un lanzamiento por fases es un proceso global en el que un operador implementa cambios en un amplio conjunto de dispositivos IoT.Perform configuration changes using a phased roll out: A phased roll out is an overall process whereby an operator deploys changes to a broadening set of IoT devices. El objetivo consiste en realizar cambios gradualmente para reducir el riesgo de realizar cambios importantes a gran escala.The goal is to make changes gradually to reduce the risk of making wide scale breaking changes.  El operador debe usar la interfaz de la solución para crear una configuración automática de dispositivos, y la condición de destino debe tener como destino un conjunto inicial de dispositivos (por ejemplo, un grupo de valores controlados).  The operator should use the solution's interface to create an automatic device configuration and the targeting condition should target an initial set of devices (such as a canary group). El operador debe validar entonces el cambio de configuración en el conjunto inicial de dispositivos.The operator should then validate the configuration change in the initial set of devices.

    Una vez completada la validación, el operador actualizará la configuración automática de dispositivos para que incluya un conjunto mayor de dispositivos.Once validation is complete, the operator will update the automatic device configuration to include a larger set of devices. El operador también debe establecer la configuración con una prioridad más alta que otras configuraciones dirigidas actualmente a esos dispositivos.The operator should also set the priority for the configuration to be higher than other configurations currently targeted to those devices. La implementación se puede supervisar mediante las métricas notificadas por la configuración automática de dispositivos.The roll out can be monitored using the metrics reported by the automatic device configuration.

  • Realizar reversiones en caso de errores o configuraciones incorrectas: una configuración automática de dispositivos que provoca errores o configuraciones incorrectas se puede revertir cambiando la condición de destino de forma que los dispositivos ya no la cumplan.Perform rollbacks in case of errors or misconfigurations: An automatic device configuration that causes errors or misconfigurations can be rolled back by changing the targeting condition so that the devices no longer meet the targeting condition. Asegúrese de que otra configuración automática de dispositivos de prioridad inferior todavía está dirigida a esos dispositivos.Ensure that another automatic device configuration of lower priority is still targeted for those devices. Comprobar que la reversión se ha realizado correctamente visualizando las métricas: la configuración revertida ya no debe mostrar el estado de los dispositivos no dirigidos, y las métricas de la segunda configuración debe incluir ahora recuentos de los dispositivos aún dirigidos.Verify that the rollback succeeded by viewing the metrics: The rolled-back configuration should no longer show status for untargeted devices, and the second configuration's metrics should now include counts for the devices that are still targeted.

Pasos siguientesNext steps