EasyTaxi e MongoDB - Showcase
Upcoming SlideShare
Loading in...5
×
 

EasyTaxi e MongoDB - Showcase

on

  • 859 views

Case EasyTaxi vs MongoDB

Case EasyTaxi vs MongoDB

Statistics

Views

Total Views
859
Views on SlideShare
859
Embed Views
0

Actions

Likes
5
Downloads
16
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    EasyTaxi e MongoDB - Showcase EasyTaxi e MongoDB - Showcase Presentation Transcript

    • DESAFIOS,  APRENDIZADO  e   RESULTADOS   Vinicius  Gracia  (EasyTaxi  CTO)   Yuri  Teixeira  (Rocket  Lead  Developer)  
    • 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)  
    • 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
    • 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
    • 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
    • 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?
    • 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)  
    • 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!
    • 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)  
    • 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.
    • 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)  
    • 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
    • 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)  
    • 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
    • GANHOS DE PERFORMANCE 15
    • GANHOS DE PERFORMANCE 16
    • GANHOS DE PERFORMANCE 17
    • 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)  
    • OBRIGADO  PELA  PRESENÇA!     E  que  tal  voltar  de  EasyTaxi?!     #justsaying   Vinicius  Gracia:  viniciusgracia@easytaxi.com.br   Yuri  Teixeira:  @yuriteixeira