10/25/2011
We Recommend
10/25/2011
Construindo um avião na nuvem em pleno vôo
10/25/2011
Próximos minutos
A ChaordicDesafiosEvoluçõesFuturoConclusõ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
Desafios
RecSys + Big DataOperar nos TOP ecommerces do paísAlta DisponibilidadeEscalabilidadeDesempenho100% do conteúdo provido é dinâmico
10/25/2011
Alguns Números
~5 TB de BD;
Mais de 1 Bi requisições/mês na API;
67 mil RPM - Última Black Friday;
4 milhões de produtos;
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
14GB BD;15 milhões acessos/mês;1,8 mil RPM;1 instância;
EvoluçãoNúm.
Primórdio
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;Snapshots + Data Files no S3 diários para bkp;Evolução
1a Etapa
10/25/2011
Tuning JVM;Ambiente não suporta grandes paralisações;Alterado GC para UseConcMarkSweepGC;Menos tempo em GC, menos FullGC;Maior desempenho da JVM;Evolução
1a Etapa
10/25/2011
23GB BD;28 milhões acessos/mês;3 mil RPM;2 instâncias;
EvoluçãoNúm.
1a Etapa
Evolução - 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;
MySQL replicado Master/Slave;
Revisão do plano de continuidade do negócio devido a falha na Amazon Páscoa 2011;
Evolução2a Etapa
10/25/2011
35 GB BD;36 milhões acessos/mês;8 mil RPM;4 instâncias;
Evolução - 2a Etapa
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;Scale Up + Scale Out para Black Friday e Natal;Evolução
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; Tabelas carregadas para memória, evita EBS; HAProxy de MySQL para fail over do banco;
Evolução3a Etapa
10/25/2011
118 GB BD;630 milhões acessos/mês;24 mil RPM;10 instâncias;
Evolução - 3a Etapa
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;
Migração MySQL para Cassandra = NoSQL;
Puppet + S3 = Instâncias voláteis, menor dependência do Health Dashboard AWS;
Nagios + Ganglia = Monitoração detalhada;
Pagamento via wire-transfer = Tributos;
Evolução4a Etapa
10/25/2011
~4,86 TB BD - 345Gb MySQL;1,03 bilhões acessos/mês;38 mil RPM;~21 instâncias;
Evolução - 4a Etapa
10/25/2011
Finalizar migração MySQL, Cassandra;
RecSys via Map Reduce;Nacionalização da operação = reduz latência, porém aumenta custo em 30%;Cassandra, Hadoop e Pig; Backup e Fail Over para outro provedor de cloud;
Futuro
10/25/2011
Sem DataCenter, focamos no core da empresa;Cloud: Flexibilidade + Escalabilidade = Economia;
Porque Amazon AWS?● Possuem API para todos serviços;● 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;
Conclusão
10/25/2011
Conclusão - Elasticidade + Felixibilidade
10/25/2011