Cuándo usar Azure Functions para IoT

Completado

En esta unidad se explica cómo puede decidir si Azure Functions es la elección correcta para sus soluciones de IoT. Se mostrarán algunos criterios que indican si Azure Functions satisfará los objetivos de implementación de las soluciones de IoT.

Gracias al enfoque de informática sin servidor, puede centrarse en la lógica básica de las soluciones. Evita la necesidad de administrar la infraestructura subyacente que ejecuta la solución. En el modelo de aplicación sin servidor, el proveedor de servicios en la nube aprovisiona, escala y administra automáticamente la infraestructura subyacente necesaria para ejecutar el código. El modelo sin servidor tiene dos aspectos: función como servicio y back-end como servicio.

Los desarrolladores escriben la aplicación como funciones. Normalmente, estas funciones no tienen estado y son de corta duración. Azure Functions le permite encadenar las funciones para crear la solución completa. Por lo tanto, como desarrollador, le interesa escribir funciones que interactúen entre sí para solucionar el problema empresarial. Por otro lado, el proveedor de servicios en la nube administra estas funciones implementadas desde el punto de vista de recursos tales como procesadores, almacenamiento y ancho de banda (back-end como servicio). Los recursos se proporcionan en función de las necesidades y se escalan según sea necesario. Al usuario (el desarrollador) solo se le cobra la función cuando esta se ejecuta realmente (función como servicio). Las aplicaciones IoT se adaptan a muchas de estas características. En el caso de las aplicaciones IoT, puede crear una aplicación más grande mediante la agrupación y el encadenamiento de muchas funciones y su escalado dinámico cuando sea necesario.

Consideraciones empresariales

Las principales consideraciones empresariales sobre el uso de Azure Functions para IoT son crear aplicaciones escalables en las que solo se le cobran los recursos que use. La solución se puede escalar o reducir verticalmente de forma dinámica y en función de los requisitos empresariales. No tiene que administrar la infraestructura o asignar los recursos de antemano. Otras ventajas empresariales incluyen un tiempo de comercialización más rápido y la flexibilidad de usar varios lenguajes de programación.

Consideraciones sobre IoT

Las soluciones de Internet de las cosas (IoT) suelen estar controladas por eventos. Es decir, debe definir un desencadenador específico que ejecute la función. Si la solución de IoT pudiera escalar potencialmente de un número reducido de dispositivos a millones de dispositivos, considere la posibilidad de usar Azure Functions. Del mismo modo, si la solución pudiera ver picos de eventos de millones de eventos, debería considerar el uso de Azure Functions.

Instrucciones de procedimientos recomendados para Azure Functions

  • Evite las funciones de larga duración: Las funciones de gran tamaño y de ejecución prolongada pueden causar problemas de tiempo de espera inesperados.

  • Escriba funciones que no tengan estado: Las funciones no deben tener estado y, si es posible, ser idempotentes. Idempotencia es la propiedad de ciertas operaciones en matemáticas e informática por la que pueden aplicarse varias veces sin cambiar el resultado más allá de la aplicación inicial. Por ejemplo, el número 1 es idempotente con respecto a la operación de multiplicación porque 1 x 1 = 1. Asocie cualquier información de estado necesaria a los datos. Es posible lograr la comunicación entre funciones mediante Durable Functions y Azure Logic Apps que administran las transiciones de estado y la comunicación entre varias funciones.

  • Escriba funciones defensivas: Diseñe sus funciones con la posibilidad de continuar desde un punto de error anterior durante la siguiente ejecución.

  • Procedimientos recomendados para escalabilidad: uso compartido y administración de conexiones, omisión de cuentas de almacenamiento, administración del uso de memoria de las funciones.