Arquitetura do Cosmos DB

Desenvolver para o Azure Storage

Shahzad Mian

Content developer, DataCamp

Azure Cosmos DB

Azure_Cosmos_DB.svg.png

Desenvolver para o Azure Storage

O problema

Problema no Cosmos DB

Desenvolver para o Azure Storage

O que é o Cosmos DB?

 

CosmosDB

  • Banco NoSQL multimodelo e distribuído globalmente.
  • NoSQL = armazenamento flexível, tipo pastas.
  • Suporta várias APIs e tipos de dados.
  • Como um cardápio flexível: escolha sua API:
    • SQL (Core) para documentos JSON.
    • MongoDB para devs Mongo.
    • Cassandra para dados wide-column.
    • Gremlin para grafos.
    • Table API para chave-valor.
Desenvolver para o Azure Storage

Cosmos DB para desenvolvedores

  • Feito pensando em devs.
  • Indexação automática — sem gerenciar esquema.
  • Consultas rápidas.
  • Cinco níveis de consistência: de Strong a Eventual.
  • Trade-off entre performance e consistência.
    • Strong: todo mundo vê a mesma coisa na hora.
    • Eventual: todos convergem depois.

 

Consistência strong e eventual

Desenvolver para o Azure Storage

Escala e Throughput (RU/s)

Modo provisionado

  • Unidades de Requisição por segundo (RU/s) = moeda de performance do Cosmos DB.
  • Cada leitura, escrita ou consulta consome RU/s.
  • Escolha provisionamento fixo ou autoscale.
Desenvolver para o Azure Storage

Escala e Throughput (RU/s)

Escalonamento

  • Unidades de Requisição por segundo (RU/s) = moeda de performance do Cosmos DB.
  • Cada leitura, escrita ou consulta consome RU/s.
  • Escolha provisionamento fixo ou autoscale.
  • Autoscale ajusta automaticamente conforme a demanda.
Desenvolver para o Azure Storage

Escala elástica e particionamento

  • O Cosmos DB escala por particionamento.
  • Cada contêiner usa uma chave de partição.
  • A chave agrupa dados relacionados.
  • Exemplo: a Cipher Coffee usa /customerId para pedidos.
  • Todos os pedidos de um cliente ficam na mesma partição com /customerId como chave.
  • Consultas seguem rápidas mesmo com crescimento de dados.
  • Partição quente: carga desigual que reduz a performance.

Escala elástica e particionamento

Desenvolver para o Azure Storage

Distribuição global

  • Replica dados para qualquer região do Azure facilmente.
  • Só marcar caixas; sem configuração complexa.
  • Se uma região falhar, o tráfego é redirecionado automaticamente.
  • Sem downtime e sem perda de dados.
  • Como um café reserva pronto para atender na hora.

Distribuição global

Desenvolver para o Azure Storage

Monitoramento e otimização de custos

  • Acompanhe a performance no Azure Portal.
  • Veja métricas como RU/s, latência e custo de requisição.
  • Como um painel do carro: velocidade e consumo.
  • Engenheiros da Cipher Coffee analisaram essas métricas.
  • Reduziram custos ajustando o throughput dinamicamente.

Monitoramento

Desenvolver para o Azure Storage

Vamos praticar!

Desenvolver para o Azure Storage

Preparing Video For Download...