SlideShare uma empresa Scribd logo
1 de 34
Azure Cosmos DB
Renato Groffe (Microsoft MVP, MTAC)
https://medium.com/@renato.groffe/
Renato Groffe
• Microsoft Most Valuable Professional (MVP)
• Multi-Plataform Technical Audience Contributor (MTAC)
• Mais de 15 anos de experiência na área de Tecnologia
• Autor Técnico e Palestrante
Contatos – Renato Groffe
/renatogroffe /in/renatogroffe
/canaldotnet
/renatogroffe
/canaldotnet
/renatogroff
Agenda
• O paradigm NoSQL: uma visão geral
• Azure Cosmos DB
• Exemplos práticos
Uma visão geral
Modelo relacional: um breve histórico
• Proposto na década de 1970
• Estrutura mais rígida → tabelas, campos, linhas,
relacionamentos e uma série de restrições
• Linguagem SQL
• Muito presente no ambiente corporativo
Limitações do modelo relacional
• Disponibilidade
• Escalabilidade
• Dificuldades em gerenciar agrupamentos de
dados mais complexos
• Impedance mismatch → dificuldades
conciliando conceitos relacionais e de OO
Uma alternativa: NoSQL (“Not Only SQL”)
• Alta Disponibilidade
• Escalabilidade facilitada
• Flexibilidade
• Diversos tipos de soluções NoSQL →
Chave-valor, orientado a documentos
Bancos do tipo chave-valor
Chave 1 Valor 1
Chave 2 Valor 2
Chave n Valor n
. . .
Bancos do tipo chave-valor
Redis
Bancos orientados a documentos
{
"id": 55,
"Pais": "Brasil",
"Regiao": "América do Sul",
"Populacao": 201032714,
"PrincipaisCidades": [
{
"NomeCidade": "São Paulo",
"Populacao": 1182876,
},
{
"NomeCidade": "Rio de Janeiro",
"Populacao": 6323037,
}
]
}
Bancos orientados a documentos
DocumentDB
Azure Cosmos DB
Azure Cosmos DB
• Lançamento oficial durante o Build 2017 (Maio)
• Solução NoSQL oferecida como serviço na nuvem
• Serviço de banco de dados de distribuição global
• “Evolução” do Document DB
Azure Cosmos DB – Resumo
Azure Cosmos DB – Características
Distribuição Global
• Possibilidade de replicação em várias regiões
• Sem preocupações com questões de infra estrutura
Baixa Latência
• Abaixo de 10 ms para leituras
• Abaixo de 15 ms para escritas
• Otimizações na escrita
• Indexação automática
Azure Cosmos DB – Características
Azure Cosmos DB – Características
Multi-model
• Suporte a DocumentDB (SQL), MongoDB,
Azure Tables, Gremlin (grafos) e
Cassandra
• Database Account
– Bancos de dados
• Usuários
– Permissões
• Container (Coleções, Tabelas, Grafos)
– Itens (Documentos, Itens, Nodes)
– Procedures, triggers, functions
Azure Cosmos DB – Características
Múltiplos modelos de consistência
Azure Cosmos DB – Características
Escalabilidade
• Horizontal (Throughput e Storage)
• Elasticidade
SLAs
• Garantias de 99,99% para alta disponibilidade,
throughput, baixa latência e consistência
DocumentDB
DocumentDB: uma visão geral
• Mais uma solução NoSQL do Microsoft Azure
• Orientado a documentos
• Flexível por ser “schemaless”
• Uso do padrão JSON para a representação dos dados
• Possui emulador local e imagens no Docker Store
DocumentDB: uma visão geral
• Suporte a transações baseado no modelo ACID
• Suporte a dados geoespaciais
• Consultas via LINQ ou expressões SQL
Estrutura geral do DocumentDB
DocumentDB – Suporte
E quando não existir um SDK?
A solução neste caso seria utilizar o
Azure DocumentDB REST API
Como migrar para o DocumentDB?
Utilizando o DocumentDB Data Migration Tool
• Executável disponível para download
• Suporte a inúmeras fontes (arquivos JSON,
MongoDB, SQL Server, arquivos CSV etc.)
Estrutura de um banco de dados do MongoDB
Algumas plataformas que suportam o MongoDB
MongoDB e ferramentas de gerenciamento
Robo 3T
Demos
Dúvidas?
Obrigado!

Mais conteúdo relacionado

Mais procurados

DocumentDB - Azure Fridays São Paulo
DocumentDB - Azure Fridays São PauloDocumentDB - Azure Fridays São Paulo
DocumentDB - Azure Fridays São PauloRenato Groff
 
NoSQL no Azure - Azure Tech Nights - 2017
NoSQL no Azure - Azure Tech Nights - 2017NoSQL no Azure - Azure Tech Nights - 2017
NoSQL no Azure - Azure Tech Nights - 2017Renato Groff
 
Desenvolvendo uma Aplicação Javascript Fulll
Desenvolvendo uma Aplicação Javascript FulllDesenvolvendo uma Aplicação Javascript Fulll
Desenvolvendo uma Aplicação Javascript FulllDjanilson Alves
 
Palestra de PHP
Palestra de PHPPalestra de PHP
Palestra de PHPledsifes
 
Arquitetura de banco de dados
Arquitetura de banco de dadosArquitetura de banco de dados
Arquitetura de banco de dadosFelipe Correia
 
Aula 4 e 5 css e java script
Aula 4 e 5   css e java scriptAula 4 e 5   css e java script
Aula 4 e 5 css e java scriptandreluizlc
 
Codificando .Net e SQL PASS Chapter - Novidades de BI para SQL Server 2012
Codificando .Net e SQL PASS Chapter - Novidades de BI para SQL Server 2012Codificando .Net e SQL PASS Chapter - Novidades de BI para SQL Server 2012
Codificando .Net e SQL PASS Chapter - Novidades de BI para SQL Server 2012Diego Nogare
 
Como trabalhar com ajax, json e cache
Como trabalhar com ajax, json e cacheComo trabalhar com ajax, json e cache
Como trabalhar com ajax, json e cacheCleber Dantas
 
Webservices em PHP e a liberdade da Web
Webservices em PHP e a liberdade da WebWebservices em PHP e a liberdade da Web
Webservices em PHP e a liberdade da WebAlexandre Andrade
 
Backup Database - On Premisses no Azure
Backup Database - On Premisses no AzureBackup Database - On Premisses no Azure
Backup Database - On Premisses no AzureSulamita Dantas
 
NoSQL, o que realmente é?
NoSQL, o que realmente é?NoSQL, o que realmente é?
NoSQL, o que realmente é?Thiago Avelino
 
Azure Summit Brasil 2013: Javascript do cliente para a nuvem com Windows 8, N...
Azure Summit Brasil 2013: Javascript do cliente para a nuvem com Windows 8, N...Azure Summit Brasil 2013: Javascript do cliente para a nuvem com Windows 8, N...
Azure Summit Brasil 2013: Javascript do cliente para a nuvem com Windows 8, N...Giovanni Bassi
 
Introdução a NoSQL com MongoDB e FireDAC
Introdução a NoSQL com MongoDB e FireDAC Introdução a NoSQL com MongoDB e FireDAC
Introdução a NoSQL com MongoDB e FireDAC Fernando Rizzato
 
Lições Aprendidas MongoDB
Lições Aprendidas MongoDBLições Aprendidas MongoDB
Lições Aprendidas MongoDBFabiano Modos
 
Introdução no sql mongodb java
Introdução no sql mongodb javaIntrodução no sql mongodb java
Introdução no sql mongodb javaFabiano Modos
 
Monitorando os Recursos e Processos do Servidor, através do Power BI
Monitorando os Recursos e Processos do Servidor, através do Power BIMonitorando os Recursos e Processos do Servidor, através do Power BI
Monitorando os Recursos e Processos do Servidor, através do Power BISulamita Dantas
 
NoSQL na nuvem: utilizando o DocumentDB
NoSQL na nuvem: utilizando o DocumentDBNoSQL na nuvem: utilizando o DocumentDB
NoSQL na nuvem: utilizando o DocumentDBRenato Groff
 

Mais procurados (20)

DocumentDB - Azure Fridays São Paulo
DocumentDB - Azure Fridays São PauloDocumentDB - Azure Fridays São Paulo
DocumentDB - Azure Fridays São Paulo
 
NoSQL no Azure - Azure Tech Nights - 2017
NoSQL no Azure - Azure Tech Nights - 2017NoSQL no Azure - Azure Tech Nights - 2017
NoSQL no Azure - Azure Tech Nights - 2017
 
Desenvolvendo uma Aplicação Javascript Fulll
Desenvolvendo uma Aplicação Javascript FulllDesenvolvendo uma Aplicação Javascript Fulll
Desenvolvendo uma Aplicação Javascript Fulll
 
Palestra de PHP
Palestra de PHPPalestra de PHP
Palestra de PHP
 
Sass - Syntactically Awesome Style Sheets
Sass - Syntactically Awesome Style SheetsSass - Syntactically Awesome Style Sheets
Sass - Syntactically Awesome Style Sheets
 
Arquitetura de banco de dados
Arquitetura de banco de dadosArquitetura de banco de dados
Arquitetura de banco de dados
 
Aula 4 e 5 css e java script
Aula 4 e 5   css e java scriptAula 4 e 5   css e java script
Aula 4 e 5 css e java script
 
Codificando .Net e SQL PASS Chapter - Novidades de BI para SQL Server 2012
Codificando .Net e SQL PASS Chapter - Novidades de BI para SQL Server 2012Codificando .Net e SQL PASS Chapter - Novidades de BI para SQL Server 2012
Codificando .Net e SQL PASS Chapter - Novidades de BI para SQL Server 2012
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
 
Como trabalhar com ajax, json e cache
Como trabalhar com ajax, json e cacheComo trabalhar com ajax, json e cache
Como trabalhar com ajax, json e cache
 
Webservices em PHP e a liberdade da Web
Webservices em PHP e a liberdade da WebWebservices em PHP e a liberdade da Web
Webservices em PHP e a liberdade da Web
 
Backup Database - On Premisses no Azure
Backup Database - On Premisses no AzureBackup Database - On Premisses no Azure
Backup Database - On Premisses no Azure
 
NoSQL, o que realmente é?
NoSQL, o que realmente é?NoSQL, o que realmente é?
NoSQL, o que realmente é?
 
Azure Summit Brasil 2013: Javascript do cliente para a nuvem com Windows 8, N...
Azure Summit Brasil 2013: Javascript do cliente para a nuvem com Windows 8, N...Azure Summit Brasil 2013: Javascript do cliente para a nuvem com Windows 8, N...
Azure Summit Brasil 2013: Javascript do cliente para a nuvem com Windows 8, N...
 
Introdução a NoSQL com MongoDB e FireDAC
Introdução a NoSQL com MongoDB e FireDAC Introdução a NoSQL com MongoDB e FireDAC
Introdução a NoSQL com MongoDB e FireDAC
 
Lições Aprendidas MongoDB
Lições Aprendidas MongoDBLições Aprendidas MongoDB
Lições Aprendidas MongoDB
 
Introdução no sql mongodb java
Introdução no sql mongodb javaIntrodução no sql mongodb java
Introdução no sql mongodb java
 
Monitorando os Recursos e Processos do Servidor, através do Power BI
Monitorando os Recursos e Processos do Servidor, através do Power BIMonitorando os Recursos e Processos do Servidor, através do Power BI
Monitorando os Recursos e Processos do Servidor, através do Power BI
 
NoSQL na nuvem: utilizando o DocumentDB
NoSQL na nuvem: utilizando o DocumentDBNoSQL na nuvem: utilizando o DocumentDB
NoSQL na nuvem: utilizando o DocumentDB
 
SQL e Transações
SQL e TransaçõesSQL e Transações
SQL e Transações
 

Semelhante a Azure Cosmos DB para Desenvolvedores - From Zero to Hero - Março-2018

NoSQL para Desenvolvedores .NET - SQLSaturday #804 - São Paulo
NoSQL para Desenvolvedores .NET - SQLSaturday #804 - São PauloNoSQL para Desenvolvedores .NET - SQLSaturday #804 - São Paulo
NoSQL para Desenvolvedores .NET - SQLSaturday #804 - São PauloRenato Groff
 
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018Renato Groff
 
Introdução ao Nosql
Introdução ao NosqlIntrodução ao Nosql
Introdução ao NosqlJosé Silva
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPAricelio Souza
 
PASS SQLSATURDAY 663 Rio de Janeiro, Brazil
PASS SQLSATURDAY 663 Rio de Janeiro, BrazilPASS SQLSATURDAY 663 Rio de Janeiro, Brazil
PASS SQLSATURDAY 663 Rio de Janeiro, BrazilAlexandre Araujo
 
No sql Orientado a documento
No sql Orientado a documentoNo sql Orientado a documento
No sql Orientado a documentoAlex Martins
 
MongoDB também no Azure? SIM! - DevOps Summit 2017
MongoDB também no Azure? SIM! - DevOps Summit 2017MongoDB também no Azure? SIM! - DevOps Summit 2017
MongoDB também no Azure? SIM! - DevOps Summit 2017Renato Groff
 
I nd t_bigdata(1)
I nd t_bigdata(1)I nd t_bigdata(1)
I nd t_bigdata(1)wchevreuil
 
TypeScript + Node.js + cosmos db
TypeScript + Node.js + cosmos dbTypeScript + Node.js + cosmos db
TypeScript + Node.js + cosmos dbMVP Microsoft
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadospichiliani
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadospichiliani
 
MongoDB no Microsoft Azure - DBA Brasil 2.0
MongoDB no Microsoft Azure - DBA Brasil 2.0MongoDB no Microsoft Azure - DBA Brasil 2.0
MongoDB no Microsoft Azure - DBA Brasil 2.0Renato Groff
 
L'esprit de l'escalier
L'esprit de l'escalierL'esprit de l'escalier
L'esprit de l'escalierGleicon Moraes
 
Apresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas ColaborativosApresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas ColaborativosMozart Dornelles Claret
 

Semelhante a Azure Cosmos DB para Desenvolvedores - From Zero to Hero - Março-2018 (20)

NoSQL para Desenvolvedores .NET - SQLSaturday #804 - São Paulo
NoSQL para Desenvolvedores .NET - SQLSaturday #804 - São PauloNoSQL para Desenvolvedores .NET - SQLSaturday #804 - São Paulo
NoSQL para Desenvolvedores .NET - SQLSaturday #804 - São Paulo
 
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
 
Introdução ao Nosql
Introdução ao NosqlIntrodução ao Nosql
Introdução ao Nosql
 
NoSQL Multi-Model - Conheça o CosmosDB
NoSQL Multi-Model - Conheça o CosmosDB NoSQL Multi-Model - Conheça o CosmosDB
NoSQL Multi-Model - Conheça o CosmosDB
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAP
 
PASS SQLSATURDAY 663 Rio de Janeiro, Brazil
PASS SQLSATURDAY 663 Rio de Janeiro, BrazilPASS SQLSATURDAY 663 Rio de Janeiro, Brazil
PASS SQLSATURDAY 663 Rio de Janeiro, Brazil
 
No sql Orientado a documento
No sql Orientado a documentoNo sql Orientado a documento
No sql Orientado a documento
 
NoSQL CosmosDB e IOT na era Serveless
NoSQL CosmosDB e IOT na era ServelessNoSQL CosmosDB e IOT na era Serveless
NoSQL CosmosDB e IOT na era Serveless
 
MongoDB também no Azure? SIM! - DevOps Summit 2017
MongoDB também no Azure? SIM! - DevOps Summit 2017MongoDB também no Azure? SIM! - DevOps Summit 2017
MongoDB também no Azure? SIM! - DevOps Summit 2017
 
I nd t_bigdata(1)
I nd t_bigdata(1)I nd t_bigdata(1)
I nd t_bigdata(1)
 
TypeScript + Node.js + cosmos db
TypeScript + Node.js + cosmos dbTypeScript + Node.js + cosmos db
TypeScript + Node.js + cosmos db
 
DDD e Restful SOA
DDD e Restful SOADDD e Restful SOA
DDD e Restful SOA
 
NOSQL - Uma real alternativa
NOSQL - Uma real alternativaNOSQL - Uma real alternativa
NOSQL - Uma real alternativa
 
NoSql e NewSql
NoSql e NewSqlNoSql e NewSql
NoSql e NewSql
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
 
MongoDB no Microsoft Azure - DBA Brasil 2.0
MongoDB no Microsoft Azure - DBA Brasil 2.0MongoDB no Microsoft Azure - DBA Brasil 2.0
MongoDB no Microsoft Azure - DBA Brasil 2.0
 
Mongo db
Mongo dbMongo db
Mongo db
 
L'esprit de l'escalier
L'esprit de l'escalierL'esprit de l'escalier
L'esprit de l'escalier
 
Apresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas ColaborativosApresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas Colaborativos
 

Mais de Renato Groffe

Kubernetes e Escalabilidade: processando milhares/milhões de acessos simultân...
Kubernetes e Escalabilidade: processando milhares/milhões de acessos simultân...Kubernetes e Escalabilidade: processando milhares/milhões de acessos simultân...
Kubernetes e Escalabilidade: processando milhares/milhões de acessos simultân...Renato Groffe
 
.NET 7: principais novidades no Desenvolvimento Back-End | Visual Studio Summ...
.NET 7: principais novidades no Desenvolvimento Back-End | Visual Studio Summ....NET 7: principais novidades no Desenvolvimento Back-End | Visual Studio Summ...
.NET 7: principais novidades no Desenvolvimento Back-End | Visual Studio Summ...Renato Groffe
 
Orquestrando processos de negócio com .NET + Azure Durable Functions | Cloud4...
Orquestrando processos de negócio com .NET + Azure Durable Functions | Cloud4...Orquestrando processos de negócio com .NET + Azure Durable Functions | Cloud4...
Orquestrando processos de negócio com .NET + Azure Durable Functions | Cloud4...Renato Groffe
 
Dapr + Microservices: descomplicando a implementação de Aplicações Distribuíd...
Dapr + Microservices: descomplicando a implementação de Aplicações Distribuíd...Dapr + Microservices: descomplicando a implementação de Aplicações Distribuíd...
Dapr + Microservices: descomplicando a implementação de Aplicações Distribuíd...Renato Groffe
 
Kubernetes e Escalabilidade: processando milhares/milhões de acessos simultân...
Kubernetes e Escalabilidade: processando milhares/milhões de acessos simultân...Kubernetes e Escalabilidade: processando milhares/milhões de acessos simultân...
Kubernetes e Escalabilidade: processando milhares/milhões de acessos simultân...Renato Groffe
 
kind + Kubernetes: ambientes locais, testes de integração | DevOps Experience...
kind + Kubernetes: ambientes locais, testes de integração | DevOps Experience...kind + Kubernetes: ambientes locais, testes de integração | DevOps Experience...
kind + Kubernetes: ambientes locais, testes de integração | DevOps Experience...Renato Groffe
 
.NET 7: novidades no Desenvolvimento Back-End | Agrotools - Novembro-2022
.NET 7: novidades no Desenvolvimento Back-End | Agrotools - Novembro-2022.NET 7: novidades no Desenvolvimento Back-End | Agrotools - Novembro-2022
.NET 7: novidades no Desenvolvimento Back-End | Agrotools - Novembro-2022Renato Groffe
 
OpenTelemetry + Jaeger + .NET: Monitoramento e Tracing Distribuído em Aplicaç...
OpenTelemetry + Jaeger + .NET: Monitoramento e Tracing Distribuído em Aplicaç...OpenTelemetry + Jaeger + .NET: Monitoramento e Tracing Distribuído em Aplicaç...
OpenTelemetry + Jaeger + .NET: Monitoramento e Tracing Distribuído em Aplicaç...Renato Groffe
 
.NET 7: novidades no Desenvolvimento Back-End | Protech Solutions - Agosto-2022
.NET 7: novidades no Desenvolvimento Back-End | Protech Solutions - Agosto-2022.NET 7: novidades no Desenvolvimento Back-End | Protech Solutions - Agosto-2022
.NET 7: novidades no Desenvolvimento Back-End | Protech Solutions - Agosto-2022Renato Groffe
 
Pipeline as Code + Azure DevOps: automações com o Azure Pipelines | DevOps Ex...
Pipeline as Code + Azure DevOps: automações com o Azure Pipelines | DevOps Ex...Pipeline as Code + Azure DevOps: automações com o Azure Pipelines | DevOps Ex...
Pipeline as Code + Azure DevOps: automações com o Azure Pipelines | DevOps Ex...Renato Groffe
 
Kubernetes e Escalabilidade | Paraná Banco - Julho-2022
Kubernetes e Escalabilidade | Paraná Banco - Julho-2022Kubernetes e Escalabilidade | Paraná Banco - Julho-2022
Kubernetes e Escalabilidade | Paraná Banco - Julho-2022Renato Groffe
 
Kubernetes + KEDA: escalando aplicações de forma descomplicada | Cloud Confer...
Kubernetes + KEDA: escalando aplicações de forma descomplicada | Cloud Confer...Kubernetes + KEDA: escalando aplicações de forma descomplicada | Cloud Confer...
Kubernetes + KEDA: escalando aplicações de forma descomplicada | Cloud Confer...Renato Groffe
 
.NET: Passado, Presente, Futuro, Mercado de Trabalho… | Generation Brazil
.NET: Passado, Presente, Futuro, Mercado de Trabalho… | Generation Brazil.NET: Passado, Presente, Futuro, Mercado de Trabalho… | Generation Brazil
.NET: Passado, Presente, Futuro, Mercado de Trabalho… | Generation BrazilRenato Groffe
 
Azure Container Apps: visão geral e primeiros passos | Azure Weekend 2022 - P...
Azure Container Apps: visão geral e primeiros passos | Azure Weekend 2022 - P...Azure Container Apps: visão geral e primeiros passos | Azure Weekend 2022 - P...
Azure Container Apps: visão geral e primeiros passos | Azure Weekend 2022 - P...Renato Groffe
 
Tracing Distribuído em Aplicações com OpenTelemetry + Jaeger | Cloud Conferen...
Tracing Distribuído em Aplicações com OpenTelemetry + Jaeger | Cloud Conferen...Tracing Distribuído em Aplicações com OpenTelemetry + Jaeger | Cloud Conferen...
Tracing Distribuído em Aplicações com OpenTelemetry + Jaeger | Cloud Conferen...Renato Groffe
 
Tracing Distribuído em Aplicações com OpenTelemetry + Jaeger | DevOps Experie...
Tracing Distribuído em Aplicações com OpenTelemetry + Jaeger | DevOps Experie...Tracing Distribuído em Aplicações com OpenTelemetry + Jaeger | DevOps Experie...
Tracing Distribuído em Aplicações com OpenTelemetry + Jaeger | DevOps Experie...Renato Groffe
 
Aplicações Resilientes e Chaos Engineering em .NET com Polly + Simmy | Festiv...
Aplicações Resilientes e Chaos Engineering em .NET com Polly + Simmy | Festiv...Aplicações Resilientes e Chaos Engineering em .NET com Polly + Simmy | Festiv...
Aplicações Resilientes e Chaos Engineering em .NET com Polly + Simmy | Festiv...Renato Groffe
 
Kubernetes + KEDA: escalando aplicações de forma descomplicada | DevOps Exper...
Kubernetes + KEDA: escalando aplicações de forma descomplicada | DevOps Exper...Kubernetes + KEDA: escalando aplicações de forma descomplicada | DevOps Exper...
Kubernetes + KEDA: escalando aplicações de forma descomplicada | DevOps Exper...Renato Groffe
 
Nuvem em 2022: primeiros passos, Azure, tecnologias, carreira | SENAI Santo A...
Nuvem em 2022: primeiros passos, Azure, tecnologias, carreira | SENAI Santo A...Nuvem em 2022: primeiros passos, Azure, tecnologias, carreira | SENAI Santo A...
Nuvem em 2022: primeiros passos, Azure, tecnologias, carreira | SENAI Santo A...Renato Groffe
 
.NET + Microsserviços: alternativas open source para descomplicar a vida | TD...
.NET + Microsserviços: alternativas open source para descomplicar a vida | TD....NET + Microsserviços: alternativas open source para descomplicar a vida | TD...
.NET + Microsserviços: alternativas open source para descomplicar a vida | TD...Renato Groffe
 

Mais de Renato Groffe (20)

Kubernetes e Escalabilidade: processando milhares/milhões de acessos simultân...
Kubernetes e Escalabilidade: processando milhares/milhões de acessos simultân...Kubernetes e Escalabilidade: processando milhares/milhões de acessos simultân...
Kubernetes e Escalabilidade: processando milhares/milhões de acessos simultân...
 
.NET 7: principais novidades no Desenvolvimento Back-End | Visual Studio Summ...
.NET 7: principais novidades no Desenvolvimento Back-End | Visual Studio Summ....NET 7: principais novidades no Desenvolvimento Back-End | Visual Studio Summ...
.NET 7: principais novidades no Desenvolvimento Back-End | Visual Studio Summ...
 
Orquestrando processos de negócio com .NET + Azure Durable Functions | Cloud4...
Orquestrando processos de negócio com .NET + Azure Durable Functions | Cloud4...Orquestrando processos de negócio com .NET + Azure Durable Functions | Cloud4...
Orquestrando processos de negócio com .NET + Azure Durable Functions | Cloud4...
 
Dapr + Microservices: descomplicando a implementação de Aplicações Distribuíd...
Dapr + Microservices: descomplicando a implementação de Aplicações Distribuíd...Dapr + Microservices: descomplicando a implementação de Aplicações Distribuíd...
Dapr + Microservices: descomplicando a implementação de Aplicações Distribuíd...
 
Kubernetes e Escalabilidade: processando milhares/milhões de acessos simultân...
Kubernetes e Escalabilidade: processando milhares/milhões de acessos simultân...Kubernetes e Escalabilidade: processando milhares/milhões de acessos simultân...
Kubernetes e Escalabilidade: processando milhares/milhões de acessos simultân...
 
kind + Kubernetes: ambientes locais, testes de integração | DevOps Experience...
kind + Kubernetes: ambientes locais, testes de integração | DevOps Experience...kind + Kubernetes: ambientes locais, testes de integração | DevOps Experience...
kind + Kubernetes: ambientes locais, testes de integração | DevOps Experience...
 
.NET 7: novidades no Desenvolvimento Back-End | Agrotools - Novembro-2022
.NET 7: novidades no Desenvolvimento Back-End | Agrotools - Novembro-2022.NET 7: novidades no Desenvolvimento Back-End | Agrotools - Novembro-2022
.NET 7: novidades no Desenvolvimento Back-End | Agrotools - Novembro-2022
 
OpenTelemetry + Jaeger + .NET: Monitoramento e Tracing Distribuído em Aplicaç...
OpenTelemetry + Jaeger + .NET: Monitoramento e Tracing Distribuído em Aplicaç...OpenTelemetry + Jaeger + .NET: Monitoramento e Tracing Distribuído em Aplicaç...
OpenTelemetry + Jaeger + .NET: Monitoramento e Tracing Distribuído em Aplicaç...
 
.NET 7: novidades no Desenvolvimento Back-End | Protech Solutions - Agosto-2022
.NET 7: novidades no Desenvolvimento Back-End | Protech Solutions - Agosto-2022.NET 7: novidades no Desenvolvimento Back-End | Protech Solutions - Agosto-2022
.NET 7: novidades no Desenvolvimento Back-End | Protech Solutions - Agosto-2022
 
Pipeline as Code + Azure DevOps: automações com o Azure Pipelines | DevOps Ex...
Pipeline as Code + Azure DevOps: automações com o Azure Pipelines | DevOps Ex...Pipeline as Code + Azure DevOps: automações com o Azure Pipelines | DevOps Ex...
Pipeline as Code + Azure DevOps: automações com o Azure Pipelines | DevOps Ex...
 
Kubernetes e Escalabilidade | Paraná Banco - Julho-2022
Kubernetes e Escalabilidade | Paraná Banco - Julho-2022Kubernetes e Escalabilidade | Paraná Banco - Julho-2022
Kubernetes e Escalabilidade | Paraná Banco - Julho-2022
 
Kubernetes + KEDA: escalando aplicações de forma descomplicada | Cloud Confer...
Kubernetes + KEDA: escalando aplicações de forma descomplicada | Cloud Confer...Kubernetes + KEDA: escalando aplicações de forma descomplicada | Cloud Confer...
Kubernetes + KEDA: escalando aplicações de forma descomplicada | Cloud Confer...
 
.NET: Passado, Presente, Futuro, Mercado de Trabalho… | Generation Brazil
.NET: Passado, Presente, Futuro, Mercado de Trabalho… | Generation Brazil.NET: Passado, Presente, Futuro, Mercado de Trabalho… | Generation Brazil
.NET: Passado, Presente, Futuro, Mercado de Trabalho… | Generation Brazil
 
Azure Container Apps: visão geral e primeiros passos | Azure Weekend 2022 - P...
Azure Container Apps: visão geral e primeiros passos | Azure Weekend 2022 - P...Azure Container Apps: visão geral e primeiros passos | Azure Weekend 2022 - P...
Azure Container Apps: visão geral e primeiros passos | Azure Weekend 2022 - P...
 
Tracing Distribuído em Aplicações com OpenTelemetry + Jaeger | Cloud Conferen...
Tracing Distribuído em Aplicações com OpenTelemetry + Jaeger | Cloud Conferen...Tracing Distribuído em Aplicações com OpenTelemetry + Jaeger | Cloud Conferen...
Tracing Distribuído em Aplicações com OpenTelemetry + Jaeger | Cloud Conferen...
 
Tracing Distribuído em Aplicações com OpenTelemetry + Jaeger | DevOps Experie...
Tracing Distribuído em Aplicações com OpenTelemetry + Jaeger | DevOps Experie...Tracing Distribuído em Aplicações com OpenTelemetry + Jaeger | DevOps Experie...
Tracing Distribuído em Aplicações com OpenTelemetry + Jaeger | DevOps Experie...
 
Aplicações Resilientes e Chaos Engineering em .NET com Polly + Simmy | Festiv...
Aplicações Resilientes e Chaos Engineering em .NET com Polly + Simmy | Festiv...Aplicações Resilientes e Chaos Engineering em .NET com Polly + Simmy | Festiv...
Aplicações Resilientes e Chaos Engineering em .NET com Polly + Simmy | Festiv...
 
Kubernetes + KEDA: escalando aplicações de forma descomplicada | DevOps Exper...
Kubernetes + KEDA: escalando aplicações de forma descomplicada | DevOps Exper...Kubernetes + KEDA: escalando aplicações de forma descomplicada | DevOps Exper...
Kubernetes + KEDA: escalando aplicações de forma descomplicada | DevOps Exper...
 
Nuvem em 2022: primeiros passos, Azure, tecnologias, carreira | SENAI Santo A...
Nuvem em 2022: primeiros passos, Azure, tecnologias, carreira | SENAI Santo A...Nuvem em 2022: primeiros passos, Azure, tecnologias, carreira | SENAI Santo A...
Nuvem em 2022: primeiros passos, Azure, tecnologias, carreira | SENAI Santo A...
 
.NET + Microsserviços: alternativas open source para descomplicar a vida | TD...
.NET + Microsserviços: alternativas open source para descomplicar a vida | TD....NET + Microsserviços: alternativas open source para descomplicar a vida | TD...
.NET + Microsserviços: alternativas open source para descomplicar a vida | TD...
 

Azure Cosmos DB para Desenvolvedores - From Zero to Hero - Março-2018

  • 1. Azure Cosmos DB Renato Groffe (Microsoft MVP, MTAC) https://medium.com/@renato.groffe/
  • 2. Renato Groffe • Microsoft Most Valuable Professional (MVP) • Multi-Plataform Technical Audience Contributor (MTAC) • Mais de 15 anos de experiência na área de Tecnologia • Autor Técnico e Palestrante
  • 3. Contatos – Renato Groffe /renatogroffe /in/renatogroffe /canaldotnet /renatogroffe /canaldotnet /renatogroff
  • 4. Agenda • O paradigm NoSQL: uma visão geral • Azure Cosmos DB • Exemplos práticos
  • 6. Modelo relacional: um breve histórico • Proposto na década de 1970 • Estrutura mais rígida → tabelas, campos, linhas, relacionamentos e uma série de restrições • Linguagem SQL • Muito presente no ambiente corporativo
  • 7. Limitações do modelo relacional • Disponibilidade • Escalabilidade • Dificuldades em gerenciar agrupamentos de dados mais complexos • Impedance mismatch → dificuldades conciliando conceitos relacionais e de OO
  • 8. Uma alternativa: NoSQL (“Not Only SQL”) • Alta Disponibilidade • Escalabilidade facilitada • Flexibilidade • Diversos tipos de soluções NoSQL → Chave-valor, orientado a documentos
  • 9. Bancos do tipo chave-valor Chave 1 Valor 1 Chave 2 Valor 2 Chave n Valor n . . .
  • 10. Bancos do tipo chave-valor Redis
  • 11. Bancos orientados a documentos { "id": 55, "Pais": "Brasil", "Regiao": "América do Sul", "Populacao": 201032714, "PrincipaisCidades": [ { "NomeCidade": "São Paulo", "Populacao": 1182876, }, { "NomeCidade": "Rio de Janeiro", "Populacao": 6323037, } ] }
  • 12. Bancos orientados a documentos DocumentDB
  • 14. Azure Cosmos DB • Lançamento oficial durante o Build 2017 (Maio) • Solução NoSQL oferecida como serviço na nuvem • Serviço de banco de dados de distribuição global • “Evolução” do Document DB
  • 15. Azure Cosmos DB – Resumo
  • 16. Azure Cosmos DB – Características Distribuição Global • Possibilidade de replicação em várias regiões • Sem preocupações com questões de infra estrutura Baixa Latência • Abaixo de 10 ms para leituras • Abaixo de 15 ms para escritas • Otimizações na escrita • Indexação automática
  • 17. Azure Cosmos DB – Características
  • 18. Azure Cosmos DB – Características Multi-model • Suporte a DocumentDB (SQL), MongoDB, Azure Tables, Gremlin (grafos) e Cassandra • Database Account – Bancos de dados • Usuários – Permissões • Container (Coleções, Tabelas, Grafos) – Itens (Documentos, Itens, Nodes) – Procedures, triggers, functions
  • 19. Azure Cosmos DB – Características Múltiplos modelos de consistência
  • 20. Azure Cosmos DB – Características Escalabilidade • Horizontal (Throughput e Storage) • Elasticidade SLAs • Garantias de 99,99% para alta disponibilidade, throughput, baixa latência e consistência
  • 22. DocumentDB: uma visão geral • Mais uma solução NoSQL do Microsoft Azure • Orientado a documentos • Flexível por ser “schemaless” • Uso do padrão JSON para a representação dos dados • Possui emulador local e imagens no Docker Store
  • 23. DocumentDB: uma visão geral • Suporte a transações baseado no modelo ACID • Suporte a dados geoespaciais • Consultas via LINQ ou expressões SQL
  • 24. Estrutura geral do DocumentDB
  • 26. E quando não existir um SDK? A solução neste caso seria utilizar o Azure DocumentDB REST API
  • 27. Como migrar para o DocumentDB? Utilizando o DocumentDB Data Migration Tool • Executável disponível para download • Suporte a inúmeras fontes (arquivos JSON, MongoDB, SQL Server, arquivos CSV etc.)
  • 28.
  • 29. Estrutura de um banco de dados do MongoDB
  • 30. Algumas plataformas que suportam o MongoDB
  • 31. MongoDB e ferramentas de gerenciamento Robo 3T
  • 32. Demos