Domesticando Dragões com
   soluções escaláveis



                             @abstractj
                              @qmx



Monday, September 13, 2010
O cliente pediu um sistema
Monday, September 13, 2010
Envio de SMS pela intranet
                               +
                     aplicacao web pra ver
                    detalhes da mensagem


Monday, September 13, 2010
A cláusula

                    “O sistema deve fazer tudo”
                                Caso de uso, 2004



Monday, September 13, 2010
Teu chefe
Monday, September 13, 2010
Fácil!
Monday, September 13, 2010
Negócio fechado
Monday, September 13, 2010
SEU EMO!!!!




Monday, September 13, 2010
Sistema em piloto
         10.000 tx/h = quase 3 tx/s


Monday, September 13, 2010
Bonito e Performático
Monday, September 13, 2010
Cliente satisfeito
Monday, September 13, 2010
A volta dos que não foram
Monday, September 13, 2010
A cláusula

                    “O sistema deve fazer tudo”
                                Caso de uso, 2004



Monday, September 13, 2010
“Integraçãozinha”



Monday, September 13, 2010
O legado
Monday, September 13, 2010
Moleza!
Monday, September 13, 2010
Legado = Mainframe



Monday, September 13, 2010
Ouch!
Monday, September 13, 2010
Mainframe
Monday, September 13, 2010
Não gosta dos seus
                                   dados


Monday, September 13, 2010
Não quer trabalhar pra
                          você


Monday, September 13, 2010
Não espera, você
                                 espera


Monday, September 13, 2010
te odeia
Monday, September 13, 2010
Mainframe não escala



Monday, September 13, 2010
Mainframe não escala?



Monday, September 13, 2010
Motivos técnicos
Monday, September 13, 2010
FUUUUUU
Monday, September 13, 2010
#medo?
Monday, September 13, 2010
Ainda bem
Monday, September 13, 2010
Sobrou!



Monday, September 13, 2010
Flat files?
Monday, September 13, 2010
batchizando?



Monday, September 13, 2010
Filas de Mensageria!



Monday, September 13, 2010
Problema resolvido!
                                   3 tx/s


Monday, September 13, 2010
A cláusula

                    “O sistema deve fazer tudo”
                                Caso de uso, 2004



Monday, September 13, 2010
Projeto piloto
                             3 tx/s = Bom


Monday, September 13, 2010
Realidade:
                             1.5M tx/dia = 17tx/s


Monday, September 13, 2010
Estamos devendo:
                                ± 1.25M tx


Monday, September 13, 2010
"Compra de R$ 5000,00
                 realizada com sucesso em
                     10/09/2010 03:56"
                      12/09/2010 15:30

Monday, September 13, 2010
Murphy: se você corria risco de
                    fraude, ela aconteceu com certeza
Monday, September 13, 2010
Realidade?



Monday, September 13, 2010
Pico de 200tx/s na hora
                      do almoço


Monday, September 13, 2010
E agora?



Monday, September 13, 2010
Onde foi que eu errei?



Monday, September 13, 2010
Você é culpado
Monday, September 13, 2010
Na média,
                             o ser humano tem uma bola
Monday, September 13, 2010
Você perguntou pro
                    seu cliente quais eram
                     os horários de pico?!


Monday, September 13, 2010
Sua obrigação era medir!!!
Monday, September 13, 2010
Sua aplicação escala?!



Monday, September 13, 2010
Você vai até onde na
                             vertical?!


Monday, September 13, 2010
E na horizontal?!



Monday, September 13, 2010
Você não está
                       esquecendo de nada?


Monday, September 13, 2010
Visualizar os detalhes
                          da mensagem


Monday, September 13, 2010
Ruby é lento?



Monday, September 13, 2010
A culpa é de quem?



Monday, September 13, 2010
Banco de dados?



Monday, September 13, 2010
Massa de dados grande



Monday, September 13, 2010
1.500.000 x 30 dias



Monday, September 13, 2010
Em um mês
                 45 milhões de registros


Monday, September 13, 2010
preciso guardar
                                tudo isso?


Monday, September 13, 2010
relacional pra quê?



Monday, September 13, 2010
Cache?



Monday, September 13, 2010
#fail
Monday, September 13, 2010
Cache persistente?



Monday, September 13, 2010
Redis
                             key-value store
                               on steroids


Monday, September 13, 2010
O melhor dos dois
                                 mundos


Monday, September 13, 2010
Dados bem guardados
                          com SQL
                       e com NoSQL


Monday, September 13, 2010
Pesquisa direta no
                             “banco de dados”
                                  20tx/s


Monday, September 13, 2010
Pesquisa passando pelo
                      Redis: 200 tx/s


Monday, September 13, 2010
Seus problemas acabaram!
Monday, September 13, 2010
Obrigado!



Monday, September 13, 2010

Qconsp domesticando dragoes com soluções escaláveis