Edge computing con Azure IoT Edge

La computación en nube (o Cloud Computing) ha dominado las discusiones de TI durante las últimas dos décadas, particularmente desde que Amazon popularizó el término en 2006 con el lanzamiento de Elastic Compute Cloud (ECC) . En su forma más simple, la computación en la nube es la centralización de los servicios informáticos para aprovechar una infraestructura de centro de datos compartida y gracias a la economía de escala para reducir los costos.

Sin embargo, la latencia, influenciada por el número de saltos de enrutadores,los  retrasos en los paquetes introducidos por la virtualización o la ubicación del servidor dentro de un centro de datos, siempre ha sido una cuestión clave de la migración en la nube y es aquí es donde entra en juego el Edge Computing (computación al borde) donde esencialmente se descentralizan los servicios de TI y acercándolos a la fuente de datos, lo cual puede tener un impacto significativo en la latencia, ya que puede reducir drásticamente el volumen de datos movidos y la distancia que recorre.

La naturaleza distribuida de la informática de borde significa que, junto con la reducción de la latencia  también mejora la resiliencia, reduce la carga de la red y es más fácil de escalar .

El procesamiento de los datos comienza en su origen  y una vez que se completa el procesamiento inicial, solo se deben enviar los datos que necesitan un análisis posterior o que requieren otros servicios lo cual  reduce los requisitos de red y la posibilidad de cuellos de botella en cualquier servicio centralizado.

Además, con otras ubicaciones de borde cercanas,  la posibilidad de almacenar datos en caché en el dispositivo, puede enmascarar interrupciones y mejorar la resistencia de su sistema lo cual  reduce la necesidad de escalar sus servicios centralizados ya que manejan menos tráfico. Ademas de la reducción del trafico  con el consiguiente mejora   también pueden reducir los costos, la complejidad de la arquitectura y la administración.

 

Azure IoT Edge

Las soluciones de nube híbrida e Internet de las cosas (IoT) son una realidad con Azure IoT Edge  un servicio completamente administrado que entrega inteligencia en la nube localmente implementando y ejecutando sin problemas inteligencia artificial, servicios Azure y lógica personalizada directamente en dispositivos IoT multiplataforma, desde una pequeña Raspberry Pi hasta grandes máquinas industriales administrando todo de manera centralizada en la nube  de Microsoft.

Algunas de las facilidades  que puede proporcionar esta   plataforma:

  • Habilitar inteligencia artificial y análisis avanzados en el borde:permite crear análisis avanzados, usar aprendizaje automático e inteligencia artificial en la nube y desplegarlo en dispositivos físicos utilizando IoT Edge. Un ecosistema de servicios de Azure y de terceros  ayudará a habilitar nuevas aplicaciones de IoT en sus dispositivos de borde. Se puede usar  Azure Machine Learning, Azure Stream Analytics, Azure Functions para crear soluciones de IoT más avanzadas con menos tiempo y esfuerzo.Cree fácilmente AI en el borde con AI Toolkit for Azure IoT Edge.
  • Reducir los costos de la solución IoT:Decida qué datos de IoT debe capturar y enviar a la nube programando su dispositivo de borde para procesar los datos localmente. Luego, envíe solo los datos que necesita almacenar y analizar en la nube. Al reducir la cantidad de datos que transmite de un dispositivo a la nube, reducirá los costos de ancho de banda y los costos asociados con el almacenamiento y análisis de datos en otras aplicaciones de negocios, pero aún así se beneficiará de las perspectivas mejoradas.
  • Simplificar el desarrollo:Facilite los esfuerzos de desarrollo para soluciones avanzadas de IoT aprovechando las habilidades y los recursos que ya tiene. Utilice herramientas de programación conocidas como Visual Studio y múltiples lenguajes de programación, incluidos C, Node.js, Java, Microsoft .NET y Python para optimizar y monitorear su solución de IoT, y aplique correcciones cuando sea necesario. Utilice los mismos modelos de programación que usa en la nube para crear y probar sus aplicaciones de IoT y luego empújelas a sus dispositivos de borde.
  • Operar fuera de línea o con conectividad intermitente:Con IoT Edge, sus dispositivos periféricos pueden operar de manera confiable y segura incluso cuando están desconectados o solo tienen conectividad intermitente a la nube. Una vez reconectados, los dispositivos periféricos sincronizan automáticamente su estado más reciente y continúan funcionando sin problemas, independientemente de la conectividad en curso.

 

Ejemplo de Azure IoT Edge

Podemos  probar gratuitamente  la interfaz en la nube Azure IoT Edge para implementar el código preconstruido de forma remota en un dispositivo IoT Edge.  Para realizar esta tarea, primero se necesita usar un dispositivo Windows para simular un dispositivo IoT Edge y  luego puede implementar un módulo en él.

Vamos a describir los pasos  a seguir pero antes si no tiene una cuenta activa a Azure, cree una cuenta gratuita antes de comenzar.

Requisitos previos

Asumims que está usando un ordenador  o máquina virtual que ejecuta Windows para simular un dispositivo de Internet de las cosas.  Si está ejecutando Windows en una máquina virtual, habilite la virtualización anidada y asigne al menos 2GB de memoria.

  1. Asegúres de estar usando una versión compatible con Windows:
    • Windows 10 Windows 10
    • Windows Server Servidor de windows
  2. Instale Docker para Windows y asegúrate de que esté ejecutándose.
  3. Instale Python 2.7 en Windows y asegúrese de que puede usar el comando pip.
  4. Ejecute el siguiente comando para descargar el script de control IoT Edge.
    cmdCopy
    pip install -U azure-iot-edge-runtime-ctl

Nota: Azure IoT Edge puede ejecutar contenedores de Windows o Linux.  Para usar contenedores de Windows, debe ejecutar:

  • Windows 10 Fall Creators Update, , o
  • Windows Server 1709 (Build 16299) o
  • Windows IoT Core (Build 16299) on a x64-based device Windows IoT Core (compilación 16299) en un dispositivo basado en x64

 Para Windows IoT Core, siga las instrucciones en Instalar el tiempo de ejecución de IoT Edge en Windows IoT Core . De lo contrario, simplemente configure Docker para usar contenedores de Windows y, opcionalmente, valide sus requisitos previos con el siguiente comando de PowerShell:

PowerShellCopy
Invoke-Expression (Invoke-WebRequest -useb https://aka.ms/iotedgewin)

Crear un concentrador de IoT con Azure CLI

Cree un concentrador de IoT en su suscripción de Azure.  El nivel gratuito de IoT Hub funciona para este inicio rápido. . Si ya usó IoT Hub y ya tiene un hub gratuito creado, puede omitir esta sección y pasar a Registrar un dispositivo IoT Edge  (en cada suscripción solo puede tener un centro IoT gratuito).

  1.  Inicie sesión en el portal de Azure .
  2.  Seleccione el botón Cloud Shell .Botón Cloud Shell
  3.  Cree un grupo de recursos. : El siguiente código crea un grupo de recursos llamado IoTEdge en la región oeste de EE. UU . :
    Azure CLICopy
    az group create --name IoTEdge --location westus
  4. . Cree un concentrador de IoT en su nuevo grupo de recursos. : El siguiente código crea un concentrador F1 gratuito llamado MyIotHub en el grupo de recursos IoTEdge :
    Azure CLICopy
    az iot hub create --resource-group IoTEdge --name MyIotHub --sku F1

 Registrar un dispositivo IoT Edge

Cree una identidad de dispositivo para su dispositivo simulado para que pueda comunicarse con su centro de IoT. Dado que los dispositivos IoT Edge se comportan y pueden administrarse de forma diferente a los dispositivos IoT típicos, usted declara que se trata de un dispositivo IoT Edge desde el principio.

  1. . En el portal de Azure, vaya a su centro de IdC.
  2.  Seleccione IoT Edge (vista previa) luego seleccione Agregar IoT Edge Device .Agregar dispositivo Edge IoT
  3. . Dele a su dispositivo simulado una ID de dispositivo única.
  4.  Seleccione Guardar para agregar su dispositivo.
  5. Seleccione su nuevo dispositivo de la lista de dispositivos.
  6. Copie el valor de la cadena de conexión-clave principal y guárdelo.  Utilizará este valor para configurar el tiempo de ejecución IoT Edge en la siguiente sección.

Configurar  IoT Edge runtime 

En tiempo de ejecución de IoT Edge se implementa en todos los dispositivos IoT Edge, el cual  comprende dos módulos:

  •   El agente IoT Edge que facilita la implementación y la supervisión de módulos en el dispositivo IoT Edge.  
  • El concentrador IoT Edge que gestiona las comunicaciones entre los módulos en el dispositivo IoT Edge y entre el dispositivo y el IoT Hub.

Configure el tiempo de ejecución con su cadena de conexión del dispositivo IoT Edge de la sección anterior.

cmdCopy
iotedgectl setup --connection-string "{device connection string}" --auto-cert-gen-force-no-passwords

Comience el tiempo de ejecución.

cmdCopy
iotedgectl start

 Compruebe Docker para ver que el agente IoT Edge se está ejecutando como un módulo.

cmdCopy
docker ps

Ver edgeAgent en Docker

 Implementar un módulo

 Una de las capacidades clave de Azure IoT Edge es la posibilidad de implementar módulos en sus dispositivos IoT Edge desde la nube.  Un módulo IoT Edge es un paquete ejecutable implementado como un contenedor.

En este ejemplo desplegaremos un módulo que genera telemetría para su dispositivo simulado.

  1. En el portal de Azure, vaya a su centro de IdC.
  2. Vaya a IoT Edge (vista previa) y seleccione su dispositivo IoT Edge.
  3. Seleccione Establecer módulos .
  4. . Seleccione Agregar IoT Edge Module .
  5. . En el campo Nombre , ingrese tempSensor .
  6. . En el campo URI de la imagen , ingrese microsoft/azureiotedge-simulated-temperature-sensor:1.0-preview .
  7. Deje las otras configuraciones sin cambios, y seleccione Guardar .Guarde el módulo IoT Edge después de ingresar el URI de nombre e imagen
  8. . De vuelta en el paso Agregar módulos , seleccione Siguiente .
  9.  En el paso Especificar rutas , seleccione Siguiente .
  10. . En el paso de la plantilla Revisar , seleccione Enviar .
  11.  Regrese a la página de detalles del dispositivo y seleccione Actualizar . Debería ver el nuevo módulo tempSensor ejecutándose a lo largo del tiempo de ejecución de IoT Edge.Ver tempSensor en la lista de módulos implementados

 Ver datos generados

 En este ejemplo rápido, creó un nuevo dispositivo IoT Edge e instaló en tiempo de ejecución IoT Edge en él.  Luego, utilizó el portal de Azure para impulsar un módulo IoT Edge para que se ejecute en el dispositivo sin tener que realizar cambios en el dispositivo.

En este ejemplo el módulo que creo  transmite  datos ambientales que puede usar para los tutoriales,pero en una instalacion habitual manejaria muchos mas datos de telemetria,sensores, etc.

Para  ver si todo esta funcionando ,abra el símbolo del sistema en su ordenador  que ejecuta su dispositivo simulado de nuevo.  Confirme que el módulo implementado desde la nube se está ejecutando en su dispositivo IoT Edge.

cmdCopy
docker ps

Ver tres módulos en su dispositivo

 Vea los mensajes que se envían desde el módulo tempSensor a la nube.

cmdCopy
docker logs -f tempSensor

Ver los datos de tu módulo

También puede ver la telemetría que está enviando el dispositivo utilizando la herramienta de explorador IoT Hub .

 Limpiar recursos

Si desea eliminar el dispositivo simulado que creó, junto con los contenedores Docker que se iniciaron para cada módulo, use el siguiente comando:

cmdCopy
iotedgectl uninstall

Cuando ya no necesite el IoT Hub que ha creado, puede usar el comando az iot hub delete para eliminar el recurso y los dispositivos asociados con él:

Azure CLICopy
az iot hub delete --name {your iot hub name} --resource-group {your resource group name}

Obviamente esto es solo el primer paso para comprender la potencia de esta tecnología pues el  paso obvio es usar hardware dedicado de bajo consumo como puede ser ene fecto uan Raspberry Pi   para usarlo como dispositivo Iot Edge

 

Fuente : https://docs.microsoft.com/en-us/azure/iot-edge/quickstart

🤞 No se pierda nuestro boletín mensual !es gratis!

¡No hacemos spam! Más información en nuestra política de privacidad