We Recommend




10/25/2011
Construindo um avião
             na nuvem em pleno vôo




10/25/2011
A Chaordic
                      Desafios
   Próximos minutos   Evoluções
                      Futuro
                      Conclusões




10/25/2011
A Chaordic


             Desde 2009 desenvolve solução de
             personalização;
             Nascida a partir do Netflix prize;




             Sediada em Florianópolis;

             Escritório em São Paulo;




10/25/2011
Quem somos ...




10/25/2011
... no dia a dia




10/25/2011
Nossos produtos - OnSite




10/25/2011
Nossos produtos - Mail




10/25/2011
Visão Geral Lógica




10/25/2011
RecSys + Big Data
              Operar nos TOP ecommerces do país
              Alta Disponibilidade
              Escalabilidade
              Desempenho
Desafios      100% do conteúdo provido é dinâmico




 10/25/2011
~5 TB de BD;

              Mais de 1 Bi requisições/mês na API;

              67 mil RPM - Última Black Friday;
  Alguns
              4 milhões de produtos;
Números
              34 milhões de recomendações
              geradas/dia;

              27 milhões de usuários;

              250GB de JS comprimidos servidos/dia;

 10/25/2011
Requisições x Mês - 2011




10/25/2011
Arquitetura Primórdio




10/25/2011
Pangeia ~2,5 anos atrás;
               Em negociações com a Saraiva;
               Tomcat6, MySQL5.1 = 1 instância c1.xlarge;
               Sem Alta Disponibilidade, Escalabilidade;
               Suporte a SSL, Desempenho aceitável;
               Snapshots diários como forma de backup;
Primórdio




  10/25/2011
Primórdio




                    14GB BD;
         Evolução   15 milhões acessos/mês;
            Núm.    1,8 mil RPM;
                    1 instância;
        Primórdio




10/25/2011
Evolução - Arquitetura 1a Etapa




10/25/2011
Começo da separação ~2 anos atrás;
               No ar com a Saraiva;
               Tomcat6 + EhCache = Aumento Desempenho;
               MySQL dedicado e Data Files no disco efêmero;
               Monitoração com Monit e notificação via Pingdom;
 Evolução      Snapshots + Data Files no S3 diários para bkp;
1a Etapa




  10/25/2011
Tuning JVM;
               Ambiente não suporta grandes paralisações;
               Alterado GC para UseConcMarkSweepGC;
               Menos tempo em GC, menos FullGC;
 Evolução      Maior desempenho da JVM;
1a Etapa




  10/25/2011
Evolução - 1a Etapa




                    23GB BD;
         Evolução   28 milhões acessos/mês;
            Núm.    3 mil RPM;
                    2 instâncias;
        1a Etapa




10/25/2011
Evolução - Arquitetura 2a Etapa




10/25/2011
~1,5 anos atrás;
              NewRelic como solução de APM;
              Novos clientes = Multi-tenant;
              MySQL c/ RAID0 4 EBS, maior volume IO;

 Evolução     MySQL replicado Master/Slave;
2a Etapa
              Revisão do plano de continuidade do
              negócio devido a falha na Amazon Páscoa
              2011;




 10/25/2011
Evolução - 2a Etapa




              35 GB BD;
              36 milhões acessos/mês;
              8 mil RPM;
              4 instâncias;




10/25/2011
Evolução - Arquitetura 3a Etapa




10/25/2011
~1 ano atrás;
              Nova.com = Extra + PontoFrio + Casas Bahia;
              CDN própria + DynDNS = Static HA;
              ELB, Nginx + Tomcat6 + HAProxy;
              MySQL Memória, CacheDist com Memcache;
 Evolução     Scale Up + Scale Out para Black Friday e Natal;
3a Etapa




 10/25/2011
Aumento da contenção de escrita no banco;
              HiLo para geração de IDs;
              Utilização de INSERT DELAYED no MyISAM;
 Evolução
              Tabelas carregadas para memória, evita EBS;
3a Etapa      HAProxy de MySQL para fail over do banco;




 10/25/2011
Evolução - 3a Etapa




              118 GB BD;
              630 milhões acessos/mês;
              24 mil RPM;
              10 instâncias;




10/25/2011
Evolução - Arquitetura 4a Etapa




10/25/2011
~ 6 meses atrás;

               Troca tomcat por jetty = 3x mais requisições;

               Auto Scale e Spot Instances = Tio Patinhas;
 Evolução      Migração MySQL para Cassandra = NoSQL;
4a Etapa
               Puppet + S3 = Instâncias voláteis, menor
               dependência do Health Dashboard AWS;

               Nagios + Ganglia = Monitoração detalhada;

               Pagamento via wire-transfer = Tributos;

  10/25/2011
Evolução - 4a Etapa




              ~4,86 TB BD - 345Gb MySQL;
              1,03 bilhões acessos/mês;
              38 mil RPM;
              ~21 instâncias;




10/25/2011
Finalizar migração MySQL, Cassandra;

             RecSys via Map Reduce;
             Nacionalização da operação = reduz latência,
Futuro       porém aumenta custo em 30%;
             Cassandra, Hadoop e Pig;
             Backup e Fail Over para outro provedor de cloud;




10/25/2011
Sem DataCenter, focamos no core da empresa;
               Cloud: Flexibilidade + Escalabilidade = Economia;

               Porque Amazon AWS?
                ● Possuem API para todos serviços;
Conclusão       ● Frequência em novos produtos e serviços;
                ● Preços diminuem com regularidade;
                ● Fornecedor IaaS: maior liberdade, maior
                  aprendizagem;
                ● Democratização da Cloud real no Brasil;
                ● Qualidade do serviço oferecido;




  10/25/2011
Conclusão - Elasticidade + Felixibilidade




10/25/2011
rossato@chaordicsystems.com




10/25/2011

Apresentação do estudo de caso AWS do cliente Chaordic Systems

  • 1.
  • 2.
    Construindo um avião na nuvem em pleno vôo 10/25/2011
  • 3.
    A Chaordic Desafios Próximos minutos Evoluções Futuro Conclusões 10/25/2011
  • 4.
    A Chaordic Desde 2009 desenvolve solução de personalização; Nascida a partir do Netflix prize; Sediada em Florianópolis; Escritório em São Paulo; 10/25/2011
  • 5.
  • 6.
    ... no diaa dia 10/25/2011
  • 7.
    Nossos produtos -OnSite 10/25/2011
  • 8.
    Nossos produtos -Mail 10/25/2011
  • 9.
  • 10.
    RecSys + BigData Operar nos TOP ecommerces do país Alta Disponibilidade Escalabilidade Desempenho Desafios 100% do conteúdo provido é dinâmico 10/25/2011
  • 11.
    ~5 TB deBD; Mais de 1 Bi requisições/mês na API; 67 mil RPM - Última Black Friday; Alguns 4 milhões de produtos; Números 34 milhões de recomendações geradas/dia; 27 milhões de usuários; 250GB de JS comprimidos servidos/dia; 10/25/2011
  • 12.
    Requisições x Mês- 2011 10/25/2011
  • 13.
  • 14.
    Pangeia ~2,5 anosatrás; Em negociações com a Saraiva; Tomcat6, MySQL5.1 = 1 instância c1.xlarge; Sem Alta Disponibilidade, Escalabilidade; Suporte a SSL, Desempenho aceitável; Snapshots diários como forma de backup; Primórdio 10/25/2011
  • 15.
    Primórdio 14GB BD; Evolução 15 milhões acessos/mês; Núm. 1,8 mil RPM; 1 instância; Primórdio 10/25/2011
  • 16.
    Evolução - Arquitetura1a Etapa 10/25/2011
  • 17.
    Começo da separação~2 anos atrás; No ar com a Saraiva; Tomcat6 + EhCache = Aumento Desempenho; MySQL dedicado e Data Files no disco efêmero; Monitoração com Monit e notificação via Pingdom; Evolução Snapshots + Data Files no S3 diários para bkp; 1a Etapa 10/25/2011
  • 18.
    Tuning JVM; Ambiente não suporta grandes paralisações; Alterado GC para UseConcMarkSweepGC; Menos tempo em GC, menos FullGC; Evolução Maior desempenho da JVM; 1a Etapa 10/25/2011
  • 19.
    Evolução - 1aEtapa 23GB BD; Evolução 28 milhões acessos/mês; Núm. 3 mil RPM; 2 instâncias; 1a Etapa 10/25/2011
  • 20.
    Evolução - Arquitetura2a Etapa 10/25/2011
  • 21.
    ~1,5 anos atrás; NewRelic como solução de APM; Novos clientes = Multi-tenant; MySQL c/ RAID0 4 EBS, maior volume IO; Evolução MySQL replicado Master/Slave; 2a Etapa Revisão do plano de continuidade do negócio devido a falha na Amazon Páscoa 2011; 10/25/2011
  • 22.
    Evolução - 2aEtapa 35 GB BD; 36 milhões acessos/mês; 8 mil RPM; 4 instâncias; 10/25/2011
  • 23.
    Evolução - Arquitetura3a Etapa 10/25/2011
  • 24.
    ~1 ano atrás; Nova.com = Extra + PontoFrio + Casas Bahia; CDN própria + DynDNS = Static HA; ELB, Nginx + Tomcat6 + HAProxy; MySQL Memória, CacheDist com Memcache; Evolução Scale Up + Scale Out para Black Friday e Natal; 3a Etapa 10/25/2011
  • 25.
    Aumento da contençãode escrita no banco; HiLo para geração de IDs; Utilização de INSERT DELAYED no MyISAM; Evolução Tabelas carregadas para memória, evita EBS; 3a Etapa HAProxy de MySQL para fail over do banco; 10/25/2011
  • 26.
    Evolução - 3aEtapa 118 GB BD; 630 milhões acessos/mês; 24 mil RPM; 10 instâncias; 10/25/2011
  • 27.
    Evolução - Arquitetura4a Etapa 10/25/2011
  • 28.
    ~ 6 mesesatrás; Troca tomcat por jetty = 3x mais requisições; Auto Scale e Spot Instances = Tio Patinhas; Evolução Migração MySQL para Cassandra = NoSQL; 4a Etapa Puppet + S3 = Instâncias voláteis, menor dependência do Health Dashboard AWS; Nagios + Ganglia = Monitoração detalhada; Pagamento via wire-transfer = Tributos; 10/25/2011
  • 29.
    Evolução - 4aEtapa ~4,86 TB BD - 345Gb MySQL; 1,03 bilhões acessos/mês; 38 mil RPM; ~21 instâncias; 10/25/2011
  • 30.
    Finalizar migração MySQL,Cassandra; RecSys via Map Reduce; Nacionalização da operação = reduz latência, Futuro porém aumenta custo em 30%; Cassandra, Hadoop e Pig; Backup e Fail Over para outro provedor de cloud; 10/25/2011
  • 31.
    Sem DataCenter, focamosno core da empresa; Cloud: Flexibilidade + Escalabilidade = Economia; Porque Amazon AWS? ● Possuem API para todos serviços; Conclusão ● Frequência em novos produtos e serviços; ● Preços diminuem com regularidade; ● Fornecedor IaaS: maior liberdade, maior aprendizagem; ● Democratização da Cloud real no Brasil; ● Qualidade do serviço oferecido; 10/25/2011
  • 32.
    Conclusão - Elasticidade+ Felixibilidade 10/25/2011
  • 33.