SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Construindo um avião
em pleno vôo na nuvem


Matheus Rossato
 rossato@chaordic.com.br
Alguns números

                               1.100 rps
                               na última Black Friday
1 Bi requisições
            por mês na API
                               6TB Cassandra
                                         de dados no


115 milhões
de produtos recomendados/dia   23 milhões
                               de usuários
Próximos minutos


Etapas na construção de uma plataforma
    elástica, escalável e disponível
         na nuvem da Amazon
A Chaordic




   Desde 2009 desenvolve solução de
    personalização para ecommerce
Alguns Clientes
Chaordic OnSite
Chaordic Mail
Visão geral
A Chaordic
   Floripa
A Chaordic
   Floripa
A Chaordic
   Floripa
A Chaordic
    Sampa
A Chaordic
    Sampa
Desafios

           Operar nos TOP ecommerces do país;
           Alta Disponibilidade;
           Desempenho;
           Escalabilidade;
           Demanda imprevisível, efeito TV;
           Big Data + RecSys;

           Prover 100% de conteúdo dinâmico;
Mãos a obra
1ª Fase   Iníciamos com a Saraiva;

          Não eramos multi-tentant;

          Escalabilidade Ctrl + C, Ctrl + V;

          MyISAM com Insert Delayed;

          Melhoria no desempenho, EhCache;

          Monit garantia disponibilidade;

          Pingdom alertava, FailOver era manual;
1ª Fase
1ª Fase
          Pascoa 2011, ops! Falha no AWS;

          New Relic como APM;

          Tunning da JVM ConcMarkSweepGC;

          +IOPS no MySQL, RAID0 com 4EBS;

          Replicação Master/Slave para Report;
1ª Fase
2ª Fase
          Novos clientes na plataforma;

          Criação de CDN própria + DynECT;

          Balanceamento de carga com ELB;

          Nginx + Tomcat + HAProxy;

          Cache distribuída com Memcached;

          MySQL todo em memória, evita EBS;

          Scale Up e Out para Natal e Black Friday;
2ª Fase
3ª Fase
   3ª Fase
             Tomcat por Jetty = 3,5x mais rps;

             Auto Scale e Spot Instances = Tio Patinhas;

             Migração MySQL para Cassandra;

             Puppet + Git = Gerência de configuração;

             Nagios + Ganglia = Monitoração detalhada;

             RecSys via MapReduce;
3ª Fase
Ganhamos escalabilidade
Permitindo crescer rapidamente

              Requisições mensal 2011
     1200
     1000
      800
      600
      400
      200
       0




                      Requisições
Melhorando nosso desempenho

                   Desempenho Jul/11 vs Jul/12
     1200

     1000

      800

      600

      400

      200

        0
                      Jul-11                   Jul-12
            Milhões de Requisições   Tempo de Resposta (ms)
e também tivemos sorte



             MySQL em disco efêmero sem backup;
             Bug no script de backup do Cassandra;
             Ilesos no último crash da AWS;
             Java Leap Second não nos afetou;
Lições aprendidas

Itere rapidamente e em pequenos passos;
Observe o que funciona;
Debugue em produção;
Mude muito e frequentemente;
Aprenda a falhar e quebrar as coisas;
Integração contínua ajuda a evitar problemas;
Cloud pode viabilizar seu negócio;
Obrigado!
Agora,




            Matheus Rossato
                 @chaordicsystems

Weitere ähnliche Inhalte

Ähnlich wie QConSP 2012 - Construindo um avião em pleno vôo na nuvem

Lean Startup e Computação em Nuvem
Lean Startup e Computação em NuvemLean Startup e Computação em Nuvem
Lean Startup e Computação em NuvemJose Papo, MSc
 
Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker
Rails Summit 2008 - Web Operations - George Guimarães - PagestackerRails Summit 2008 - Web Operations - George Guimarães - Pagestacker
Rails Summit 2008 - Web Operations - George Guimarães - PagestackerGeorge Guimarães
 
Qcon 2013 - Walmart Frontend Solution using Node.js
Qcon 2013 - Walmart Frontend Solution using Node.jsQcon 2013 - Walmart Frontend Solution using Node.js
Qcon 2013 - Walmart Frontend Solution using Node.jsJorge Walendowsky
 
Detonando mitos sobre a Computação em Nuvem e a Amazon Web Services
Detonando mitos sobre a Computação em Nuvem e a Amazon Web ServicesDetonando mitos sobre a Computação em Nuvem e a Amazon Web Services
Detonando mitos sobre a Computação em Nuvem e a Amazon Web ServicesJose Papo, MSc
 
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearchXen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearchBernardo Donadio
 
Utilizando software livre para alta disponibilidade de sistemas web Java
Utilizando software livre para alta disponibilidade de sistemas web JavaUtilizando software livre para alta disponibilidade de sistemas web Java
Utilizando software livre para alta disponibilidade de sistemas web JavaAdriel Viana
 
QConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
QConSP16 - Apache Cassandra Evoluindo Sistemas DistribuídosQConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
QConSP16 - Apache Cassandra Evoluindo Sistemas DistribuídosEiti Kimura
 
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
 
Microservices reativos e a experiência do iFood
Microservices reativos e a experiência do iFoodMicroservices reativos e a experiência do iFood
Microservices reativos e a experiência do iFoodDevCamp Campinas
 
Pangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformPangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformAndré Paulovich
 
DevOps com Exemplos Práticos - QConRio 2014
DevOps com Exemplos Práticos - QConRio 2014DevOps com Exemplos Práticos - QConRio 2014
DevOps com Exemplos Práticos - QConRio 2014Leo Lorieri
 
IntroduçãO Ao Desenvolvimento Web 2
IntroduçãO Ao Desenvolvimento Web   2IntroduçãO Ao Desenvolvimento Web   2
IntroduçãO Ao Desenvolvimento Web 2Maurício Linhares
 
Filosofia Ruby e Rails (UFOP e Inforuso 2010)
Filosofia Ruby e Rails (UFOP e Inforuso 2010)Filosofia Ruby e Rails (UFOP e Inforuso 2010)
Filosofia Ruby e Rails (UFOP e Inforuso 2010)Daniel Lopes
 
Cloud Computing - Java no Google App Engine
Cloud Computing - Java no Google App EngineCloud Computing - Java no Google App Engine
Cloud Computing - Java no Google App EngineFrederico Maia Arantes
 
Big Data, Performance, Posix, RTB no mercado de publicidade online
Big Data, Performance, Posix, RTB no mercado de publicidade onlineBig Data, Performance, Posix, RTB no mercado de publicidade online
Big Data, Performance, Posix, RTB no mercado de publicidade onlineTiago Peczenyj
 

Ähnlich wie QConSP 2012 - Construindo um avião em pleno vôo na nuvem (20)

Lean Startup e Computação em Nuvem
Lean Startup e Computação em NuvemLean Startup e Computação em Nuvem
Lean Startup e Computação em Nuvem
 
Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker
Rails Summit 2008 - Web Operations - George Guimarães - PagestackerRails Summit 2008 - Web Operations - George Guimarães - Pagestacker
Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker
 
Qcon 2013 - Walmart Frontend Solution using Node.js
Qcon 2013 - Walmart Frontend Solution using Node.jsQcon 2013 - Walmart Frontend Solution using Node.js
Qcon 2013 - Walmart Frontend Solution using Node.js
 
Detonando mitos sobre a Computação em Nuvem e a Amazon Web Services
Detonando mitos sobre a Computação em Nuvem e a Amazon Web ServicesDetonando mitos sobre a Computação em Nuvem e a Amazon Web Services
Detonando mitos sobre a Computação em Nuvem e a Amazon Web Services
 
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearchXen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearch
 
Utilizando software livre para alta disponibilidade de sistemas web Java
Utilizando software livre para alta disponibilidade de sistemas web JavaUtilizando software livre para alta disponibilidade de sistemas web Java
Utilizando software livre para alta disponibilidade de sistemas web Java
 
QConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
QConSP16 - Apache Cassandra Evoluindo Sistemas DistribuídosQConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
QConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
 
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
 
Aplicações web realtime
Aplicações web realtimeAplicações web realtime
Aplicações web realtime
 
Escovando bit com alwayson sql server 2014
Escovando bit com alwayson sql server 2014Escovando bit com alwayson sql server 2014
Escovando bit com alwayson sql server 2014
 
Detonando mitos Computacao Nuvem
Detonando mitos Computacao NuvemDetonando mitos Computacao Nuvem
Detonando mitos Computacao Nuvem
 
Microservices reativos e a experiência do iFood
Microservices reativos e a experiência do iFoodMicroservices reativos e a experiência do iFood
Microservices reativos e a experiência do iFood
 
Devcamp 2017 Microservices Reativos
Devcamp 2017   Microservices ReativosDevcamp 2017   Microservices Reativos
Devcamp 2017 Microservices Reativos
 
Pangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformPangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud Platform
 
DevOps com Exemplos Práticos - QConRio 2014
DevOps com Exemplos Práticos - QConRio 2014DevOps com Exemplos Práticos - QConRio 2014
DevOps com Exemplos Práticos - QConRio 2014
 
Conhecendo o Ruby on Rails
Conhecendo o Ruby on RailsConhecendo o Ruby on Rails
Conhecendo o Ruby on Rails
 
IntroduçãO Ao Desenvolvimento Web 2
IntroduçãO Ao Desenvolvimento Web   2IntroduçãO Ao Desenvolvimento Web   2
IntroduçãO Ao Desenvolvimento Web 2
 
Filosofia Ruby e Rails (UFOP e Inforuso 2010)
Filosofia Ruby e Rails (UFOP e Inforuso 2010)Filosofia Ruby e Rails (UFOP e Inforuso 2010)
Filosofia Ruby e Rails (UFOP e Inforuso 2010)
 
Cloud Computing - Java no Google App Engine
Cloud Computing - Java no Google App EngineCloud Computing - Java no Google App Engine
Cloud Computing - Java no Google App Engine
 
Big Data, Performance, Posix, RTB no mercado de publicidade online
Big Data, Performance, Posix, RTB no mercado de publicidade onlineBig Data, Performance, Posix, RTB no mercado de publicidade online
Big Data, Performance, Posix, RTB no mercado de publicidade online
 

QConSP 2012 - Construindo um avião em pleno vôo na nuvem

  • 1. Construindo um avião em pleno vôo na nuvem Matheus Rossato rossato@chaordic.com.br
  • 2. Alguns números 1.100 rps na última Black Friday 1 Bi requisições por mês na API 6TB Cassandra de dados no 115 milhões de produtos recomendados/dia 23 milhões de usuários
  • 3. Próximos minutos Etapas na construção de uma plataforma elástica, escalável e disponível na nuvem da Amazon
  • 4. A Chaordic Desde 2009 desenvolve solução de personalização para ecommerce
  • 9. A Chaordic Floripa
  • 10. A Chaordic Floripa
  • 11. A Chaordic Floripa
  • 12. A Chaordic Sampa
  • 13. A Chaordic Sampa
  • 14. Desafios Operar nos TOP ecommerces do país; Alta Disponibilidade; Desempenho; Escalabilidade; Demanda imprevisível, efeito TV; Big Data + RecSys; Prover 100% de conteúdo dinâmico;
  • 16. 1ª Fase Iníciamos com a Saraiva; Não eramos multi-tentant; Escalabilidade Ctrl + C, Ctrl + V; MyISAM com Insert Delayed; Melhoria no desempenho, EhCache; Monit garantia disponibilidade; Pingdom alertava, FailOver era manual;
  • 18. 1ª Fase Pascoa 2011, ops! Falha no AWS; New Relic como APM; Tunning da JVM ConcMarkSweepGC; +IOPS no MySQL, RAID0 com 4EBS; Replicação Master/Slave para Report;
  • 20. 2ª Fase Novos clientes na plataforma; Criação de CDN própria + DynECT; Balanceamento de carga com ELB; Nginx + Tomcat + HAProxy; Cache distribuída com Memcached; MySQL todo em memória, evita EBS; Scale Up e Out para Natal e Black Friday;
  • 22. 3ª Fase 3ª Fase Tomcat por Jetty = 3,5x mais rps; Auto Scale e Spot Instances = Tio Patinhas; Migração MySQL para Cassandra; Puppet + Git = Gerência de configuração; Nagios + Ganglia = Monitoração detalhada; RecSys via MapReduce;
  • 25. Permitindo crescer rapidamente Requisições mensal 2011 1200 1000 800 600 400 200 0 Requisições
  • 26. Melhorando nosso desempenho Desempenho Jul/11 vs Jul/12 1200 1000 800 600 400 200 0 Jul-11 Jul-12 Milhões de Requisições Tempo de Resposta (ms)
  • 27. e também tivemos sorte MySQL em disco efêmero sem backup; Bug no script de backup do Cassandra; Ilesos no último crash da AWS; Java Leap Second não nos afetou;
  • 28. Lições aprendidas Itere rapidamente e em pequenos passos; Observe o que funciona; Debugue em produção; Mude muito e frequentemente; Aprenda a falhar e quebrar as coisas; Integração contínua ajuda a evitar problemas; Cloud pode viabilizar seu negócio;
  • 29. Obrigado! Agora, Matheus Rossato @chaordicsystems