Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Concorrência,
baixa latência e
alta disponibilidade
HELLO! Guilherme Roveri
Arquiteto de Software – Grupo Netshoes
@gbroveri
2
Eder Magalhães
Arquiteto de Software – Grupo Ne...
Agenda ▫  Realidade de um e-commerce
▫  Alguns desafios
▫  Caso de uso: Inventário
▫  Arquitetura LMAX
▫  Solução Proposta...
Realidade ▫  Negócio dinâmico
▫  Marketing digital agressivo
▫  Oferecer ótima experiência de compra
▫  Evolução contínua ...
Concorrência
Disputa frenética ao acesso a recursos
partilhados…
5
Latência
Intervalo de tempo entre a ação e o
efeito…
6
Disponibilidade
Percentual de tempo em que o sistema
está no ar…
7
Caso de
uso
COMO um provedor e-commerce
PRECISO de um mecanismo robusto
para gerenciar o inventário
PARA evitar perdas
E g...
LMAX ▫  Plataforma para comercialização de
produtos do mercado financeiro para
varejo
▫  Eliminar concorrência
▫  Regras d...
LMAX Composto por 3 segmentos:
10
Business
Logic
Processor
▫  Fluxo de negócio
▫  Single thread
▫  Sem acesso a banco de dados
▫  Sem controle transacional
...
Arquitetura
12
Fila + NoSQLProposta de arquitetura c/ Fila e NoSQL p/
solução de controle de inventário
13
Inventário ▫  Operações crédito e débito;
▫  Particionamento de Produtos;
▫  Single thread p/ Consumidor;
14
Inventário
15
Business
Debit / Credit
NoSQL Persistence
REST Endpoint
Message Broker
Inventário
16
Business
Debit / Credit
NoSQL Persistence
Request
REST Endpoint
Message Broker
Inventário
17
Business
Debit / Credit
NoSQL Persistence
Request
Partition
REST Endpoint
Message Broker
Request Queues
Inventário
18
Business
Debit / Credit
NoSQL Persistence
Consumer
Partition
Request
Partition
REST Endpoint
Message Broker
...
Inventário
19
Business
Debit / Credit
NoSQL Persistence
Consumer
Partition
Request
Partition
REST Endpoint
Message Broker
...
Inventário
20
Business
Debit / Credit
NoSQL Persistence
Consumer
Partition
Partition
Request
Partition
REST Endpoint
Messa...
Inventário
21
Business
Debit / Credit
Reply Queues
Consumer
Partition
Partition
NoSQL Persistence
Request
Partition
REST E...
Inventário
22
Request
Business
Debit / Credit
Response
Reply Queues
Partition
Consumer
Partition
Request Queues
Message Br...
Inventário
Tecnologias
23
Request
Business
Debit / Credit
Response
Reply Queues
Partition
Consumer
Partition
Partition
ü  ...
Conclusão ▫  O drive é o negócio
▫  Experimentar tecnologias
▫  Clean code: testes + testes + testes
24
Referências ▫  https://www.infoq.com/presentations/LMAX
▫  https://github.com/LMAX-Exchange
▫  http://martinfowler.com/art...
26
Obrigado Questões?
▫  gbroveri@gmail.com
▫  edermag@gmail.com
Upcoming SlideShare
Loading in …5
×

DevCommerce Conference 2016: Concorrência em aplicações que exigem baixa latência e alta disponibilidade

132 views

Published on

Guilherme Roveri e Eder Magalhães, Arquitetos de Software Netshoes, palestraram sobre "Concorrência em aplicações que exigem baixa latência e alta disponibilidade", no DevCommerce Conference 2016.

O DevCommerce Conference 2016 aconteceu nos dias 06 e 07 de junho de 2016, no Hotel Tivoli em São Paulo-SP http://devcommerce2016.imasters.com.br/

Published in: Education
  • Be the first to comment

  • Be the first to like this

DevCommerce Conference 2016: Concorrência em aplicações que exigem baixa latência e alta disponibilidade

  1. 1. Concorrência, baixa latência e alta disponibilidade
  2. 2. HELLO! Guilherme Roveri Arquiteto de Software – Grupo Netshoes @gbroveri 2 Eder Magalhães Arquiteto de Software – Grupo Netshoes @edermag
  3. 3. Agenda ▫  Realidade de um e-commerce ▫  Alguns desafios ▫  Caso de uso: Inventário ▫  Arquitetura LMAX ▫  Solução Proposta ▫  Conclusões ▫  Referências 3
  4. 4. Realidade ▫  Negócio dinâmico ▫  Marketing digital agressivo ▫  Oferecer ótima experiência de compra ▫  Evolução contínua nos bastidores ▫  Sazonalidade: Blackfriday 4
  5. 5. Concorrência Disputa frenética ao acesso a recursos partilhados… 5
  6. 6. Latência Intervalo de tempo entre a ação e o efeito… 6
  7. 7. Disponibilidade Percentual de tempo em que o sistema está no ar… 7
  8. 8. Caso de uso COMO um provedor e-commerce PRECISO de um mecanismo robusto para gerenciar o inventário PARA evitar perdas E garantir satisfação dos clientes 8
  9. 9. LMAX ▫  Plataforma para comercialização de produtos do mercado financeiro para varejo ▫  Eliminar concorrência ▫  Regras de negócio usando memória e event sourcing ▫  Alto throughput c/ baixa latência ▫  Ex: 6 milhões de transações por seg 9
  10. 10. LMAX Composto por 3 segmentos: 10
  11. 11. Business Logic Processor ▫  Fluxo de negócio ▫  Single thread ▫  Sem acesso a banco de dados ▫  Sem controle transacional ▫  Manipulação em memória 11
  12. 12. Arquitetura 12
  13. 13. Fila + NoSQLProposta de arquitetura c/ Fila e NoSQL p/ solução de controle de inventário 13
  14. 14. Inventário ▫  Operações crédito e débito; ▫  Particionamento de Produtos; ▫  Single thread p/ Consumidor; 14
  15. 15. Inventário 15 Business Debit / Credit NoSQL Persistence REST Endpoint Message Broker
  16. 16. Inventário 16 Business Debit / Credit NoSQL Persistence Request REST Endpoint Message Broker
  17. 17. Inventário 17 Business Debit / Credit NoSQL Persistence Request Partition REST Endpoint Message Broker Request Queues
  18. 18. Inventário 18 Business Debit / Credit NoSQL Persistence Consumer Partition Request Partition REST Endpoint Message Broker Request Queues
  19. 19. Inventário 19 Business Debit / Credit NoSQL Persistence Consumer Partition Request Partition REST Endpoint Message Broker Request Queues
  20. 20. Inventário 20 Business Debit / Credit NoSQL Persistence Consumer Partition Partition Request Partition REST Endpoint Message Broker Request Queues
  21. 21. Inventário 21 Business Debit / Credit Reply Queues Consumer Partition Partition NoSQL Persistence Request Partition REST Endpoint Message Broker Request Queues
  22. 22. Inventário 22 Request Business Debit / Credit Response Reply Queues Partition Consumer Partition Request Queues Message Broker Partition NoSQL Persistence REST Endpoint
  23. 23. Inventário Tecnologias 23 Request Business Debit / Credit Response Reply Queues Partition Consumer Partition Partition ü  Spring Java; ü  Spring Cloud; ü  RabbitMQ ü  Cassandra REST Endpoint Message Broker NoSQL Persistence Request Queues
  24. 24. Conclusão ▫  O drive é o negócio ▫  Experimentar tecnologias ▫  Clean code: testes + testes + testes 24
  25. 25. Referências ▫  https://www.infoq.com/presentations/LMAX ▫  https://github.com/LMAX-Exchange ▫  http://martinfowler.com/articles/lmax.html ▫  http://www.datastax.com/dev/blog/scalable- inventory ▫  http://henryr.github.io/cap-faq/ ▫  http://www.slideshare.net/edermag 25
  26. 26. 26 Obrigado Questões? ▫  gbroveri@gmail.com ▫  edermag@gmail.com

×