Your SlideShare is downloading. ×
0
EasyTaxi e MongoDB - Showcase
EasyTaxi e MongoDB - Showcase
EasyTaxi e MongoDB - Showcase
EasyTaxi e MongoDB - Showcase
EasyTaxi e MongoDB - Showcase
EasyTaxi e MongoDB - Showcase
EasyTaxi e MongoDB - Showcase
EasyTaxi e MongoDB - Showcase
EasyTaxi e MongoDB - Showcase
EasyTaxi e MongoDB - Showcase
EasyTaxi e MongoDB - Showcase
EasyTaxi e MongoDB - Showcase
EasyTaxi e MongoDB - Showcase
EasyTaxi e MongoDB - Showcase
EasyTaxi e MongoDB - Showcase
EasyTaxi e MongoDB - Showcase
EasyTaxi e MongoDB - Showcase
EasyTaxi e MongoDB - Showcase
EasyTaxi e MongoDB - Showcase
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

EasyTaxi e MongoDB - Showcase

1,690

Published on

Case EasyTaxi vs MongoDB

Case EasyTaxi vs MongoDB

0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,690
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
59
Comments
0
Likes
8
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. DESAFIOS,  APRENDIZADO  e   RESULTADOS   Vinicius  Gracia  (EasyTaxi  CTO)   Yuri  Teixeira  (Rocket  Lead  Developer)  
  • 2. AGENDA 2 MONGODB:  O  QUE  MOTIVOU  NOSSA  ESCOLHA?   PROBLEMAS  ENFRENTADOS   APLICANDO  O  QUE  APRENDEMOS   GANHOS  DE  PERFORMANCE   CONCLUSÃO   BREVE  HISTÓRIA  DA  EASYTAXI  (TIMELINE)  
  • 3. A brilhante idéia BREVE HISTÓRIA DA EASYTAXI - TIMELINE •  Idealizada em Junho de 2011 •  Idéia Inicial: Tracking de transporte coletivo (um dos sócios sempre perdia o horário do ônibus…) •  Até que uma idéia um “pouco” melhor apareceu: “E se fosse com TAXIS?” 3
  • 4. INÍCIO DAS OPERAÇÕES BREVE HISTÓRIA DA EASYTAXI - TIMELINE •  Presente apenas no Rio de Janeiro •  “Quick and Dirty”: Soluções rápidas, como toda startup gosta (e suas óbvias consequências) •  Base de usuários pequena naquele momento, logo, “por enquanto, não precisamos nos preocupar” 4
  • 5. INÍCIO DAS OPERAÇÕES - TECNOLOGIA BREVE HISTÓRIA DA EASYTAXI - TIMELINE •  API SOAP (overhead desnecessário de dados onde cada byte importa) •  Chamadas SOAP mapeadas para um único script PHP •  Sem testes e nem build automatizados •  Banco de dados relacional, schema inflexível. 5
  • 6. INTEGRANDO-SE À ROCKET: NOVOS E MAIORES DESAFIOS BREVE HISTÓRIA DA EASYTAXI - TIMELINE •  Expansão Nacional e em seguida, Global •  Tecnologia mais eficiente para suportar o presente e o futuro do projeto: •  API RESTful: Menos é mais •  Todos os endpoints testados •  Build automatizado com tasks de QA •  Deadline: 2 semanas Mas e MongoDB nessa história?
  • 7. AGENDA 7 MONGODB:  O  QUE  MOTIVOU  NOSSA  ESCOLHA?   PROBLEMAS  ENFRENTADOS   APLICANDO  O  QUE  APRENDEMOS   GANHOS  DE  PERFORMANCE   CONCLUSÃO   BREVE  HISTÓRIA  DA  EASYTAXI  (TIMELINE)  
  • 8. MONGODB: O QUE MOTIVOU NOSSA ESCOLHA? 8 CLIENTES   TAXISTAS   §  Write Concerns + Bom desempenho nas leituras: API veloz §  GIS facilitado: 2d Index + GeoNear { geoNear : ”taxi_drivers”, near : [passenger_x, passenger_y], maxDistance: maxKmToRadius, spherical: true } §  $db->drivers->find: Object Mapper Feelings (mas sem o overhead de um OM) §  Múltiplas cidades ao redor do mundo, múltiplos schemas, uma só coleção (Schema-free WINS) §  FIM DAS MIGRATIONS!
  • 9. AGENDA 9 MONGODB:  O  QUE  MOTIVOU  NOSSA  ESCOLHA?   PROBLEMAS  ENFRENTADOS   APLICANDO  O  QUE  APRENDEMOS   GANHOS  DE  PERFORMANCE   CONCLUSÃO   BREVE  HISTÓRIA  DA  EASYTAXI  (TIMELINE)  
  • 10. Heranças do Universo Relacional: PROBLEMAS ENFRENTADOS 10 •  #FAIL 1: Arquitetando a persistência como antigamente: mais consultas do que o necessário •  #FAIL 2: Falta de atenção nos índices (que agora são definidos no código, antes de serem usados). •  #FAIL 3: Alta-disponibilidade no mongo: alguns detalhes deixados para trás EFEITOS: Lentidão no Backoffice, na extração de relatórios, afetando o tempo de resposta da API.
  • 11. AGENDA 11 MONGODB:  O  QUE  MOTIVOU  NOSSA  ESCOLHA?   PROBLEMAS  ENFRENTADOS   APLICANDO  O  QUE  APRENDEMOS   GANHOS  DE  PERFORMANCE   CONCLUSÃO   BREVE  HISTÓRIA  DA  EASYTAXI  (TIMELINE)  
  • 12. APLICANDO O QUE APRENDEMOS 12 §  REMODELAGEM TOTAL DAS COLLECTIONS §  SERVER HIDDEN PARA RELATÓRIOS NO REPLICA SET §  ANÁLISE DE TODAS AS QUERIES E INDEXES
  • 13. AGENDA 13 MONGODB:  O  QUE  MOTIVOU  NOSSA  ESCOLHA?   PROBLEMAS  ENFRENTADOS   APLICANDO  O  QUE  APRENDEMOS   GANHOS  DE  PERFORMANCE   CONCLUSÃO   BREVE  HISTÓRIA  DA  EASYTAXI  (TIMELINE)  
  • 14. GANHOS DE PERFORMANCE 14 §  12 MIL ACESSOS POR MINUTO - CHEGANDO A 30 MIL §  TEMPO DE RESPOSTA MENOR QUE 30 MILISEGUNDOS §  QUERIES COM MENOS 10 MILESEGUNDOS EM MÉDIA
  • 15. GANHOS DE PERFORMANCE 15
  • 16. GANHOS DE PERFORMANCE 16
  • 17. GANHOS DE PERFORMANCE 17
  • 18. AGENDA 18 MONGODB:  O  QUE  MOTIVOU  NOSSA  ESCOLHA?   PROBLEMAS  ENFRENTADOS   APLICANDO  O  QUE  APRENDEMOS   GANHOS  DE  PERFORMANCE   CONCLUSÃO   BREVE  HISTÓRIA  DA  EASYTAXI  (TIMELINE)  
  • 19. OBRIGADO  PELA  PRESENÇA!     E  que  tal  voltar  de  EasyTaxi?!     #justsaying   Vinicius  Gracia:  viniciusgracia@easytaxi.com.br   Yuri  Teixeira:  @yuriteixeira  

×