R7 no AWS - Qcon SP 2011

4,431 views

Published on

Palestra: Fazendo mais com menos, da infraestrutura tradicional para a Amazon. Como o R7 entrega conteúdo a partir do AWS.

Published in: Technology

R7 no AWS - Qcon SP 2011

  1. 1. Fazendo mais com menos Como o R7 entrega conteúdo a partir do AWS Roberto Gaiser rgaiser@sp.r7.com @rgaiser QCon SP - Setembro/2011
  2. 2. Sobre o R7
  3. 3. Sobre o R7• 2 anos de vida
  4. 4. Sobre o R7• 2 anos de vida• Culturas diferentes
  5. 5. Sobre o R7• 2 anos de vida• Culturas diferentes• Eficiência
  6. 6. Sobre o R7• 2 anos de vida• Culturas diferentes• Eficiência• Soluções não convencionais
  7. 7. Sobre o R7
  8. 8. Sobre o R7Page Views Unique Visitors Ibope539 Milhões 14,4 Milhões Net//Ratings Julho/2011
  9. 9. Sobre o R7Page Views Unique Visitors Ibope539 Milhões 14,4 Milhões Net//Ratings Julho/2011 Notícias Entretenimento Ibope 8ª 9ª Net//Ratings Julho/2011
  10. 10. Sobre o R7 Page Views Unique Visitors Ibope 539 Milhões 14,4 Milhões Net//Ratings Julho/2011 Notícias Entretenimento Ibope 8ª 9ª Net//Ratings Julho/2011 R7 Segundo lugar Internet Brasil Ibope51,12% 5,13% 4,9% Net//Ratings Julho/2011
  11. 11. Estrutura tradicional
  12. 12. Estrutura tradicional
  13. 13. Estrutura tradicional• Servidores
  14. 14. Estrutura tradicional• Servidores• Storage
  15. 15. Estrutura tradicional• Servidores• Storage• Rede
  16. 16. Estrutura tradicional• Servidores• Storage• Rede• Link
  17. 17. Problema
  18. 18. Problema“Efeito TV”
  19. 19. Problema“Efeito TV”
  20. 20. Como sobrevivemos?
  21. 21. Como sobrevivemos?• Utilizando o AWS como CDN
  22. 22. Como sobrevivemos?• Utilizando o AWS como CDN• Varnish
  23. 23. Como sobrevivemos?• Utilizando o AWS como CDN• Varnish• Cópia do conteúdo para casos de desastre
  24. 24. Como sobrevivemos?• Utilizando o AWS como CDN• Varnish• Cópia do conteúdo para casos de desastre• Aplicações otimizadas
  25. 25. Como sobrevivemos?• Utilizando o AWS como CDN• Varnish• Cópia do conteúdo para casos de desastre• Aplicações otimizadas• NoSQL, assíncrono, filas etc.
  26. 26. Motivação
  27. 27. Motivação• Otimizar custo fixo
  28. 28. Motivação• Otimizar custo fixo
  29. 29. Motivação• Otimizar custo fixo• “Efeito TV”
  30. 30. Motivação• Otimizar custo fixo• “Efeito TV”• Resiliência a ataques
  31. 31. Motivação• Otimizar custo fixo• “Efeito TV”• Resiliência a ataques• Site backup
  32. 32. Primeira vez
  33. 33. Primeira vez• ELB
  34. 34. Primeira vez• ELB• Large instance
  35. 35. Primeira vez• ELB• Large instance• Varnish
  36. 36. Primeira vez• ELB• Large instance• Varnish• Medição do tempo de carregamento
  37. 37. Primeira vez• ELB• Large instance• Varnish• Medição do tempo de carregamento• Sem aviso prévio
  38. 38. Primeira vez• ELB• Large instance• Varnish• Medição do tempo de carregamento• Sem aviso prévio
  39. 39. Funcionou, e agora?
  40. 40. Funcionou, e agora?• ELB + Auto Scaling (Cloudwatch alarm)
  41. 41. Funcionou, e agora?• ELB + Auto Scaling (Cloudwatch alarm)• Problemas do ELB
  42. 42. Funcionou, e agora?• ELB + Auto Scaling (Cloudwatch alarm)• Problemas do ELB• Global load balancing (DNS)
  43. 43. Funcionou, e agora?• ELB + Auto Scaling (Cloudwatch alarm)• Problemas do ELB• Global load balancing (DNS)• Automação (CHEF)
  44. 44. Funcionou, e agora?• ELB + Auto Scaling (Cloudwatch alarm)• Problemas do ELB• Global load balancing (DNS)• Automação (CHEF)• Ubuntu
  45. 45. Tudo vem de lá?
  46. 46. Tudo vem de lá?• Conteúdo estático e dinâmico
  47. 47. Tudo vem de lá?• Conteúdo estático e dinâmico• Vídeos da Akamai
  48. 48. Tudo vem de lá?• Conteúdo estático e dinâmico• Vídeos da Akamai• Performance do RDS X Custo
  49. 49. Tudo vem de lá?• Conteúdo estático e dinâmico• Vídeos da Akamai• Performance do RDS X Custo• Aplicações não preparadas
  50. 50. EC2
  51. 51. EC2• Escolher o tipo adequado para a aplicação
  52. 52. EC2• Escolher o tipo adequado para a aplicação• CPU x Memória
  53. 53. EC2• Escolher o tipo adequado para a aplicação• CPU x Memória• EBS x Instance Store
  54. 54. EC2• Escolher o tipo adequado para a aplicação• CPU x Memória• EBS x Instance Store• Tráfego x CPU
  55. 55. EC2• Escolher o tipo adequado para a aplicação• CPU x Memória• EBS x Instance Store• Tráfego x CPU• Reserved Instance
  56. 56. EC2
  57. 57. EC2 Compute Unit Memória (GB)
  58. 58. EC2 Compute Unit Memória (GB)86420 Small High-CPU Medium Large
  59. 59. EC2 Compute Unit Memória (GB)86420 Small High-CPU Medium Large 32 bits 32 bits 64 bits
  60. 60. EBS
  61. 61. EBS• EBS-backed instance
  62. 62. EBS• EBS-backed instance• Dados
  63. 63. EBS• EBS-backed instance• Dados• Performance
  64. 64. EBS• EBS-backed instance• Dados• Performance• Vantagens
  65. 65. EBS• EBS-backed instance• Dados• Performance• Vantagens• Problemas
  66. 66. AMI
  67. 67. AMI• Pronta ou com automação?
  68. 68. AMI• Pronta ou com automação?• CHEF
  69. 69. AMI• Pronta ou com automação?• CHEF• Ubuntu (http://uec-images.ubuntu.com/ )
  70. 70. AMI• Pronta ou com automação?• CHEF• Ubuntu (http://uec-images.ubuntu.com/ )• 32bits e 64bits
  71. 71. AMI• Pronta ou com automação?• CHEF• Ubuntu ( http://uec-images.ubuntu.com/ )• 32bits e 64bits• Pacotes prontos, salvo exceções
  72. 72. S3
  73. 73. S3• Custo
  74. 74. S3• Custo• Simples
  75. 75. S3• Custo• Simples• Videos e Thumbnails
  76. 76. S3• Custo• Simples• Videos e Thumbnails• Permissões
  77. 77. ELB
  78. 78. ELB• CNAME
  79. 79. ELB• CNAME• TTL e suas implicações
  80. 80. ELB• CNAME• TTL e suas implicações• SSL
  81. 81. ELB• CNAME• TTL e suas implicações• SSL• Múltiplas zonas
  82. 82. Cloudfront
  83. 83. Cloudfront• Controle do cache
  84. 84. Cloudfront• Controle do cache• Varnish e Nginx
  85. 85. Cloudfront• Controle do cache• Varnish e Nginx• Imagens a partir do S3 (Thumbnails)
  86. 86. Cloudfront• Controle do cache• Varnish e Nginx• Imagens a partir do S3 (Thumbnails)• CDN Global
  87. 87. Cloudwatch
  88. 88. Cloudwatch• Unidades nem sempre “amigáveis”
  89. 89. Cloudwatch• Unidades nem sempre “amigáveis”• Métricas customizadas
  90. 90. Cloudwatch• Unidades nem sempre “amigáveis”• Métricas customizadas• Alarmes
  91. 91. Cloudwatch• Unidades nem sempre “amigáveis”• Métricas customizadas• Alarmes• Auto Scaling
  92. 92. Monitoração
  93. 93. Monitoração• Zabbix
  94. 94. Monitoração• Zabbix• Cloudwatch
  95. 95. Monitoração• Zabbix• Cloudwatch• Dinâmico
  96. 96. Monitoração• Zabbix• Cloudwatch• Dinâmico• Otimizar custo e desempenho
  97. 97. Monitoração• Zabbix• Cloudwatch• Dinâmico• Otimizar custo e desempenho• Capacity planning
  98. 98. Automação
  99. 99. Automação• Puppet x Cfengine x CHEF
  100. 100. Automação• Puppet x Cfengine x CHEF• CHEF já estava pronto para o EC2
  101. 101. Automação• Puppet x Cfengine x CHEF• CHEF já estava pronto para o EC2• OHAI
  102. 102. Automação• Puppet x Cfengine x CHEF• CHEF já estava pronto para o EC2• OHAI• Cloudformation
  103. 103. Automação• Puppet x Cfengine x CHEF• CHEF já estava pronto para o EC2• OHAI• Cloudformation• Disaster recovery
  104. 104. Cloudformation
  105. 105. Cloudformation• JSON
  106. 106. Cloudformation• JSON• Versionamento
  107. 107. Cloudformation• JSON• Versionamento• Consegue controlar todos os serviços
  108. 108. Cloudformation• JSON• Versionamento• Consegue controlar todos os serviços• Testes e recuperação de falhas
  109. 109. Segurança
  110. 110. Segurança• ACL de entrada, saída sempre é liberado
  111. 111. Segurança• ACL de entrada, saída sempre é liberado• Grupos entre diferentes contas
  112. 112. Segurança• ACL de entrada, saída sempre é liberado• Grupos entre diferentes contas• Impossibilidade de alterar o grupo
  113. 113. Segurança• ACL de entrada, saída sempre é liberado• Grupos entre diferentes contas• Impossibilidade de alterar o grupo
  114. 114. Segurança• ACL de entrada, saída sempre é liberado• Grupos entre diferentes contas• Impossibilidade de alterar o grupo• Implicações legais
  115. 115. Controle de acesso
  116. 116. Controle de acesso• IAM
  117. 117. Controle de acesso• IAM• API Key/Secret
  118. 118. Controle de acesso• IAM• API Key/Secret• Por aplicação/usuário
  119. 119. Controle de acesso• IAM• API Key/Secret• Por aplicação/usuário• Granularidade varia entre os serviços
  120. 120. Problemas?
  121. 121. Problemas?• Eles existem
  122. 122. Problemas?• Eles existem• RTT
  123. 123. Problemas?• Eles existem• RTT• Conectividade das operadoras
  124. 124. Problemas?• Eles existem• RTT• Conectividade das operadoras• Controle de acesso (IAM)
  125. 125. Problemas?• Eles existem• RTT• Conectividade das operadoras• Controle de acesso (IAM)
  126. 126. Problemas?• Eles existem• RTT• Conectividade das operadoras• Controle de acesso (IAM)• Problemas do AWS
  127. 127. Futuro
  128. 128. Futuro
  129. 129. Futuro• O medo foi vencido
  130. 130. Futuro• O medo foi vencido• Global load balancer possibilita outros provedores
  131. 131. Futuro• O medo foi vencido• Global load balancer possibilita outros provedores• Busca de soluções competitivas
  132. 132. Futuro• O medo foi vencido• Global load balancer possibilita outros provedores• Busca de soluções competitivas• Construir aplicações preparadas para este tipo de ambiente
  133. 133. Outros usos
  134. 134. Outros usos
  135. 135. Outros usos• Possibilidade de criar a mesma estrutura de produção
  136. 136. Outros usos• Possibilidade de criar a mesma estrutura de produção• Homologação
  137. 137. Outros usos• Possibilidade de criar a mesma estrutura de produção• Homologação• Testes
  138. 138. Outros usos• Possibilidade de criar a mesma estrutura de produção• Homologação• Testes• S3 e EBS como backup
  139. 139. Outros usos• Possibilidade de criar a mesma estrutura de produção• Homologação• Testes• S3 e EBS como backup• Hadoop para relatórios
  140. 140. “Cloud Computing”
  141. 141. “Cloud Computing”
  142. 142. Perguntas?
  143. 143. Perguntas?

×