SlideShare una empresa de Scribd logo
#GlobalAzure @CAT_zure
Serverless con CosmosDb y AF
Eduard Tomàs
Local Sponsors
#GlobalAzure
Global sponsors
#GlobalAzure
#GlobalAzure
#GlobalAzure
#GlobalAzure
El reto
#GlobalAzure
El equipo
#GlobalAzure
■ John “CosmosDb” Smith
■ AF Baracus
■ Templeton Peck BusMan
■ Howling ACI Murdock
El equipo “A”
#GlobalAzure
#GlobalAzure
■ Recojer datos de las cervecerías asociadas
■ Importación de ficheros CSV
■Ejemplo: OpenBeerDb
Objetivo
#GlobalAzure
Arquitectura
#GlobalAzure
■ Modelo Serverless para código
■ Despliegas código, nada de infraestructura
■ Soporte para varios lenguajes
Azure Functions
#GlobalAzure
■ Escala según demanda
■ Pagamos por uso (invocación)
■ Integración con recursos de Azure
■ Triggers
■ Entradas
■ Salidas
Azure Functions
#GlobalAzure
■ Triggers: Disparadores que causan la ejecución
■ Petición http, tiempo, nuevo mensaje en ServiceBus,
nuevo blob, …
■ Entradas: Parámetros de la función rellenados a
partir de recursos de Azure
■ Documento en CosmosDb, blob en Storage, …
■ Salidas: Elementos que la función envía a recursos
de Azure
■ Guardar documento en CosmosDb, crear blob, …
Azure Functions
#GlobalAzure
■ V1 está actualmente en GA
■ V2 está en preview
■ C#, JavaScript, F# soportados en ambas
■ V2 soporta Java
■ V1 soporta (de forma “experimental”) muchos otros
lenguajes
■ Pyhton, PHP, bash, PS
V1 vs v2
#GlobalAzure
■ Base de datos serverless distribuída
■Multimodelo y multi-api
■ Grafos, clave-valor, column family y documental
■ SQL, Gremlin, MongoDb, Cassandra, Table Storage
CosmosDb
#GlobalAzure
#GlobalAzure
■ Usuarios pueden hacer check-ins de cervezas
■ Usuarios pueden hacer brindis de otros check-ins
■ Queremos consultas avanzadas tipo:
■ ¿Cuales son los estilos de los check-ins con más brindis de
los amigos de mis amigos?
■ ¿Qué estilos de cerveza, que yo me haya bebido, tienen
check-ins son puntuados más alto por mis amigos?
Objetivo
#GlobalAzure
Arquitectura
http
#GlobalAzure
■ Uso de grafos para consultas avanzadas
■ Requiere guardar la información en un formato
específico
■ Uso de gremlin API para consultar los datos
CosmosDb - Grafos
#GlobalAzure
Grafo
User
User
Brindis
Beer drink
Check-ins
#GlobalAzure
■ Solo usuarios y relaciones friends_of
Ejemplo de grafo inicial
#GlobalAzure
■ Un usuario puede hacer un check-in para indicar
que se ha bebido una cerveza
■ Una AF procesa la petición (id usuario, id cerveza)
■ Recoje datos de la cerveza de CosmosDB
■ Crea objeto checkin con datos cerveza
■ Envía petición “crear check-in” por Service Bus
■ Una AF recoje la petición “crear check-in”
■ Añade el check-in al grafo
Check-in
#GlobalAzure
■ Un usuario puede hacer un toast sobre un check-in
para indicar que “brinda“ con el usuario
■ Una AF procesa la petición y añade directamente el
objeto al grafo:
■ Objeto brindis
■ Relaciones entre este y los objetos usuario y checkin
Toast
#GlobalAzure
■Centrado en el usuario alice
Ejemplo de grafo final
■ Contiene check-ins
■ Contiene toasts
#GlobalAzure
■ Usuario alice
■ g.V().hasLabel(‘user’).has(‘name’, ‘alice’)
■ Checkins de alice
■ g.V().hasLabel(‘user’).has(‘name’,’alice’).outE(‘checkins’).inV()
■ Checkins a los que alice ha hecho toast
■g.V().hasLabel('user').has('name','alice').outE('toasts').inV().outE('with').inV()
Ejemplos de consultar el grafo
#GlobalAzure
#GlobalAzure
■Modelo serverless para contenedores
■Despliegas contenedores
■ Útil para mezclar contenedores en escenarios FaaS
■Posible integración con k8s usando virtual kubelet
ACI – Azure Container Instances
Local Sponsors
#GlobalAzure
Thanks!
#GlobalAzure

Más contenido relacionado

Similar a Serverless with Azure Functions and CosmosDb (20)

Power BI para desarrolladores netcoreconf
Power BI para desarrolladores netcoreconfPower BI para desarrolladores netcoreconf
Power BI para desarrolladores netcoreconf
Antonio Soto
 
Cloud Computing: las nuevas Capas de Persistencia
Cloud Computing: las nuevas Capas de PersistenciaCloud Computing: las nuevas Capas de Persistencia
Cloud Computing: las nuevas Capas de Persistencia
David J. Brenes
 
Realtime nodejs socket io
Realtime nodejs   socket ioRealtime nodejs   socket io
Realtime nodejs socket io
Jose Gratereaux
 
WS02 ESB Service Chaining
WS02 ESB Service ChainingWS02 ESB Service Chaining
WS02 ESB Service Chaining
Emmerson Miranda
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
Rodolfo Finochietti
 
Extendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - Exasol
Extendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - ExasolExtendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - Exasol
Extendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - Exasol
Javier Abadía
 
Cosmos DB + Azure Functions- Cloud Lunch and Learn Marathon .pptx
Cosmos DB + Azure Functions- Cloud Lunch and Learn Marathon .pptxCosmos DB + Azure Functions- Cloud Lunch and Learn Marathon .pptx
Cosmos DB + Azure Functions- Cloud Lunch and Learn Marathon .pptx
Luis Beltran
 
Personalización Data Collectors
Personalización Data CollectorsPersonalización Data Collectors
Personalización Data Collectors
SolidQ
 
Firebase: Backend en la nube
Firebase: Backend en la nubeFirebase: Backend en la nube
Firebase: Backend en la nube
Facundo Rodríguez Arceri
 
IT Camps Apps Office 365 Valencia 2014
IT Camps Apps Office 365 Valencia 2014IT Camps Apps Office 365 Valencia 2014
IT Camps Apps Office 365 Valencia 2014
Adrian Diaz Cervera
 
Buenas prácticas que debes seguir en la administración de tu SQL Server
Buenas prácticas que debes seguir en la administración de tu SQL ServerBuenas prácticas que debes seguir en la administración de tu SQL Server
Buenas prácticas que debes seguir en la administración de tu SQL Server
SolidQ
 
Introducción a Azure App Service - MUG Buenos Aires
Introducción a Azure App Service - MUG Buenos AiresIntroducción a Azure App Service - MUG Buenos Aires
Introducción a Azure App Service - MUG Buenos Aires
Guillermo Javier Bellmann
 
Arquitectura Serverless con AWS Lambda y MongoDB Atlas
Arquitectura Serverless con AWS Lambda y MongoDB AtlasArquitectura Serverless con AWS Lambda y MongoDB Atlas
Arquitectura Serverless con AWS Lambda y MongoDB Atlas
MongoDB
 
Asp .net
Asp .netAsp .net
Asp .net
mellcv
 
Bootstrap 3.
Bootstrap 3.Bootstrap 3.
Bootstrap 3.
Carlos A. Iglesias
 
Cookies y otras tecnologías de monitorización en internet
Cookies y otras tecnologías de monitorización en internetCookies y otras tecnologías de monitorización en internet
Cookies y otras tecnologías de monitorización en internet
Alejandro Ramos
 
Backbeam
BackbeamBackbeam
Backbeam
betabeers
 
Mada metodología ágil de desarrollo de apis
Mada   metodología ágil de desarrollo de apisMada   metodología ágil de desarrollo de apis
Mada metodología ágil de desarrollo de apis
CloudAppi
 
Curso Google Analytics cein
Curso Google Analytics ceinCurso Google Analytics cein
Curso Google Analytics cein
Cein
 
Infraestructura como Código con Azure Resource Manager
Infraestructura como Código con Azure Resource ManagerInfraestructura como Código con Azure Resource Manager
Infraestructura como Código con Azure Resource Manager
Víctor Moreno
 
Power BI para desarrolladores netcoreconf
Power BI para desarrolladores netcoreconfPower BI para desarrolladores netcoreconf
Power BI para desarrolladores netcoreconf
Antonio Soto
 
Cloud Computing: las nuevas Capas de Persistencia
Cloud Computing: las nuevas Capas de PersistenciaCloud Computing: las nuevas Capas de Persistencia
Cloud Computing: las nuevas Capas de Persistencia
David J. Brenes
 
Realtime nodejs socket io
Realtime nodejs   socket ioRealtime nodejs   socket io
Realtime nodejs socket io
Jose Gratereaux
 
Extendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - Exasol
Extendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - ExasolExtendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - Exasol
Extendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - Exasol
Javier Abadía
 
Cosmos DB + Azure Functions- Cloud Lunch and Learn Marathon .pptx
Cosmos DB + Azure Functions- Cloud Lunch and Learn Marathon .pptxCosmos DB + Azure Functions- Cloud Lunch and Learn Marathon .pptx
Cosmos DB + Azure Functions- Cloud Lunch and Learn Marathon .pptx
Luis Beltran
 
Personalización Data Collectors
Personalización Data CollectorsPersonalización Data Collectors
Personalización Data Collectors
SolidQ
 
IT Camps Apps Office 365 Valencia 2014
IT Camps Apps Office 365 Valencia 2014IT Camps Apps Office 365 Valencia 2014
IT Camps Apps Office 365 Valencia 2014
Adrian Diaz Cervera
 
Buenas prácticas que debes seguir en la administración de tu SQL Server
Buenas prácticas que debes seguir en la administración de tu SQL ServerBuenas prácticas que debes seguir en la administración de tu SQL Server
Buenas prácticas que debes seguir en la administración de tu SQL Server
SolidQ
 
Introducción a Azure App Service - MUG Buenos Aires
Introducción a Azure App Service - MUG Buenos AiresIntroducción a Azure App Service - MUG Buenos Aires
Introducción a Azure App Service - MUG Buenos Aires
Guillermo Javier Bellmann
 
Arquitectura Serverless con AWS Lambda y MongoDB Atlas
Arquitectura Serverless con AWS Lambda y MongoDB AtlasArquitectura Serverless con AWS Lambda y MongoDB Atlas
Arquitectura Serverless con AWS Lambda y MongoDB Atlas
MongoDB
 
Asp .net
Asp .netAsp .net
Asp .net
mellcv
 
Cookies y otras tecnologías de monitorización en internet
Cookies y otras tecnologías de monitorización en internetCookies y otras tecnologías de monitorización en internet
Cookies y otras tecnologías de monitorización en internet
Alejandro Ramos
 
Mada metodología ágil de desarrollo de apis
Mada   metodología ágil de desarrollo de apisMada   metodología ágil de desarrollo de apis
Mada metodología ágil de desarrollo de apis
CloudAppi
 
Curso Google Analytics cein
Curso Google Analytics ceinCurso Google Analytics cein
Curso Google Analytics cein
Cein
 
Infraestructura como Código con Azure Resource Manager
Infraestructura como Código con Azure Resource ManagerInfraestructura como Código con Azure Resource Manager
Infraestructura como Código con Azure Resource Manager
Víctor Moreno
 

Más de Eduard Tomàs (20)

Kubernetes: Do's, don'ts and why's
Kubernetes: Do's, don'ts and why'sKubernetes: Do's, don'ts and why's
Kubernetes: Do's, don'ts and why's
Eduard Tomàs
 
KCDS 2021- Escalando workloads serverless en Kubernetes con KEDA
KCDS 2021- Escalando workloads serverless en Kubernetes con KEDAKCDS 2021- Escalando workloads serverless en Kubernetes con KEDA
KCDS 2021- Escalando workloads serverless en Kubernetes con KEDA
Eduard Tomàs
 
Escalando workloads serverless en Kubernetes con Keda
Escalando workloads serverless en Kubernetes con KedaEscalando workloads serverless en Kubernetes con Keda
Escalando workloads serverless en Kubernetes con Keda
Eduard Tomàs
 
C#9 - Más C# que nunca
C#9 - Más C# que nuncaC#9 - Más C# que nunca
C#9 - Más C# que nunca
Eduard Tomàs
 
CollabDays 2020 Barcelona - Serverless Kubernetes with KEDA
CollabDays 2020 Barcelona - Serverless Kubernetes with KEDACollabDays 2020 Barcelona - Serverless Kubernetes with KEDA
CollabDays 2020 Barcelona - Serverless Kubernetes with KEDA
Eduard Tomàs
 
Keda o como convertir Kubernetess en Serverless
Keda o como convertir Kubernetess en ServerlessKeda o como convertir Kubernetess en Serverless
Keda o como convertir Kubernetess en Serverless
Eduard Tomàs
 
.NET Memoria y Rendimiento
.NET Memoria y Rendimiento.NET Memoria y Rendimiento
.NET Memoria y Rendimiento
Eduard Tomàs
 
Containers en .NET (Dot Net 2018 - Spain)
Containers en .NET (Dot Net 2018 - Spain)Containers en .NET (Dot Net 2018 - Spain)
Containers en .NET (Dot Net 2018 - Spain)
Eduard Tomàs
 
Esos contenedores, ¡a producción! (Commit Conf 2018)
Esos contenedores, ¡a producción! (Commit Conf 2018)Esos contenedores, ¡a producción! (Commit Conf 2018)
Esos contenedores, ¡a producción! (Commit Conf 2018)
Eduard Tomàs
 
Codemotion 2015 - Bienvenido de nuevo c++
Codemotion 2015 - Bienvenido de nuevo c++Codemotion 2015 - Bienvenido de nuevo c++
Codemotion 2015 - Bienvenido de nuevo c++
Eduard Tomàs
 
El "peor" lenguaje del mundo
El "peor" lenguaje del mundoEl "peor" lenguaje del mundo
El "peor" lenguaje del mundo
Eduard Tomàs
 
Containerize a netcore application with aks
 Containerize a netcore application with aks Containerize a netcore application with aks
Containerize a netcore application with aks
Eduard Tomàs
 
Escenarios avanzados en AKS (Global Azure Bootcamp Barcelona 2019)
Escenarios avanzados en AKS (Global Azure Bootcamp Barcelona 2019)Escenarios avanzados en AKS (Global Azure Bootcamp Barcelona 2019)
Escenarios avanzados en AKS (Global Azure Bootcamp Barcelona 2019)
Eduard Tomàs
 
Aplicaciones de consola fáciles? Más quisieramos
Aplicaciones de consola fáciles? Más quisieramosAplicaciones de consola fáciles? Más quisieramos
Aplicaciones de consola fáciles? Más quisieramos
Eduard Tomàs
 
Docker y todo eso... más o menos
Docker y todo eso... más o menosDocker y todo eso... más o menos
Docker y todo eso... más o menos
Eduard Tomàs
 
Microservices: Yes or not?
Microservices: Yes or not?Microservices: Yes or not?
Microservices: Yes or not?
Eduard Tomàs
 
ASP.NET MVC Core
ASP.NET MVC CoreASP.NET MVC Core
ASP.NET MVC Core
Eduard Tomàs
 
Azure functions
Azure functionsAzure functions
Azure functions
Eduard Tomàs
 
React native - Unleash the power of your device
React native - Unleash the power of your deviceReact native - Unleash the power of your device
React native - Unleash the power of your device
Eduard Tomàs
 
JavaScript in 2016 (Codemotion Rome)
JavaScript in 2016 (Codemotion Rome)JavaScript in 2016 (Codemotion Rome)
JavaScript in 2016 (Codemotion Rome)
Eduard Tomàs
 
Kubernetes: Do's, don'ts and why's
Kubernetes: Do's, don'ts and why'sKubernetes: Do's, don'ts and why's
Kubernetes: Do's, don'ts and why's
Eduard Tomàs
 
KCDS 2021- Escalando workloads serverless en Kubernetes con KEDA
KCDS 2021- Escalando workloads serverless en Kubernetes con KEDAKCDS 2021- Escalando workloads serverless en Kubernetes con KEDA
KCDS 2021- Escalando workloads serverless en Kubernetes con KEDA
Eduard Tomàs
 
Escalando workloads serverless en Kubernetes con Keda
Escalando workloads serverless en Kubernetes con KedaEscalando workloads serverless en Kubernetes con Keda
Escalando workloads serverless en Kubernetes con Keda
Eduard Tomàs
 
C#9 - Más C# que nunca
C#9 - Más C# que nuncaC#9 - Más C# que nunca
C#9 - Más C# que nunca
Eduard Tomàs
 
CollabDays 2020 Barcelona - Serverless Kubernetes with KEDA
CollabDays 2020 Barcelona - Serverless Kubernetes with KEDACollabDays 2020 Barcelona - Serverless Kubernetes with KEDA
CollabDays 2020 Barcelona - Serverless Kubernetes with KEDA
Eduard Tomàs
 
Keda o como convertir Kubernetess en Serverless
Keda o como convertir Kubernetess en ServerlessKeda o como convertir Kubernetess en Serverless
Keda o como convertir Kubernetess en Serverless
Eduard Tomàs
 
.NET Memoria y Rendimiento
.NET Memoria y Rendimiento.NET Memoria y Rendimiento
.NET Memoria y Rendimiento
Eduard Tomàs
 
Containers en .NET (Dot Net 2018 - Spain)
Containers en .NET (Dot Net 2018 - Spain)Containers en .NET (Dot Net 2018 - Spain)
Containers en .NET (Dot Net 2018 - Spain)
Eduard Tomàs
 
Esos contenedores, ¡a producción! (Commit Conf 2018)
Esos contenedores, ¡a producción! (Commit Conf 2018)Esos contenedores, ¡a producción! (Commit Conf 2018)
Esos contenedores, ¡a producción! (Commit Conf 2018)
Eduard Tomàs
 
Codemotion 2015 - Bienvenido de nuevo c++
Codemotion 2015 - Bienvenido de nuevo c++Codemotion 2015 - Bienvenido de nuevo c++
Codemotion 2015 - Bienvenido de nuevo c++
Eduard Tomàs
 
El "peor" lenguaje del mundo
El "peor" lenguaje del mundoEl "peor" lenguaje del mundo
El "peor" lenguaje del mundo
Eduard Tomàs
 
Containerize a netcore application with aks
 Containerize a netcore application with aks Containerize a netcore application with aks
Containerize a netcore application with aks
Eduard Tomàs
 
Escenarios avanzados en AKS (Global Azure Bootcamp Barcelona 2019)
Escenarios avanzados en AKS (Global Azure Bootcamp Barcelona 2019)Escenarios avanzados en AKS (Global Azure Bootcamp Barcelona 2019)
Escenarios avanzados en AKS (Global Azure Bootcamp Barcelona 2019)
Eduard Tomàs
 
Aplicaciones de consola fáciles? Más quisieramos
Aplicaciones de consola fáciles? Más quisieramosAplicaciones de consola fáciles? Más quisieramos
Aplicaciones de consola fáciles? Más quisieramos
Eduard Tomàs
 
Docker y todo eso... más o menos
Docker y todo eso... más o menosDocker y todo eso... más o menos
Docker y todo eso... más o menos
Eduard Tomàs
 
Microservices: Yes or not?
Microservices: Yes or not?Microservices: Yes or not?
Microservices: Yes or not?
Eduard Tomàs
 
React native - Unleash the power of your device
React native - Unleash the power of your deviceReact native - Unleash the power of your device
React native - Unleash the power of your device
Eduard Tomàs
 
JavaScript in 2016 (Codemotion Rome)
JavaScript in 2016 (Codemotion Rome)JavaScript in 2016 (Codemotion Rome)
JavaScript in 2016 (Codemotion Rome)
Eduard Tomàs
 

Serverless with Azure Functions and CosmosDb

Notas del editor

  翻译: