Azure functions

Preview:

Citation preview

Microsoft Summit5 y 6 de octubre, 2016

#TechSum

#TechSum

Serverless Backend(No, no es un oxímoron)Eduard Tomàs@eiximenisCoding for beers @ Plain Concepts

#TechSum

1 Juego Deus EX

Cazando a 5 Speakers

1 Curso desarrollo

apps

Cazando a Javier SuárezSO

RTEA

MO

S S

ORT

EAM

OS

SO

RTEA

MO

S SO

RTEA

MO

S

http://bit.ly/plain-go

#TechSum

http://promos.campusmvp.com/netcore/

#TechSum

Serverless Backends

#TechSum

Beer as a Service – on premisePlantar y cosechar grano y lúpulo

Maltear el grano

Macerar el grano en agua caliente

Hervir el mosto

Añadir lúpulos varios

Enfríar el mosto lo más rápido posible

Dry hopping, fermentación y lagering

Priming y enbotellado

Amigos, Diversión y… ¡Cerveza!

Lo haces tu todo. Son tus campos, tus cereales y tu cerveza.

Necesitas multitud de recursos (campos, agua, granjeros,…)

#TechSum

Beer as a Service - IaaSPlantar y cosechar grano y lúpulo

Maltear el grano

Macerar el grano en agua caliente

Hervir el mosto

Añadir lúpulos varios

Enfríar el mosto lo más rápido posible

Dry hopping, fermentación y lagering

Priming y enbotellado

Amigos, Diversión y… ¡Cerveza!

Lo haces todo, except plantar y cosechar el grano.Te ahorras el coste de tener todos los campos y granjeros, pero todo el proceso sigue corriendo de tu parte.

#TechSum

Beer as a Service - SaaSPlantar y cosechar grano y lúpulo

Maltear el grano

Macerar el grano en agua caliente

Hervir el mosto

Añadir lúpulos varios

Enfríar el mosto lo más rápido posible

Dry hopping, fermentación y lagering

Priming y enbotellado

Amigos, Diversión y… ¡Cerveza!

¿Para qué molestarse en hacerlo todo cuando lo único que quieres es… una cerveza?¡Vé al super o a la tienda más cercana, compra cervezas y a disfrutar!

Compras las que quieres y te las tomas cuando quieres.

#TechSum

Beer as a Service – PaaS (aka todo grano) Plantar y cosechar grano y lúpulo

Maltear el grano

Macerar el grano en agua caliente

Hervir el mosto

Añadir lúpulos varios

Enfríar el mosto lo más rápido posible

Dry hopping, fermentación y lagering

Priming y enbotellado

Amigos, Diversión y… ¡Cerveza!

Te encargas de todo el proceso principal del desarrollo de cerveza.Compras los ingredients principales y el grano malteado y ¡a por ello!Puedes comprar las cantidades necesarias, ya fabriques 20L o 5000. Sin problemas.

Eso sí, te tienes que seguir preocupando de todos los detalles técnicos del proceso de elaboración.

#TechSum

Beer as a Service – Starter Kit Plantar y cosechar grano y lúpulo

Maltear el grano

Macerar el grano en agua caliente

Hervir el mosto

Añadir lúpulos varios

Enfríar el mosto lo más rápido posible

Dry hopping, fermentación y lagering

Priming y enbotellado

Amigos, Diversión y… ¡Cerveza!

“Todo grano” te da una gran libertad, pero hay muchos aspectos a controlar.

Es mucho más sencillo pillar un starter kit, rehidratarlo y echarlo a fermentar.

Sigue siendo tu cerveza, pero te despreocupas de aspectos más técnicos como la receta exacta a usar.

#TechSum

Serverless BackendsServerless no significa que no haya servidor

Significa que no debes preocuparte por él.

Un paso más allá de PaaSEl starter kit del backend

#TechSum

Azure Functions

#TechSum

Azure FunctionsAzure Functions es la implementación de Azure del paradigma de serverless backend.

Básicamente: desplegar código y que se ejecute.

Ni más, ni menos.

#TechSum

Azure FunctionsUna Azure Function es un pedazo de código que…

Se ejecuta cuando ocurre un desencadenador (trigger)Tiene unas determinadas entradasGenera unas determinadas salidas

#TechSum

Demo: Cocinando una

Azure Function

Crear la Function App

Elegir la plantilla

Codificar y… ¡ejecutar!

#TechSum

DesencadenadoresLos siguientes son posibles desencadenadores de una Azure Function

Temporizador (cada 5 min, cada Lunes, cada primero de mes, cada martes a las 07:30)Una llamada HTTPUn blob almacenadoUn evento de event hubUn elemento en una cola

#TechSum

EntradasLos siguientes elementos de Azure son posibles entradas

(adicionales a los triggers)

Blob storageTablas de storage o Mobile AppsDocumentDB

#TechSum

SalidasLos siguientes elementos son posibles salidas de Azure Functions

HTTP (solo con desencadenador HTTP)BlobsEventos de Event HubColas y tablas de storage o Mobile AppsDocumentDB

#TechSum

Triggers temporizadoresPermiten ejecutar una función cada cierto tiempoEl tiempo se especifica mediante una expresión cron

La función recibe un parámetro TimerInfo

#TechSum

Triggers HTTPEsto permite ejecutar una función cuando se reciba una petición HTTP

La función recibe una URL y al invocar dicha URL se invoca la funciónAcepta un parámetro HttpResponseMessage

#TechSum

Salidas HTTPSolo está disponible si el trigger es HTTP

Esta salida es un valor de retorno:Task<HttpResponseMessage>

A diferencia del resto de salidas que son parámetros out

#TechSum

Demo: Usando FunctionApps

Crear function apps

Integrar entradas, salidas y triggers

#TechSum

Desarrollo y despliegue

#TechSum

Ubicación Azure FunctionsUna Azure Function se ubica dentro de una WebApp

Dentro del directorio wwwroot/<FunctionName>

Fichero .csxFichero json con la configuración de los

bindings

#TechSum

Ficheros .csxContiene la función Run que es el entry point

Podemos definir clases dentro del propio fichero csxPueden cargarse ficheros .csx adicionales con #load

#load “otroFichero.csx”#load “path\otroFichero.csx”#load “..\shared\otroFichero.csx”

#TechSum

ReferenciasLos siguientes ensamblados están referenciados automáticamente

mscorlib, System, System.CoreSystem.XmlSystem.Net.Http,

System.Net.Http.FormattingSystem.Web.HttpMicrosoft.Azure.WebJobsMicrosoft.Azure.WebJobs.HostMicrosoft.Azure.WebJobs.Extensions

#TechSum

ReferenciasLos siguientes ensamblados son tratados de forma especial y se pueden referenciar directamente usando #r “nombre”

Newtonsoft.JsonMicrosoft.WindowsAzure.StorageMicrosoft.ServiceBusMicrosoft.AspNet.Webhooks.CommonMicrosoft.AspNet.Webhooks.Receivers

#TechSum

ReferenciasPara agregar paquetes NuGet debe subirse un project.json en la carpeta de la función

Usar #r para referenciar los paquetes por su nombre

#TechSum

DespliegueAzure portalKudu

https://<funcapp>.scm.azurewebsites.netFTP (WebApp)CD a través de varios orígenes

Github, BitBucket, VSTSGitDropbox, OneDrive

#TechSum

¿Y los Webjobs?

#TechSum

Azure functions vs WebJobsAzure functions es una evolución de los WebJobs

Comparten muchas cosas en común

De hecho las Azure Functions se ejecutan dentro del contexto de una web app

Aunque eso nos importa (relativamente) pocoLas Azure Functions se ejecutan bajo el Webjob SDK2

#TechSum

Azure functions vs WebJobsAmbos tienen casi las mismas capacidadesExcepto que las Azure Functions pueden ser invocada via HTTPA nivel de triggers, entradas y salidas son muy parecidos

Las Azure Functions proporcionan un nivel de abstracción superior

#TechSum

Gracias!

http://aka.ms/MTS31 

© 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Recommended