- Cree una cuenta gratuita dentro de Azure. Para hacerlo puede guiarse de esta documentación. Al hacerlo usted contará con $100 USD para gastar durante 12 meses. Antes de iniciar con el laboratorio, revise la siguiente documentación sobre las Azure Functions
Adjunto a este laboratorio usted podrá encontrar una aplicación totalmente desarrollada que tiene como objetivo calcular el enésimo valor de la secuencia de Fibonnaci.
Escalabilidad Cuando un conjunto de usuarios consulta un enésimo número (superior a 1000000) de la secuencia de Fibonacci de forma concurrente y el sistema se encuentra bajo condiciones normales de operación, todas las peticiones deben ser respondidas y el consumo de CPU del sistema no puede superar el 70%.
- Cree una Function App tal cual como se muestra en las imagenes.
- Instale la extensión de Azure Functions para Visual Studio Code.
- Despliegue la Function de Fibonacci a Azure usando Visual Studio Code. La primera vez que lo haga se le va a pedir autenticarse, siga las instrucciones.
- Dirijase al portal de Azure y pruebe la function.
- Modifique la coleción de POSTMAN con NEWMAN de tal forma que pueda enviar 10 peticiones concurrentes. Verifique los resultados y presente un informe.
newman run Fibonacci.postman_collection.json -n 10 --reporters cli,json --reporter-json-export report.json
- Cree una nueva Function que resuleva el problema de Fibonacci pero esta vez utilice un enfoque recursivo con memoization. Pruebe la función varias veces, después no haga nada por al menos 5 minutos. Pruebe la función de nuevo con los valores anteriores. ¿Cuál es el comportamiento?.
Después de 10 minutos
Tiende a disminuir cuando no se usa. Es estable para valores similares y toma picos en valores determinados. Puede fallar, en algunos casos tras bajo uso.
Preguntas
- ¿Qué es un Azure Function?
- Es un servicio de computación serverless usado para ejecutar código (funciones) en respuesta a eventos (triggers) sin gestionar infraestructura. Su ejecución es basada en eventos (HTTP, colas, BD, etc), posee escalado autonático bajo demanda y soporte para múltiples lenguajes (C#, JS, Python, etc).
- ¿Qué es serverless?
- Es un modelo de ejecución en la nube caracterizado por esclado automático (sin configuación manual), no administración de servidores (el proveedor maneja la infraestructura) y pago por uso.
-
¿Qué es el runtime y que implica seleccionarlo al momento de crear el Function App?
- Es un entorno de ejecución que determina versión de lenguaje (Node.js 14, .NET 6, Python 3.9, etc), compatibilidad con bilbiotecas y SDKs y características disponibles (bindings y triggers). Su uso implica elección de runtime obsoleto (con features no disponibles) y, posible cambio de runtime después de la creación de la Function App. Implicaciones de seleccionarlo:
-
¿Por qué es necesario crear un Storage Account de la mano de un Function App?
- Esto se hace ya que almacena datos de configuración de funciones y claves de autorización, soporta triggers y bindings de colas, blobs y tablas con uso de Storage, gestión de escalado y coordinación de instancias múltiples en el plan de consumo.
-
¿Cuáles son los tipos de planes para un Function App?, ¿En qué se diferencias?, mencione ventajas y desventajas de cada uno de ellos.

-
¿Por qué la memoization falla o no funciona de forma correcta?
- La memorización puede perder efectividad debido a Cold starts (Si la instancia se apaga por inactividad, la caché en memoria o memo se pierde), Múltiples instancias (cada instancia tiene su propia caché y no se comparte entre ellas) y, el tiiempo de vida (las instancias se reciclan periódicamente entre 20-30 minutos sin uso). Para evitar esto, se puede usar Azure Cache for Redis o Cosmos DB con caché persistente.
- ¿Cómo funciona el sistema de facturación de las Function App?
- Se factura por número de ejecuciones y tiempo de ejecución (GB-segundos). En el plan Premium/App Service es según el Costo fijo por VM y las ejecuciones.




























