SlideShare una empresa de Scribd logo
1 de 26
Cosmos DB Leonardo Micheloni
@leomicheloni
Un paseo por
¿Quién soy?
Leonardo Micheloni
@leomicheloni
@leomicheloni
Argentino en Madrid
Escenario
• Hoy en día es cada vez más común tener aplicaciones distribuidas
• Demanda todo el día
• Esto presenta desafíos diferentes a los acostumbrados
• Latencia
• Disponibilidad
• Escalamiento
• Único punto de falla
@leomicheloni
Escenario
• Existen muchas diferentes herramientas
• Diferentes formas de almacenar los datos
• Diferentes APIs
• Servicios
@leomicheloni
Sistemas relacionales RDBMS (clásicos)
• Son excelentes para modelos relacionales
• Siguen el teorema ACID
• Atomicidad
• Consistencia
• Aislamiento
• Durabilidad
• Son muy confiables y muy rápidos
• Pueden presentar problemas en sistemas distribuidos
@leomicheloni
Sistemas relacionales RDBMS (clásicos)
• En ocasiones se utilizan para algo que no fueron pensados
• Key value
• JSON
• ORM
@leomicheloni
Bases de
datos NoSQL
• Siguen el teorema CAP
• Consistency
• Availability
• Partition tolerance
• Solo puedo tener dos
en simultáneo
@leomicheloni
NoSQL
• Modelos
• Key Value
• Columnas
• Documentos
• Grafos
• Cada elemento es independiente
• Tiene su propio esquema
• Lo ideal es usar el más adecuado para nuestro requisito
@leomicheloni
Algunos ejemplos de NoSQL
• MongoDB
• Basada en documentos
• Ebay, GAP, Chicago Police, Under Armour, HSBC, McAfee, Adobe
• Lenguaje de consulta "basado en JSON"
• Cassandra (Facebook inbox search)
• Bigtable
• GoDaddy, Reddit, Weather Channel, Apple (75K nodos, 10PB)
• Cassandra Query Language (CQL)
• GraphDB
• Grafos
• Walmart, Cisco, Microsoft, Medium.
• Gremlin API
@leomicheloni
@leomicheloni
• NoSql Database as a service
• Multi region replication
• Manual and automatic failover
• Multi model
• Multi API
• Intuitive consistency level
• Designed for high availability
@leomicheloni
Global distribution
• Replicación automática alrededor
del mundo con un click
• Una sola colección particionada y
distribuida en varias regiones
• Geovallado basado en directivas
• Selección del mejor nodo
automática
@leomicheloni
Multiregional failover
@leomicheloni
Multimodelo
• Cosmos DB permite guardar los datos en diferentes formatos
• Documentos
• Grafos
• Clave / valor
• Indexa automáticamente todos los campos
• TTL a nivel documento
@leomicheloni
Multimodelo
• Soporte para UDF
• Trigger
• Stored procedures
• Binding con Azure functions
@leomicheloni
Multi API
• Sql Database (Document DB)
• MongoDB
• Table API
• Graph API (Gremlin)
• Cassandra
@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
Escalado elástico de rendimiento y
almacenamiento
• RU (request unit)
• SLA 99%
@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 datos
• Si estamos usando el RDBMS para cosas “extrañas”
• En general todos aquellos escenarios para los que los RDBMS no
son buenos
• Pueden convivir!
@leomicheloni
@leomicheloni
https://www.sqlhammer.com/wp-content/uploads/2016/10/demo-god-meme.jpg
Probar Cosmos DB gratis
• https://azure.microsoft.com/en-us/try/cosmosdb/ @leomicheloni
Referencias
• https://azure.microsoft.com/en-us/services/cosmos-db/
• https://docs.microsoft.com/es-es/azure/cosmos-db/distribute-
data-globally
• 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 Un viaje por Cosmos DB

Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2Ricard Clau
 
Aplicaciones móviles super-escalables
Aplicaciones móviles super-escalablesAplicaciones móviles super-escalables
Aplicaciones móviles super-escalablesSergio Borromei
 
Aplicaciones web altamente escalables con Redis
Aplicaciones web altamente escalables con RedisAplicaciones web altamente escalables con Redis
Aplicaciones web altamente escalables con RedisAlberto Gimeno
 
Introducción a NoSQL
Introducción a NoSQLIntroducción a NoSQL
Introducción a NoSQLCycle-IT
 
Flowics - Jornada en Big Data 2016 - ITBA
Flowics - Jornada en Big Data 2016 - ITBA Flowics - Jornada en Big Data 2016 - ITBA
Flowics - Jornada en Big Data 2016 - ITBA Andres Moratti
 
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
 
Polybase
PolybasePolybase
PolybaseSolidQ
 
Desarrollo de Almacenes de Datos con Sistemas Gestores de Bases de Datos NOSQL
Desarrollo de Almacenes de Datos con Sistemas Gestores de Bases de Datos NOSQLDesarrollo de Almacenes de Datos con Sistemas Gestores de Bases de Datos NOSQL
Desarrollo de Almacenes de Datos con Sistemas Gestores de Bases de Datos NOSQLRoanny Lamas
 
Grails, opción real y escalable para sitios web de alta carga
Grails, opción real y escalable para sitios web de alta cargaGrails, opción real y escalable para sitios web de alta carga
Grails, opción real y escalable para sitios web de alta cargaDomingo Suarez Torres
 

Similar a Un viaje por Cosmos DB (20)

Codemotion cosmosdb
Codemotion cosmosdbCodemotion cosmosdb
Codemotion cosmosdb
 
Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2
 
Aplicaciones móviles super-escalables
Aplicaciones móviles super-escalablesAplicaciones móviles super-escalables
Aplicaciones móviles super-escalables
 
Sistema de Bases de Datos AWS
Sistema de Bases de Datos AWSSistema de Bases de Datos AWS
Sistema de Bases de Datos AWS
 
Aplicaciones web altamente escalables con Redis
Aplicaciones web altamente escalables con RedisAplicaciones web altamente escalables con Redis
Aplicaciones web altamente escalables con Redis
 
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
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Introducción a NoSQL
Introducción a NoSQLIntroducción a NoSQL
Introducción a NoSQL
 
Webinar Oracle GoldenGate
Webinar Oracle GoldenGate Webinar Oracle GoldenGate
Webinar Oracle GoldenGate
 
Flowics - Jornada en Big Data 2016 - ITBA
Flowics - Jornada en Big Data 2016 - ITBA Flowics - Jornada en Big Data 2016 - ITBA
Flowics - Jornada en Big Data 2016 - ITBA
 
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 ...
 
Act4 bd teo
Act4 bd teoAct4 bd teo
Act4 bd teo
 
Video_MartinFowler.pptx
Video_MartinFowler.pptxVideo_MartinFowler.pptx
Video_MartinFowler.pptx
 
Video_MartinFowler.pptx
Video_MartinFowler.pptxVideo_MartinFowler.pptx
Video_MartinFowler.pptx
 
Polybase
PolybasePolybase
Polybase
 
Desarrollo de Almacenes de Datos con Sistemas Gestores de Bases de Datos NOSQL
Desarrollo de Almacenes de Datos con Sistemas Gestores de Bases de Datos NOSQLDesarrollo de Almacenes de Datos con Sistemas Gestores de Bases de Datos NOSQL
Desarrollo de Almacenes de Datos con Sistemas Gestores de Bases de Datos NOSQL
 
Servicios de Storage en AWS
Servicios de Storage en AWSServicios de Storage en AWS
Servicios de Storage en AWS
 
Grails, opción real y escalable para sitios web de alta carga
Grails, opción real y escalable para sitios web de alta cargaGrails, opción real y escalable para sitios web de alta carga
Grails, opción real y escalable para sitios web de alta carga
 
Introducción a Big Data en AWS
Introducción a Big Data en AWSIntroducción a Big Data en AWS
Introducción a Big Data en AWS
 
Desayuno de arquitectos: Big data en azure
Desayuno de arquitectos: Big data en azureDesayuno de arquitectos: Big data en azure
Desayuno de arquitectos: Big data en azure
 

Más de 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

SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdfSEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdffredyflores58
 
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...Arquitecto Alejandro Gomez cornejo muñoz
 
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfCONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfErikNivor
 
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...esandoval7
 
Peligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacionPeligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacionOsdelTacusiPancorbo
 
4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptx4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptxEfrain Yungan
 
CFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric ProjectCFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric ProjectCarlos Delgado
 
Electricidad y electronica industrial unidad 1
Electricidad y electronica industrial unidad 1Electricidad y electronica industrial unidad 1
Electricidad y electronica industrial unidad 1victorrodrigues972054
 
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptxluiscisnerosayala23
 
Tarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieriaTarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieriaSebastianQP1
 
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdfS454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdffredyflores58
 
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTOESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTOCamiloSaavedra30
 
Proyecto de Base de Datos de César Guzmán
Proyecto de Base de Datos de César GuzmánProyecto de Base de Datos de César Guzmán
Proyecto de Base de Datos de César Guzmáncesarguzmansierra751
 
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptxNayeliZarzosa1
 
POBLACIONES CICLICAS Y NO CICLICAS ......
POBLACIONES CICLICAS Y NO CICLICAS ......POBLACIONES CICLICAS Y NO CICLICAS ......
POBLACIONES CICLICAS Y NO CICLICAS ......dianamontserratmayor
 
Trabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruanaTrabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruana5extraviado
 
trabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidastrabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidasNelsonQuispeQuispitu
 
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...humberto espejo
 

Último (20)

SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdfSEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
 
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
 
presentación manipulación manual de cargas sunafil
presentación manipulación manual de cargas sunafilpresentación manipulación manual de cargas sunafil
presentación manipulación manual de cargas sunafil
 
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfCONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
 
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...
 
Peligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacionPeligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacion
 
4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptx4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptx
 
CFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric ProjectCFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric Project
 
Electricidad y electronica industrial unidad 1
Electricidad y electronica industrial unidad 1Electricidad y electronica industrial unidad 1
Electricidad y electronica industrial unidad 1
 
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
 
MATPEL COMPLETO DESDE NIVEL I AL III.pdf
MATPEL COMPLETO DESDE NIVEL I AL III.pdfMATPEL COMPLETO DESDE NIVEL I AL III.pdf
MATPEL COMPLETO DESDE NIVEL I AL III.pdf
 
Tarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieriaTarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieria
 
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdfS454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
 
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTOESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
 
Proyecto de Base de Datos de César Guzmán
Proyecto de Base de Datos de César GuzmánProyecto de Base de Datos de César Guzmán
Proyecto de Base de Datos de César Guzmán
 
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
 
POBLACIONES CICLICAS Y NO CICLICAS ......
POBLACIONES CICLICAS Y NO CICLICAS ......POBLACIONES CICLICAS Y NO CICLICAS ......
POBLACIONES CICLICAS Y NO CICLICAS ......
 
Trabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruanaTrabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruana
 
trabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidastrabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidas
 
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
 

Un viaje por Cosmos DB

  • 1. Cosmos DB Leonardo Micheloni @leomicheloni Un paseo por
  • 3. Escenario • Hoy en día es cada vez más común tener aplicaciones distribuidas • Demanda todo el día • Esto presenta desafíos diferentes a los acostumbrados • Latencia • Disponibilidad • Escalamiento • Único punto de falla @leomicheloni
  • 4. Escenario • Existen muchas diferentes herramientas • Diferentes formas de almacenar los datos • Diferentes APIs • Servicios @leomicheloni
  • 5. Sistemas relacionales RDBMS (clásicos) • Son excelentes para modelos relacionales • Siguen el teorema ACID • Atomicidad • Consistencia • Aislamiento • Durabilidad • Son muy confiables y muy rápidos • Pueden presentar problemas en sistemas distribuidos @leomicheloni
  • 6. Sistemas relacionales RDBMS (clásicos) • En ocasiones se utilizan para algo que no fueron pensados • Key value • JSON • ORM @leomicheloni
  • 7. Bases de datos NoSQL • Siguen el teorema CAP • Consistency • Availability • Partition tolerance • Solo puedo tener dos en simultáneo @leomicheloni
  • 8. NoSQL • Modelos • Key Value • Columnas • Documentos • Grafos • Cada elemento es independiente • Tiene su propio esquema • Lo ideal es usar el más adecuado para nuestro requisito @leomicheloni
  • 9. Algunos ejemplos de NoSQL • MongoDB • Basada en documentos • Ebay, GAP, Chicago Police, Under Armour, HSBC, McAfee, Adobe • Lenguaje de consulta "basado en JSON" • Cassandra (Facebook inbox search) • Bigtable • GoDaddy, Reddit, Weather Channel, Apple (75K nodos, 10PB) • Cassandra Query Language (CQL) • GraphDB • Grafos • Walmart, Cisco, Microsoft, Medium. • Gremlin API @leomicheloni
  • 11. • NoSql Database as a service • Multi region replication • Manual and automatic failover • Multi model • Multi API • Intuitive consistency level • Designed for high availability @leomicheloni
  • 12. Global distribution • Replicación automática alrededor del mundo con un click • Una sola colección particionada y distribuida en varias regiones • Geovallado basado en directivas • Selección del mejor nodo automática @leomicheloni
  • 14. Multimodelo • Cosmos DB permite guardar los datos en diferentes formatos • Documentos • Grafos • Clave / valor • Indexa automáticamente todos los campos • TTL a nivel documento @leomicheloni
  • 15. Multimodelo • Soporte para UDF • Trigger • Stored procedures • Binding con Azure functions @leomicheloni
  • 16. Multi API • Sql Database (Document DB) • MongoDB • Table API • Graph API (Gremlin) • Cassandra @leomicheloni
  • 17. Soporte multiplataforma • SDKs • .NET • .NET Core • Java • Phyton • Node JS • API REST @leomicheloni
  • 18. 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
  • 19. Escalado elástico de rendimiento y almacenamiento • RU (request unit) • SLA 99% @leomicheloni
  • 20. Tipos de consistencia • Strong • Bounded-staleness • Session • Consistent Prefix • Eventual @leomicheloni
  • 21. 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
  • 22. Casos de uso @leomicheloni • Retail apps • Mobile • Web apps • Games • Social apps • Azure!
  • 23. ¿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 datos • Si estamos usando el RDBMS para cosas “extrañas” • En general todos aquellos escenarios para los que los RDBMS no son buenos • Pueden convivir! @leomicheloni
  • 25. Probar Cosmos DB gratis • https://azure.microsoft.com/en-us/try/cosmosdb/ @leomicheloni
  • 26. Referencias • https://azure.microsoft.com/en-us/services/cosmos-db/ • https://docs.microsoft.com/es-es/azure/cosmos-db/distribute- data-globally • 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