SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Utilizando MongoDB com .NET
          em E-Commerce

                   André Nobre



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

   Arquiteto de Soluções
   Trabalha na NBR Tecnologia, em Londrina –
    PR

   @avnobre
+
Nosso Desafio
    Nova plataforma de e-commerce




                               ?
                                       3 meses



 Interface diferenciada                    Inúmeras interações e
                                           diversas buscas




Perspectiva de grande acesso
                                    Não há hierarquia entre produtos
Algumas observações sobre e-commerce
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
10 100 mil produtos ativos

 5k 25k usuários simultâneos

Mudanças constantes de preço,
     catálogo e estoque
100 500 mil produtos ativos

 25k 35k usuários simultâneos

Mudanças constantes de preço,
     catálogo e estoque
Loja




Loja   Loja          Loja   Loja
Loja




Loja   Loja             Loja   Loja


              Catalog
              (~500k)
Flexibilidade




                Complexidade
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;
Qual foi a abordagem?
Navegação (Catálogo)
       Carrinhos (Ativo e
       Abandonados)
       Log
Foco   Ferramentas Administrativas

       Rápida Alteração do Catálogo
       Atualizações de Estoque
       Compartilhamento dos
       Produtos
Como nós estruturamos?
                                Processament
Integração de    Message
                                    o da
   Catálogo       Queue
                                 Mensagem



                                 Inserção no
Monitoramento   Ativo no Site
                                  MongoDB



  Melhorias
Como nós estruturamos?
                                Processament
Integração de    Message
                                    o da
   Catálogo       Queue
                                 Mensagem



                                 Inserção no
Monitoramento   Ativo no Site
                                  MongoDB



  Melhorias
Como nós estruturamos?

     Inserção no MongoDB
  Uma collection para cada recurso



              Produtos          Carrinhos

                 Log                 ...
Como nós estruturamos?
                                  Processament
Integração de    Message
                                      o da
   Catálogo       Queue
                                   Mensagem



                                      Inserção no
Monitoramento   Ativo no Site
                                       MongoDB
                  Snapshots
                   Snapshots
                    Snapshots
                     Snapshots
                      Snapshots
                       Snapshots
                        Snapshots
  Melhorias              Snapshots
                          Snapshots
Monitorando o MongoDB


           MMS                      Ferramentas e
   MongoDB Monitoring Service        Comandos
A free, cloud-based              mongotop
monitoring and alerting          mongostat
solution for all MongoDB
deployments.                     serverStatus
E a infra-estrutura?
    Uso de CPU extremamente baixo;
    Considerar Memória e Disk I/O;




  1          2      3 (Replica) 4 (Sharding)
E a infra-estrutura?
    Uso de CPU extremamente baixo;
    Considerar Memória e Disk I/O;




  1          2      3 (Replica) 4 (Sharding)
Replica-Set no AWS



   Região 1          Região 2         Região 3
  Ex.: us-east-1a   Ex.: sa-east-1 Ex.: ap-southeast-1




   Secundário         Primário          Secundário
E Azure não?
Obrigado!
André Nobre
 @avnobre

Weitere ähnliche Inhalte

Ähnlich wie MongoDB São Paulo - Utilizando MongoDB com .NET

15º EDTED, Rio de Janeiro - Magento
15º EDTED, Rio de Janeiro - Magento15º EDTED, Rio de Janeiro - Magento
15º EDTED, Rio de Janeiro - MagentoAdriano Aguiar
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsJosé Alexandre Macedo
 
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...iMasters
 
Case Drupal: Todeschini
Case Drupal: TodeschiniCase Drupal: Todeschini
Case Drupal: TodeschiniMMDA
 
NoSQL, MongoDB e MEAN
NoSQL, MongoDB e MEANNoSQL, MongoDB e MEAN
NoSQL, MongoDB e MEANOsmar Petry
 
Arquitetura no Android, realmente importa? - TDC 2011
Arquitetura no Android, realmente importa? - TDC 2011Arquitetura no Android, realmente importa? - TDC 2011
Arquitetura no Android, realmente importa? - TDC 2011Marcos Paulo Souza Damasceno
 
Escalabilidade via Software no ExpressoV3
Escalabilidade via Software no ExpressoV3Escalabilidade via Software no ExpressoV3
Escalabilidade via Software no ExpressoV3Flávio Lisboa
 
Tirando água da rocha: escalabilidade via software no ExpressoV3
Tirando água da rocha: escalabilidade via software no ExpressoV3Tirando água da rocha: escalabilidade via software no ExpressoV3
Tirando água da rocha: escalabilidade via software no ExpressoV3Flávio Lisboa
 
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)Tiago Marchetti Dolphine
 
MongoDB com Java - SouJava
MongoDB com Java - SouJavaMongoDB com Java - SouJava
MongoDB com Java - SouJavaFernando Boaglio
 
TDC 2017 - Borg até o Prometheus: Site Reliability Engineering
TDC 2017 - Borg até o Prometheus: Site Reliability EngineeringTDC 2017 - Borg até o Prometheus: Site Reliability Engineering
TDC 2017 - Borg até o Prometheus: Site Reliability EngineeringFelipe Klerk Signorini
 
Web Training Aula 04: Introduction to Git
Web Training Aula 04: Introduction to GitWeb Training Aula 04: Introduction to Git
Web Training Aula 04: Introduction to GitMozDevz
 
Matando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejistaMatando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejistaJosé Roberto Araújo
 
ExpressoBR para Um Milhão (de Usuários)
ExpressoBR para Um Milhão (de Usuários)ExpressoBR para Um Milhão (de Usuários)
ExpressoBR para Um Milhão (de Usuários)Flávio Lisboa
 
Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01Douglas Roeder
 
Banco de Dados Ágeis e Refatoração
Banco de Dados Ágeis e RefatoraçãoBanco de Dados Ágeis e Refatoração
Banco de Dados Ágeis e Refatoraçãoelliando dias
 

Ähnlich wie MongoDB São Paulo - Utilizando MongoDB com .NET (20)

15º EDTED, Rio de Janeiro - Magento
15º EDTED, Rio de Janeiro - Magento15º EDTED, Rio de Janeiro - Magento
15º EDTED, Rio de Janeiro - Magento
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
 
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
 
Escalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLIDEscalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLID
 
Case Drupal: Todeschini
Case Drupal: TodeschiniCase Drupal: Todeschini
Case Drupal: Todeschini
 
NoSQL, MongoDB e MEAN
NoSQL, MongoDB e MEANNoSQL, MongoDB e MEAN
NoSQL, MongoDB e MEAN
 
Arquitetura no Android, realmente importa? - TDC 2011
Arquitetura no Android, realmente importa? - TDC 2011Arquitetura no Android, realmente importa? - TDC 2011
Arquitetura no Android, realmente importa? - TDC 2011
 
Escalabilidade via Software no ExpressoV3
Escalabilidade via Software no ExpressoV3Escalabilidade via Software no ExpressoV3
Escalabilidade via Software no ExpressoV3
 
Tirando água da rocha: escalabilidade via software no ExpressoV3
Tirando água da rocha: escalabilidade via software no ExpressoV3Tirando água da rocha: escalabilidade via software no ExpressoV3
Tirando água da rocha: escalabilidade via software no ExpressoV3
 
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
 
MongoDB com Java - SouJava
MongoDB com Java - SouJavaMongoDB com Java - SouJava
MongoDB com Java - SouJava
 
TDC 2017 - Borg até o Prometheus: Site Reliability Engineering
TDC 2017 - Borg até o Prometheus: Site Reliability EngineeringTDC 2017 - Borg até o Prometheus: Site Reliability Engineering
TDC 2017 - Borg até o Prometheus: Site Reliability Engineering
 
Git hub and Laravel
Git hub and Laravel Git hub and Laravel
Git hub and Laravel
 
Web Training Aula 04: Introduction to Git
Web Training Aula 04: Introduction to GitWeb Training Aula 04: Introduction to Git
Web Training Aula 04: Introduction to Git
 
Webinar Portal Colaborativo
Webinar Portal ColaborativoWebinar Portal Colaborativo
Webinar Portal Colaborativo
 
Matando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejistaMatando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejista
 
ExpressoBR para Um Milhão (de Usuários)
ExpressoBR para Um Milhão (de Usuários)ExpressoBR para Um Milhão (de Usuários)
ExpressoBR para Um Milhão (de Usuários)
 
Conhecendo o Ruby on Rails
Conhecendo o Ruby on RailsConhecendo o Ruby on Rails
Conhecendo o Ruby on Rails
 
Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01
 
Banco de Dados Ágeis e Refatoração
Banco de Dados Ágeis e RefatoraçãoBanco de Dados Ágeis e Refatoração
Banco de Dados Ágeis e Refatoração
 

MongoDB São Paulo - Utilizando MongoDB com .NET

  • 1. Utilizando MongoDB com .NET em E-Commerce André Nobre Apresentação realizada no dia 13/07/2012, no MongoDB São Paulo.
  • 2. André Nobre  Arquiteto de Soluções  Trabalha na NBR Tecnologia, em Londrina – PR  @avnobre
  • 3. +
  • 4. Nosso Desafio Nova plataforma de e-commerce ? 3 meses Interface diferenciada Inúmeras interações e diversas buscas Perspectiva de grande acesso Não há hierarquia entre produtos
  • 6. 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
  • 7. 10 100 mil produtos ativos 5k 25k usuários simultâneos Mudanças constantes de preço, catálogo e estoque
  • 8. 100 500 mil produtos ativos 25k 35k usuários simultâneos Mudanças constantes de preço, catálogo e estoque
  • 9. Loja Loja Loja Loja Loja
  • 10. Loja Loja Loja Loja Loja Catalog (~500k)
  • 11. Flexibilidade Complexidade
  • 12. 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;
  • 13.
  • 14.
  • 15. Qual foi a abordagem?
  • 16. Navegação (Catálogo) Carrinhos (Ativo e Abandonados) Log Foco Ferramentas Administrativas Rápida Alteração do Catálogo Atualizações de Estoque Compartilhamento dos Produtos
  • 17. Como nós estruturamos? Processament Integração de Message o da Catálogo Queue Mensagem Inserção no Monitoramento Ativo no Site MongoDB Melhorias
  • 18. Como nós estruturamos? Processament Integração de Message o da Catálogo Queue Mensagem Inserção no Monitoramento Ativo no Site MongoDB Melhorias
  • 19. Como nós estruturamos? Inserção no MongoDB Uma collection para cada recurso Produtos Carrinhos Log ...
  • 20. Como nós estruturamos? Processament Integração de Message o da Catálogo Queue Mensagem Inserção no Monitoramento Ativo no Site MongoDB Snapshots Snapshots Snapshots Snapshots Snapshots Snapshots Snapshots Melhorias Snapshots Snapshots
  • 21. Monitorando o MongoDB MMS Ferramentas e MongoDB Monitoring Service Comandos A free, cloud-based  mongotop monitoring and alerting  mongostat solution for all MongoDB deployments.  serverStatus
  • 22. E a infra-estrutura?  Uso de CPU extremamente baixo;  Considerar Memória e Disk I/O; 1 2 3 (Replica) 4 (Sharding)
  • 23. E a infra-estrutura?  Uso de CPU extremamente baixo;  Considerar Memória e Disk I/O; 1 2 3 (Replica) 4 (Sharding)
  • 24.
  • 25. Replica-Set no AWS Região 1 Região 2 Região 3 Ex.: us-east-1a Ex.: sa-east-1 Ex.: ap-southeast-1 Secundário Primário Secundário
  • 26.
  • 28.
  • 29.
  • 30.