2. Qué son las Azure Functions?
Azure Functions es un servicio de Microsoft Azure que nos permite ejecutar código -
basado en eventos - sin tener que preocuparnos por la infraestructura en donde corre.
3. Qué son las Azure Functions?
Nos permite crear una experiencia basada en eventos bajo el esquema “serverless”.
Esto nos permite extender la plataforma actual de Azure App Service construyendo
“nanoservicios” que pueden escalar según la demanda que tengan.
4. Cuál es el concepto de Serverless?
Con “serveless” nos referimos a que los developers simplemente debemos
preocuparnos por escribir buen código, sabiendo que luego alguien o algo se hará
cargo de su ejecución.
No nos debe preocupar que plataforma o servidor hay por detrás ni si la tasa de
solicitudes aumenta considerablemente.
5. Qué ventajas nos ofrece?
Está basado en eventos, buscando que los developers nos centremos en la lógica
esencial de nuestra aplicación y no en cómo recuperar y almacenar la información
procesada
Actualmente nos da soporte a muchos lenguajes de programación
Integración completa a otros elementos de Azure, como por ejemplo Blob Storage y
Queue
Facilidad de administración y flexibilidad como ya disponemos en otros servicios de
Azure (escalamiento, integración continua, definición de slots, etc.)
6.
7. Diferentes escenarios de uso posibles
A nivel general tenemos 3 escenarios de uso:
• Tareas programadas
• Procesamiento de datos
• Webhook / API
• BlobTrigger • QueueTrigger
• EventHubTrigger • ServiceBusQueueTrigger
• Generic webhook • ServiceBusTopicTrigger
• GitHub webhook • TimerTrigger
• HTTPTrigger • Blank & Experimental
8. Qué lenguajes soporta?
El mayor soporte lo tenemos para C# y Javascript (con Node.js)
Sin embargo, cada vez hay más soporte para:
• F#
• Python
• PHP
• Bash
• Batch
• PowerShell
9. Nuevo portal para Azure Functions
Nueva página de creación de Function App
Nueva opción de búsqueda y gestión de Function App
Nuevo panel de administración de las Functions
11. Usos en entornos corporativos
• Versionado de código (repositorio integrado)
• Deployment continuo
• Slots por ambiente
• Visual Studio Tools for Azure Functions (disponible en VS 2015 con Azure SDK 2.9.6)
Pensado para crear pequeñas piezas de códigos: métodos reusables que sean simples de compartir a través de todos los servicios.
Único propósito.
Diseñado para responder a eventos de servicios conectados (propios de Azure o de terceros).
Basado en eventos y computo a demanda.
Dos servicios con los que compite son Amazon WS Lambda y Google Cloud Functions.
Va un paso más allá de las alternativas que hoy tenemos en Azure App Services (Web Apps, Mobile Apps, API Apps).
Esta basado en el SDK de Azure WebJobs.
Azure WebJobs SDK ya estaba empezando a implementar este concepto de functions, triggers y bindings.
Tal vez les resulte familiar el termino "serveless", sobre todo es estos tiempos que corren. Si bien la traducción literal es "sin servidor", estamos lejos de que eso ocurra - al fin y al cabo alguien debe hacerse responsable de la ejecución del código -.
Con "serveless" nos referimos más precisamente a que nosotros los developers simplemente debemos preocuparnos por escribir buen código, sabiendo que luego alguien o algo se hará cargo de su ejecución. En pocas palabras, no nos debe preocupar que plataforma o servidor hay por detrás ni si la tasa de solicitudes aumenta considerablemente.
Una de las propuestas de valor de PaaS (Platform-as-a-Service) es la abstracción de la capa de sistema operativo de nuestro código. La plataforma nos provee de imágenes del sistema operativo pre configuradas, que no requieren ningún tipo de mantenimiento y pueden ser escaladas de acuerdo a la carga de nuestro proceso.
Azure Functions extiende este concepto PaaS proveyendo a los desarrolladores una abstracción completa de la infraestructura sobre la que corre el código, yendo a un modelo de pago por ejecución que escala automáticamente en base a las invocaciones de los triggers.
Datos están en todos lados: en la nube, en nuestra infraestructura y generándose continuamente por medio de la gran cantidad de devices conectados a internte.
Las empresas buscan sacarla provecho a esos datos y para eso requieren de soluciones “inmediatas”.
Los desarrolladores deben tener soluciones “on-demand” o procesos batch para reconciliar transacciones, ingesta y procesamiento de datos o reaccionar a eventos.
Para combatir la falta de tiempo en la construcción de estas soluciones tenemos AZURE FUNCTIONS.
Tareas programas: se puede reemplazar algunos casos donde usamos web jobs de Azure.
Hay algunas librerías que ya vienen incorporadas al servicio, y pueden usarse en forma directa, simplemente agregando el using:
mscorlib
System
System.Core
System.Xml
System.Net.Http
Microsoft.Azure.WebJobs
Microsoft.Azure.WebJobs.Host
Microsoft.Azure.WebJobs.Extensions
System.Web.Http
System.Net.Http.Formatting
Otras ya están instaladas, pero deben referenciarse primero usando #r "NombreDelAssembly" (Ej.: #r "Microsoft.WindowsAzure.Storage"):
La única versión soportada del .Net Framework es la 4.6
La versión actual de Node.js sobre la que corren nuestras funciones es la 6.4.0.
Al agregar los paquetes a través de NuGet no es necesario instanciarlo con #r "NombreDeAssembly", simplemente agregamos el using.
Un detalle a tener en cuenta es que una vez que habilitamos la integración continua de nuestro código no podremos volver a editarlo desde el portal, ya que entrará en modo de sólo lectura.