MongoDB São Paulo - Utilizando MongoDB com .NET

31
Utilizando MongoDB com .NET em E-Commerce André Nobre Apresentação realizada no dia 13/07/2012, no MongoDB São Paulo.

Transcript of MongoDB São Paulo - Utilizando MongoDB com .NET

Page 1: MongoDB São Paulo - Utilizando MongoDB com .NET

Utilizando MongoDB com .NET

em E-Commerce

André Nobre

Apresentação realizada no dia 13/07/2012, no MongoDB São Paulo.

Page 2: MongoDB São Paulo - Utilizando MongoDB com .NET

André Nobre

Arquiteto de Soluções

Trabalha na NBR Tecnologia, em Londrina –

PR

@avnobre

Page 3: MongoDB São Paulo - Utilizando MongoDB com .NET

+

Page 4: MongoDB São Paulo - Utilizando MongoDB com .NET

?Nova plataforma de e-commerce

Interface diferenciada

Perspectiva de grande acesso

3 meses

Inúmeras interações e

diversas buscas

Não há hierarquia entre produtos

Nosso Desafio

Page 5: MongoDB São Paulo - Utilizando MongoDB com .NET

Algumas observações sobre e-commerce

Page 6: MongoDB São Paulo - Utilizando MongoDB com .NET

Uma das principais preocupações...

O Catálogo!

10 mil produtos ativos

5k usuários simultâneos

Mudanças constantes de preço,

catálogo e estoque

Page 7: MongoDB São Paulo - Utilizando MongoDB com .NET

10 100 mil produtos ativos

5k 25k usuários simultâneos

Mudanças constantes de preço,

catálogo e estoque

Page 8: MongoDB São Paulo - Utilizando MongoDB com .NET

100 500 mil produtos ativos

25k 35k usuários simultâneos

Mudanças constantes de preço,

catálogo e estoque

Page 9: MongoDB São Paulo - Utilizando MongoDB com .NET

Loja

Loja Loja Loja Loja

Page 10: MongoDB São Paulo - Utilizando MongoDB com .NET

Loja

Loja Loja Loja Loja

Catalog

(~500k)

Page 11: MongoDB São Paulo - Utilizando MongoDB com .NET

Flexibilidade

Complexidade

Page 12: MongoDB São Paulo - Utilizando MongoDB com .NET

A análise do problema

A análise do problema.

Nós precisamos de:

Algo que permita diversas estruturas de

produtos (schema free);

Performance em escrita, mas muito mais em

leitura;

Facilidade de adoção pelos DEVs;

Drivers com suporte e evolução;

Possibilidade de crescimento

horizontal, failover, etc;

Estrutura da empresa proprietária;

Page 13: MongoDB São Paulo - Utilizando MongoDB com .NET
Page 14: MongoDB São Paulo - Utilizando MongoDB com .NET
Page 15: MongoDB São Paulo - Utilizando MongoDB com .NET

Qual foi a abordagem?

Page 16: MongoDB São Paulo - Utilizando MongoDB com .NET

Foco

Navegação (Catálogo)

Carrinhos (Ativo e

Abandonados)

Log

Ferramentas Administrativas

Rápida Alteração do Catálogo

Atualizações de Estoque

Compartilhamento dos

Produtos

Page 17: MongoDB São Paulo - Utilizando MongoDB com .NET

Como nós estruturamos?

Integração de

Catálogo

Message

Queue

Processament

o da

Mensagem

Inserção no

MongoDBAtivo no SiteMonitoramento

Melhorias

Page 18: MongoDB São Paulo - Utilizando MongoDB com .NET

Como nós estruturamos?

Integração de

Catálogo

Message

Queue

Processament

o da

Mensagem

Inserção no

MongoDBAtivo no SiteMonitoramento

Melhorias

Page 19: MongoDB São Paulo - Utilizando MongoDB com .NET

Como nós estruturamos?

Inserção no MongoDBUma collection para cada recurso

Produtos Carrinhos

Log ...

Page 20: MongoDB São Paulo - Utilizando MongoDB com .NET

Como nós estruturamos?

Integração de

Catálogo

Message

Queue

Processament

o da

Mensagem

Inserção no

MongoDBAtivo no SiteMonitoramento

Melhorias

SnapshotsSnapshotsSnapshotsSnapshotsSnapshotsSnapshotsSnapshotsSnapshotsSnapshots

Page 21: MongoDB São Paulo - Utilizando MongoDB com .NET

Monitorando o MongoDB

Ferramentas e Comandos

MMSMongoDB Monitoring Service

A free, cloud-based

monitoring and alerting

solution for all MongoDB

deployments.

mongotop

mongostat

serverStatus

Page 22: MongoDB São Paulo - Utilizando MongoDB com .NET

E a infra-estrutura?

Uso de CPU extremamente baixo;

Considerar Memória e Disk I/O;

1 2 3 (Replica) 4 (Sharding)

Page 23: MongoDB São Paulo - Utilizando MongoDB com .NET

E a infra-estrutura?

Uso de CPU extremamente baixo;

Considerar Memória e Disk I/O;

1 2 3 (Replica) 4 (Sharding)

Page 24: MongoDB São Paulo - Utilizando MongoDB com .NET
Page 25: MongoDB São Paulo - Utilizando MongoDB com .NET

Replica-Set no AWS

Região 1Ex.: us-east-1a

Secundário Primário Secundário

Região 2Ex.: sa-east-1

Região 3Ex.: ap-southeast-1

Page 26: MongoDB São Paulo - Utilizando MongoDB com .NET
Page 27: MongoDB São Paulo - Utilizando MongoDB com .NET

E Azure não?

Page 28: MongoDB São Paulo - Utilizando MongoDB com .NET
Page 29: MongoDB São Paulo - Utilizando MongoDB com .NET
Page 30: MongoDB São Paulo - Utilizando MongoDB com .NET
Page 31: MongoDB São Paulo - Utilizando MongoDB com .NET

Obrigado!

André Nobre

@avnobre