SlideShare una empresa de Scribd logo
Cosmos DB Leonardo Micheloni
@leomicheloni
¿Quién soy?
Leonardo Micheloni
@leomicheloni
@leomicheloni
Imaginemos
• Estar donde los clientes
• No estar atado a un modelo
• No estar atado a un nivel de
consistencia
• No estar atado a una API
• No preocuparnos por los
índices
• Poder escalar elásticamente
• Que sea un servicio
@leomicheloni
• Database as a service
• NoSQL
• Multi region replication
• Manual and automatic
failover
• Multi model
• Multi API
• Intuitive consistency level
• Designed for high availability
@leomicheloni
NoSQL
• Las bases de datos relacionales (SQL server, Orable, MySQL)
siguen el teorema ACID
• Atomicity
• Consitency
• Isolation
• Durability
• En sistemas distribuidos esto puede ser un problema
@leomicheloni
Bases de
datos NoSQL
• Siguen el teorema CAP
• Consistency
• Availability
• Partition tolerance
• Solo puedo tener dos
en simultáneo
@leomicheloni
Global distribution
• Replicación automática
alrededor del mundo con un
click
• Más regiones que Amazon y
Google combinados
@leomicheloni
Multiregional failover
@leomicheloni
Multimodelo
• Cosmos DB permite guardar los datos en diferentes formatos
• Documentos
• Grafos
• Clave / valor
• Indexa automáticamente todos los campos
@leomicheloni
Multi API
• Document DB
• MongoDB
• Table API
• Graph API
• Cassandra
• Modelos de datos relacionales (vNext)
@leomicheloni
Soporte multiplataforma
• SDKs
• .NET
• .NET Core
• Java
• Phyton
• Node JS
• API REST
@leomicheloni
Escalado elástico de rendimiento y
almacenamiento
• Es posible cambiar en
cualquier momento
• Es posible hacerlo por
código
• Es transparente para las
aplicaciones
• Cosmos DB se encarga de
conectar al nodo más
adecuado
@leomicheloni
Tipos de consistencia
• Strong
• Bounded-staleness
• Session
• Consistent Prefix
• Eventual
@leomicheloni
Tipos de consistencia
• Strong: El más transaccional, las lecturas siempre retornan la última versión de los datos, en
este caso no se puede asociar a más de una región.
• Bounded Staleness: Las lecturas están detrás de las escrituras k prefijos (o versiones) o un
intervalo de tiempo definido
• Session: Ofrece consistencia para un cliente determinado.
• Consistent Prefix: En caso de escribirse A, B y C, los clientes leeran A o A, B, o A,B y C, pero
nunca mezaclados.
• Eventual: El modelo asegura lecturas inmediatas pero ningún nivel de consistencia inmediata,
solo que eventualmente todos los clientes verán las mismas escritura.
• Al definir un nivel de consistencia definimos el nivel por defecto, sin embargo podemos
utilizar un nivel de consistencia diferente en cada lectura, lo cual aporta aún más flexibilidad.
@leomicheloni
Casos de uso
@leomicheloni
• Retail apps
• Mobile
• Web apps
• Games
• Social apps
• Azure!
¿Cómo saber si elegir Cosmos DB?
• Si los datos cambian mucho, sin importar si es esquema o keyvalue
• Si tenemos muchas transacciones por segundo
• Si hay una enorme cantidad de datos4
• En general todos aquellos escenarios para los que los RDBMS no
son buenos
@leomicheloni
DEMO
@leomicheloni
Probar Cosmos DB gratis
• https://azure.microsoft.com/en-us/try/cosmosdb/ @leomicheloni
Referencias
• https://azure.microsoft.com/en-us/services/cosmos-db/
• https://azure.microsoft.com/es-es/blog/the-walking-dead-no-mans-land-
game-soars-to-1-with-azure-documentdb/https://docs.microsoft.com/es-
es/azure/cosmos-db/introduction
• https://docs.microsoft.com/en-us/azure/cosmos-db/consistency-levels
• https://docs.microsoft.com/en-us/azure/cosmos-db/20-days-of-tips
• https://azure.microsoft.com/en-us/try/cosmosdb/
• https://www.youtube.com/watch?v=4fRKzcU__jY
• https://github.com/afhaque/MeanMapAppV2.0
@leomicheloni

Más contenido relacionado

Similar a Cosmos DB in a nutshell

Servicios de storage de AWS
Servicios de storage de AWSServicios de storage de AWS
Servicios de storage de AWS
Amazon Web Services LATAM
 
Azure CosmosDB @ NETConf AR 2017
Azure CosmosDB @ NETConf AR 2017Azure CosmosDB @ NETConf AR 2017
Azure CosmosDB @ NETConf AR 2017
Matias Quaranta
 
Servicios de Storage en AWS
Servicios de Storage en AWSServicios de Storage en AWS
Servicios de Storage en AWS
Amazon Web Services LATAM
 
NoSQL: Un Cambio de Paradigma - Apache Cassandra
NoSQL: Un Cambio de Paradigma - Apache CassandraNoSQL: Un Cambio de Paradigma - Apache Cassandra
NoSQL: Un Cambio de Paradigma - Apache Cassandra
Wladimir Cabarcas
 
Introducción a NoSQL
Introducción a NoSQLIntroducción a NoSQL
Introducción a NoSQL
Cycle-IT
 
Codemotion cosmosdb
Codemotion cosmosdbCodemotion cosmosdb
Codemotion cosmosdb
Robert Bermejo Blasco
 
Sistema de Bases de Datos AWS
Sistema de Bases de Datos AWSSistema de Bases de Datos AWS
Sistema de Bases de Datos AWS
Amazon Web Services LATAM
 
Act4 bd teo
Act4 bd teoAct4 bd teo
Base de datos pedraza
Base de datos  pedraza Base de datos  pedraza
Base de datos pedraza
Flora Pedraza
 
Base de datos pedraza
Base de datos  pedraza Base de datos  pedraza
Base de datos pedraza
Flora Pedraza
 
04 presentacion acosta_claudio
04 presentacion acosta_claudio04 presentacion acosta_claudio
04 presentacion acosta_claudio
claudio acosta lara
 
Servicios de Bases de Datos de AWS
Servicios de Bases de Datos de AWSServicios de Bases de Datos de AWS
Servicios de Bases de Datos de AWS
Amazon Web Services LATAM
 
Base de Datos
Base de DatosBase de Datos
Base de Datos
Antonio Alonso Antonio
 
Base de datos
Base de datosBase de datos
Fundamentos de NoSQL
Fundamentos de NoSQLFundamentos de NoSQL
Fundamentos de NoSQL
Keneth Murillo
 
Base de datos
Base de datosBase de datos
Bases de Datos No Relacionales
Bases de Datos No RelacionalesBases de Datos No Relacionales
Bases de Datos No Relacionales
BEEVA_es
 
Basede datos salas ubaldo
Basede datos salas ubaldoBasede datos salas ubaldo
Basede datos salas ubaldo
ubas salas
 
Principales bases de datos
Principales bases de datosPrincipales bases de datos
Principales bases de datos
Claudia San Agustín
 
Arquitectura de las nuevas aplicaciones web: Como lograr escalabilidad, alta ...
Arquitectura de las nuevas aplicaciones web: Como lograr escalabilidad, alta ...Arquitectura de las nuevas aplicaciones web: Como lograr escalabilidad, alta ...
Arquitectura de las nuevas aplicaciones web: Como lograr escalabilidad, alta ...
Miguel Gallardo
 

Similar a Cosmos DB in a nutshell (20)

Servicios de storage de AWS
Servicios de storage de AWSServicios de storage de AWS
Servicios de storage de AWS
 
Azure CosmosDB @ NETConf AR 2017
Azure CosmosDB @ NETConf AR 2017Azure CosmosDB @ NETConf AR 2017
Azure CosmosDB @ NETConf AR 2017
 
Servicios de Storage en AWS
Servicios de Storage en AWSServicios de Storage en AWS
Servicios de Storage en AWS
 
NoSQL: Un Cambio de Paradigma - Apache Cassandra
NoSQL: Un Cambio de Paradigma - Apache CassandraNoSQL: Un Cambio de Paradigma - Apache Cassandra
NoSQL: Un Cambio de Paradigma - Apache Cassandra
 
Introducción a NoSQL
Introducción a NoSQLIntroducción a NoSQL
Introducción a NoSQL
 
Codemotion cosmosdb
Codemotion cosmosdbCodemotion cosmosdb
Codemotion cosmosdb
 
Sistema de Bases de Datos AWS
Sistema de Bases de Datos AWSSistema de Bases de Datos AWS
Sistema de Bases de Datos AWS
 
Act4 bd teo
Act4 bd teoAct4 bd teo
Act4 bd teo
 
Base de datos pedraza
Base de datos  pedraza Base de datos  pedraza
Base de datos pedraza
 
Base de datos pedraza
Base de datos  pedraza Base de datos  pedraza
Base de datos pedraza
 
04 presentacion acosta_claudio
04 presentacion acosta_claudio04 presentacion acosta_claudio
04 presentacion acosta_claudio
 
Servicios de Bases de Datos de AWS
Servicios de Bases de Datos de AWSServicios de Bases de Datos de AWS
Servicios de Bases de Datos de AWS
 
Base de Datos
Base de DatosBase de Datos
Base de Datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
Fundamentos de NoSQL
Fundamentos de NoSQLFundamentos de NoSQL
Fundamentos de NoSQL
 
Base de datos
Base de datosBase de datos
Base de datos
 
Bases de Datos No Relacionales
Bases de Datos No RelacionalesBases de Datos No Relacionales
Bases de Datos No Relacionales
 
Basede datos salas ubaldo
Basede datos salas ubaldoBasede datos salas ubaldo
Basede datos salas ubaldo
 
Principales bases de datos
Principales bases de datosPrincipales bases de datos
Principales bases de datos
 
Arquitectura de las nuevas aplicaciones web: Como lograr escalabilidad, alta ...
Arquitectura de las nuevas aplicaciones web: Como lograr escalabilidad, alta ...Arquitectura de las nuevas aplicaciones web: Como lograr escalabilidad, alta ...
Arquitectura de las nuevas aplicaciones web: Como lograr escalabilidad, alta ...
 

Más de Leonardo Micheloni

Docker_K8S_lecciones_netcoreconf_2022.pdf
Docker_K8S_lecciones_netcoreconf_2022.pdfDocker_K8S_lecciones_netcoreconf_2022.pdf
Docker_K8S_lecciones_netcoreconf_2022.pdf
Leonardo Micheloni
 
Docker dotnet netbaires
Docker dotnet netbairesDocker dotnet netbaires
Docker dotnet netbaires
Leonardo Micheloni
 
Mas alla de javascript con typescript
Mas alla de javascript con typescriptMas alla de javascript con typescript
Mas alla de javascript con typescript
Leonardo Micheloni
 
Workshop clean code javascript
Workshop clean code javascriptWorkshop clean code javascript
Workshop clean code javascript
Leonardo Micheloni
 
2019 commit solid typescript
2019 commit solid typescript2019 commit solid typescript
2019 commit solid typescript
Leonardo Micheloni
 
Solid con typescript
Solid con typescriptSolid con typescript
Solid con typescript
Leonardo Micheloni
 
Tdd desde las trincheras
Tdd desde las trincherasTdd desde las trincheras
Tdd desde las trincheras
Leonardo Micheloni
 
Docker Dotnet Málaga
Docker Dotnet MálagaDocker Dotnet Málaga
Docker Dotnet Málaga
Leonardo Micheloni
 
Pipeline continuo con VSTS Azure DevOps
Pipeline continuo con VSTS Azure DevOpsPipeline continuo con VSTS Azure DevOps
Pipeline continuo con VSTS Azure DevOps
Leonardo Micheloni
 
Docker for losers
Docker for losersDocker for losers
Docker for losers
Leonardo Micheloni
 
Clean code javascript + live coding
Clean code javascript + live codingClean code javascript + live coding
Clean code javascript + live coding
Leonardo Micheloni
 
Esp8266 iothub Azure data analysis in real time
Esp8266 iothub Azure data analysis in real timeEsp8266 iothub Azure data analysis in real time
Esp8266 iothub Azure data analysis in real time
Leonardo Micheloni
 
Clean code javascript
Clean code javascriptClean code javascript
Clean code javascript
Leonardo Micheloni
 
Tdd y pair programming
Tdd y pair programmingTdd y pair programming
Tdd y pair programming
Leonardo Micheloni
 
Blockchain, smart contracts y azure
Blockchain, smart contracts y azureBlockchain, smart contracts y azure
Blockchain, smart contracts y azure
Leonardo Micheloni
 

Más de Leonardo Micheloni (15)

Docker_K8S_lecciones_netcoreconf_2022.pdf
Docker_K8S_lecciones_netcoreconf_2022.pdfDocker_K8S_lecciones_netcoreconf_2022.pdf
Docker_K8S_lecciones_netcoreconf_2022.pdf
 
Docker dotnet netbaires
Docker dotnet netbairesDocker dotnet netbaires
Docker dotnet netbaires
 
Mas alla de javascript con typescript
Mas alla de javascript con typescriptMas alla de javascript con typescript
Mas alla de javascript con typescript
 
Workshop clean code javascript
Workshop clean code javascriptWorkshop clean code javascript
Workshop clean code javascript
 
2019 commit solid typescript
2019 commit solid typescript2019 commit solid typescript
2019 commit solid typescript
 
Solid con typescript
Solid con typescriptSolid con typescript
Solid con typescript
 
Tdd desde las trincheras
Tdd desde las trincherasTdd desde las trincheras
Tdd desde las trincheras
 
Docker Dotnet Málaga
Docker Dotnet MálagaDocker Dotnet Málaga
Docker Dotnet Málaga
 
Pipeline continuo con VSTS Azure DevOps
Pipeline continuo con VSTS Azure DevOpsPipeline continuo con VSTS Azure DevOps
Pipeline continuo con VSTS Azure DevOps
 
Docker for losers
Docker for losersDocker for losers
Docker for losers
 
Clean code javascript + live coding
Clean code javascript + live codingClean code javascript + live coding
Clean code javascript + live coding
 
Esp8266 iothub Azure data analysis in real time
Esp8266 iothub Azure data analysis in real timeEsp8266 iothub Azure data analysis in real time
Esp8266 iothub Azure data analysis in real time
 
Clean code javascript
Clean code javascriptClean code javascript
Clean code javascript
 
Tdd y pair programming
Tdd y pair programmingTdd y pair programming
Tdd y pair programming
 
Blockchain, smart contracts y azure
Blockchain, smart contracts y azureBlockchain, smart contracts y azure
Blockchain, smart contracts y azure
 

Último

Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
micarnavaltupatrimon
 
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptxTARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
dayronfabricioruizmo
 
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
Maria Celeste Trujillo Cruz
 
Introduccion al Lenguaje de Programación C++
Introduccion al Lenguaje de Programación  C++Introduccion al Lenguaje de Programación  C++
Introduccion al Lenguaje de Programación C++
PaulDelgadoSoto
 
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcelherramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
Eduardo455921
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
micarnavaltupatrimon
 
primer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporteprimer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporte
eliersin13
 
Buscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - BuscafiestaBuscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - Buscafiesta
holabuscafiesta
 

Último (8)

Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
 
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptxTARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
 
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
 
Introduccion al Lenguaje de Programación C++
Introduccion al Lenguaje de Programación  C++Introduccion al Lenguaje de Programación  C++
Introduccion al Lenguaje de Programación C++
 
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcelherramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
 
primer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporteprimer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporte
 
Buscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - BuscafiestaBuscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - Buscafiesta
 

Cosmos DB in a nutshell

  • 1. Cosmos DB Leonardo Micheloni @leomicheloni
  • 3. Imaginemos • Estar donde los clientes • No estar atado a un modelo • No estar atado a un nivel de consistencia • No estar atado a una API • No preocuparnos por los índices • Poder escalar elásticamente • Que sea un servicio @leomicheloni
  • 4. • Database as a service • NoSQL • Multi region replication • Manual and automatic failover • Multi model • Multi API • Intuitive consistency level • Designed for high availability @leomicheloni
  • 5. NoSQL • Las bases de datos relacionales (SQL server, Orable, MySQL) siguen el teorema ACID • Atomicity • Consitency • Isolation • Durability • En sistemas distribuidos esto puede ser un problema @leomicheloni
  • 6. Bases de datos NoSQL • Siguen el teorema CAP • Consistency • Availability • Partition tolerance • Solo puedo tener dos en simultáneo @leomicheloni
  • 7. Global distribution • Replicación automática alrededor del mundo con un click • Más regiones que Amazon y Google combinados @leomicheloni
  • 9. Multimodelo • Cosmos DB permite guardar los datos en diferentes formatos • Documentos • Grafos • Clave / valor • Indexa automáticamente todos los campos @leomicheloni
  • 10. Multi API • Document DB • MongoDB • Table API • Graph API • Cassandra • Modelos de datos relacionales (vNext) @leomicheloni
  • 11. Soporte multiplataforma • SDKs • .NET • .NET Core • Java • Phyton • Node JS • API REST @leomicheloni
  • 12. Escalado elástico de rendimiento y almacenamiento • Es posible cambiar en cualquier momento • Es posible hacerlo por código • Es transparente para las aplicaciones • Cosmos DB se encarga de conectar al nodo más adecuado @leomicheloni
  • 13. Tipos de consistencia • Strong • Bounded-staleness • Session • Consistent Prefix • Eventual @leomicheloni
  • 14. Tipos de consistencia • Strong: El más transaccional, las lecturas siempre retornan la última versión de los datos, en este caso no se puede asociar a más de una región. • Bounded Staleness: Las lecturas están detrás de las escrituras k prefijos (o versiones) o un intervalo de tiempo definido • Session: Ofrece consistencia para un cliente determinado. • Consistent Prefix: En caso de escribirse A, B y C, los clientes leeran A o A, B, o A,B y C, pero nunca mezaclados. • Eventual: El modelo asegura lecturas inmediatas pero ningún nivel de consistencia inmediata, solo que eventualmente todos los clientes verán las mismas escritura. • Al definir un nivel de consistencia definimos el nivel por defecto, sin embargo podemos utilizar un nivel de consistencia diferente en cada lectura, lo cual aporta aún más flexibilidad. @leomicheloni
  • 15. Casos de uso @leomicheloni • Retail apps • Mobile • Web apps • Games • Social apps • Azure!
  • 16. ¿Cómo saber si elegir Cosmos DB? • Si los datos cambian mucho, sin importar si es esquema o keyvalue • Si tenemos muchas transacciones por segundo • Si hay una enorme cantidad de datos4 • En general todos aquellos escenarios para los que los RDBMS no son buenos @leomicheloni
  • 18. Probar Cosmos DB gratis • https://azure.microsoft.com/en-us/try/cosmosdb/ @leomicheloni
  • 19. Referencias • https://azure.microsoft.com/en-us/services/cosmos-db/ • https://azure.microsoft.com/es-es/blog/the-walking-dead-no-mans-land- game-soars-to-1-with-azure-documentdb/https://docs.microsoft.com/es- es/azure/cosmos-db/introduction • https://docs.microsoft.com/en-us/azure/cosmos-db/consistency-levels • https://docs.microsoft.com/en-us/azure/cosmos-db/20-days-of-tips • https://azure.microsoft.com/en-us/try/cosmosdb/ • https://www.youtube.com/watch?v=4fRKzcU__jY • https://github.com/afhaque/MeanMapAppV2.0 @leomicheloni