Your SlideShare is downloading. ×
0
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final

1,190

Published on

Apresentações do AWS Summit Sao Paulo 2014. Baixe o conteúdo preparado por nossos especialistas para auxiliá-lo na jornada para a nuvem.

Apresentações do AWS Summit Sao Paulo 2014. Baixe o conteúdo preparado por nossos especialistas para auxiliá-lo na jornada para a nuvem.

Published in: Business
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,190
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
134
Comments
0
Likes
6
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. © 2014 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.© 2014 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc. Escalando na AWS até os Primeiros 10 Milhões de Usuários Fábio Aragão da Silva Arquiteto de Soluções Amazon Web Services LATAM 27 de Maio de 2014
  • 2. Escalando na AWS até os Primeiros 10 Milhões de Usuários • EU: – Fábio Aragão da Silva – silfabio@amazon.com • VOCÊS: Estão aqui para aprender mais sobre como escalar sua infraestrutura na AWS • HOJE: Veremos as melhores praticas e considerações para quanto estiverem projetando em larga escala na AWS
  • 3. Escalado até 10 milhões de usuários: uma estória em quatro capítulos • Introdução e Primeiros Passos • Fundação • Ferramentas e Monitoração • 10 Milhões de Usuários e Além
  • 4. E então, como escalar?
  • 5. Bastante material pra ler
  • 6. Não é por onde deveriamos começar Bastante material pra ler
  • 7. Auto Scaling é uma ferramenta e um destino. Mas não é a única solução mágica que resolve todos os problemas.
  • 8. E então: o que fazer primeiramente?
  • 9. Começando pelo básico…
  • 10. Regiões US-WEST (Oregon) EU-WEST (Ireland) ASIA PAC (Tókio) US-WEST (N. California) AMÉRICA DO SUL (São Paulo) US-EAST (Virginia) AWS GovCloud (US) ASIA PAC (Sydney) ASIA PAC (Singapore) CHINA (Beijing)
  • 11. Zonas de Disponibilidade US-WEST (Oregon) EU-WEST (Ireland) ASIA PAC (Tókio) US-WEST (N. California) AMÉRICA DO SUL (São Paulo) US-EAST (Virginia) AWS GovCloud (US) ASIA PAC (Sydney) ASIA PAC (Singapore) CHINA (Beijing)
  • 12. Pontos de Presença
  • 13. • Negócio de mais de $7B • Mais de 8,000 funcionários • Uma porrada grande quantidade de servidores Todos os dias, a AWS acrescenta capacidade computacional equivalente a esse negócio de $7B em 2004 2004 2014
  • 14. Computação Armazenagem & Entrega de Conteúdo Infraestrutura Global da AWS Banco de Dados Serviços para Aplicações Deployment & Administração Redes
  • 15. Amazon CloudSearch Amazon SQS Amazon SNS Amazon Elastic Transcoder Amazon SWF Amazon SES Amazon DynamoDB Amazon RDS Amazon ElastiCache Amazon RedShift AWS Storage Gateway Amazon S3 Amazon Glacier Amazon CloudFrontAmazon EC2 Amazon EMR Amazon VPC Amazon Route 53 AWS Direct Connect Amazon Kinesis Amazon CloudWatch AWS IAM AWS CloudFormation Amazon Elastic Beanstalk AWS Data Pipeline AWS OpsWorks AWS CloudTrail Computação Armazenagem & Entrega de Conteúdo Infraestrutura Global da AWS Banco de Dados Serviços para Aplicações Deployment & Administração Redes
  • 16. Vamos começar então pelo dia um, com um usuário ( você )
  • 17. Dia Um, Um Usuário: • Uma única instância EC2 – Com toda a pilha de software no servidor • Servidor de Aplicações WEB • Banco de Dados • Gerenciamento • etc. • Um único endereço IP elástico • Amazon Route 53 como DNS Instância EC2 Endereço IP Elástico Amazon Route 53 Usuário
  • 18. “Putz Vamos precisar de uma caixa maior” • Abordagem mais simples • Agora podendo usar PIOPs • Instâncias para I/O Alto • Instâncias para Memória Alta • Instâncias para CPU Alta • Instâncias para Armazenagem Alta • É fácil trocar o tipo de instância • Mas vai atingir um limite m3.xlarge m1.small i2.4xlarge
  • 19. m3.xlarge m1.small i2.4xlarge “Putz Vamos precisar de uma caixa maior” • Abordagem mais simples • Agora podendo usar PIOPs • Instâncias para I/O Alto • Instâncias para Memória Alta • Instâncias para CPU Alta • Instâncias para Armazenagem Alta • É fácil trocar o tipo de instância • Mas vai atingir um limite
  • 20. Dia Um, Um Usuário: • Poderiamos chegar potencialmente a dezenas ou até alguns milhares de usuários dependendo do tráfego e da complexidade da aplicação • Mas sem tolerância a falhas • E sem redundância Instância EC2 Endereço IP Elástico Amazon Route 53 Usuário
  • 21. Dia Um, Um Usuário: • Poderiamos chegar potencialmente a dezenas ou até alguns milhares de usuários dependendo do tráfego e da complexidade da aplicação • Mas sem tolerância a falhas • E sem redundância Instância EC2 Endereço IP Elástico Amazon Route 53 Usuário
  • 22. Dia Dois, Usuários > 1: Primeiramente, vamos separar nosso host “monolítico” em mais de um servidor: • Servidor Web • Servidor de Banco de Dados – E que tal fazer uso de um serviço de Banco de Dados gerenciado? Instância WEB Instância de Banco Endereço IP elástico Amazon Route 53 Usuário
  • 23. Gerência Própria Completamente Gerenciado Banco de Dados na Amazon EC2 Sua escolha de banco de dados rodando na Amazon EC2 Traga sua própria licença (BYOL) Amazon DynamoDB Serviço de Banco NoSQL gerenciado usando discos de SSD Escalabilidade simples e nenhuma administração Amazon RDS Microsoft SQL, Oracle, MySQL or PostgreSQL como serviço gerenciado Licenciamento flexível BYOL or com licença incluída Amazon Redshift Serviço de data warehouse altamente paralelo, da ordem de petabytes Rápido, poderoso e fácil de escalar Opções de Bancos de Dados
  • 24. Escalado até 10 milhões de usuários: uma estória em quatro capítulos • Introdução e Primeiros Passos • Fundação • Ferramentas e Monitoração • 10 Milhões de Usuários e Além
  • 25. Mas como escolher a tecnologia de Banco de Dados ideal? SQL? NoSQL?
  • 26. Alguns de vocês talvez não gostem muito do que eu vou falar agora. Mas…
  • 27. Comece com Banco de Dados SQL
  • 28. A não ser que você já tenha uma equipe bem familiar com NoSQL…
  • 29. Comece com Banco de Dados SQL
  • 30. Mas por que começar com SQL? • É uma tecnologia bem conhecida e estável • Muito código já existente, comunidades, livros, ferramentas, etc. • Você provavelmente não vai conseguir ”sentar” um banco SQL antes dos seus primeiros 10 milhões de usuários. É sério, você não vai conseguir* • Padrões claros e bem conhecidos para escalar * A não ser que você se esforce muito esteja manipulando enormes quantidades de dados; ainda assim um banco SQL terá lugar na sua pilha de software
  • 31. A-há! Te peguei! Você disse “enormes quantidades de dados”. E eu vou ter enooooormes quantidades de dados!
  • 32. Só se a sua utilização estiver gerando muitos TB ( >5 ) de dados no primeiro ano OU você possuir um fluxo extremamente intensivo em termos de processamento de dados… é que você provavelmente vai precisar de verdade de NoSQL
  • 33. Em todo caso, quando então usar NoSQL? • Aplicações de latência super baixa • Conjunto de dados orientado a metadados • Dados altamente não-relacionais • Necessidade de tabelas sem estrutura pré-definida* • Quantidades massivas de dados (na casa dos TB) • Ingestão rápida de dados ( milhares de registros/seg ) • Já possui equipe qualificada em NoSQL *Necessidade != “é mais fácil pra desenvolver”
  • 34. Quando NoSQL = Sim… considere utilizar o DynamoDB
  • 35. Amazon Dynamo DB • Banco NoSQL gerênciado e com throughput provisionado • Performance rápida e previsível • Arquitetura completamente distribuída e tolerante a falhas Característica Detalhes Throughput provisionado Suba ou desça a capacidade de escrita e leitura facilmente Performance previsível Latência média de um único dígito através de arquitetura baseada em discos SSD Consistência Forte Tenha certeza de estar lendo os valores mais atuais Tolerância a falhas Dados replicados entre diferentes Zonas de Disponibilidade Monitoramento Integrado ao Amazon CloudWatch Segurança Integrado ao AWS Identity and Access Management (AWS IAM) Amazon EMR Integrado ao Amazon EMR para análises complexas em grandes conjuntos de dados
  • 36. Mas de volta à conversa inicial… Vejamos como podemos escalar um banco de dados SQL
  • 37. Usuários > 100: Primeiramente, vamos separar nosso host “monolítico” em mais de um servidor: • Servidor Web • Servidor de Banco de Dados – Utilize o RDS para facilitar a gestão e manutenção do seu banco de dados SQL Instância WEB Endereço IP elástico Amazon Route 53 Usuário RDS DB instance
  • 38. Usuários > 1000: Agora, vamos endereçar a falta de tolerância a falha e redundância: • Com Elastic Load Balancing • Com outra instância WEB – Em outra zona de disponibiliza • Habilitando Multi-AZ no RDS Instância WEB Instância Amazon RDS Ativa (Multi-AZ) Zona de Disponibilidade Zona de Disponibilidade Instância WEB Instância Amazon RDS Standby (Multi-AZ) Elastic Load Balancing Amazon Route 53 Usuário
  • 39. • Crie aplicações altamente escaláveis Característica Detalhes Disponível Distribui carga entre instâncias em múltiplas zonas de disponibilidade Verificação de Saúde Verifica automaticamente a saúde das instâncias e tira-as de serviço caso não estejam respondendo Afinidade de Sessão Roteia pedidos da mesma origem para a mesma instância Secure sockets layer Suporta SSL offload de servidores web e de aplicação com suporte de cifragem flexível Monitoração Publica métricas para o Amazon CloudWatch Elastic Load Balancing Elastic Load Balancing
  • 40. Escalabilidade vertical e horizontal vai te permitir ir longe ( de dezenas a centenas de milhares de usuários )
  • 41. Usuários > 10 mil - 100 mil: RDS DB Instância Ativa (Multi-AZ) Zona de Disponibilidade Zona de Disponibilidade RDS DB Instância Standby (Multi-AZ) Elastic Load Balancing RDS DB Réplica de Leitura RDS DB Réplica de Leitura RDS DB Réplica de Leitura RDS DB Réplica de Leitura Instância WEB Instância WEB Instância WEB Instância WEB Instância WEB Instância WEB Instância WEB Instância WEB Amazon Route 53 Usuário
  • 42. Essas medidas vão nos levar longe, mas a gente se importa com performance e eficiência, então vamos melhorar a arquitetura com componentes e serviços
  • 43. Movendo parte da carga: Pense em componentes e serviços: • Mova conteúdo estático da instância WEB para o S3 e o Cloudfront • Mova estado/sessão e cache do banco de dados para o ElastiCache e/ou o DynamoDB • Mais serviços daqui a pouco… Instância WEB RDS DB Instância Ativa (Multi-AZ) Zona de Disponibilidade Elastic Load Balancing Amazon S3 Amazon CloudFront Amazon Route 53 Usuário ElastiCache Amazon DynamoDB
  • 44. Trabalhando com o S3 • Serviço de armazenamento de objetos para a web • Projetado para onze noves de durabilidade • Bom para: – Conteúdo estático (css, js, imagens, vídeos) – Backups – Logs • “Escalabilidade Infinita” • Suporta controle fino de permissões • Integrado ao CloudFront • Integrado ao EMR • Atua como endpoint de logging para o S3/CloudFront/Billing • Suporta criptografia de dados em descanso e em trânsito • Redundância reduzida é 1/3 mais barata • Amazon Glaciar para armazenamento barato de longo prazo
  • 45. CloudFront Amazon CloudFront é um serviço web para entrega escalável de conteúdo: • Faz cache de conteúdo nos pontos de presença para entrega mais rápida • Ajuda a diminuir a carga na infra de origem • Suporta conteúdo dinâmico e estático • Suporta streaming de vídeo • Suporta zone apex • Suporta certificados SSL customizados • TTL baixo (até 0 segundos) • Baixo custo de transferência da origem (S3 e EC2) • Otimizado para EC2, S3, ELB e Route 53 TempodeResposta CarganoServidor TempodeResposta TempodeResposta Sem CDN Com CDN para arquivos estáticos Com CDN para arquivos estáticos e conteúdo dinâmico 0 10 20 30 40 50 60 70 80 8:00 AM 9:00 AM 10:00 AM 11:00 AM 12:00 PM 1:00 PM 2:00 PM 3:00 PM 4:00 PM 5:00 PM 6:00 PM 7:00 PM 8:00 PM 9:00 PM VolumedeDados Entregues(Gbps)
  • 46. Escalado até 10 milhões de usuários: uma estória em quatro capítulos • Introdução e Primeiros Passos • Fundação • Ferramentas e Monitoração • 10 milhões de Usuários e Além
  • 47. Agora que nossa camada web está bem mais leve, vamos voltar ao começo da conversa…
  • 48. Auto Scaling!
  • 49. Mudança automática do tamanho do cluster baseado na demanda Disparo da política de auto-scaling Característica Detalhes Controle Permite definir as quantidades máximas e mínimas de servidores e quando e como as mudanças acontecem Integrado ao Amazon CloudWatch Permite utilizar as métricas colhidas pelo CloudWatch para decidir a melhor escalabilidade Tipos de Instâncias Funciona com instâncias Spot e Sob Demanda; compatível com VPC aws autoscaling create-auto-scaling- group --auto-scaling-group-name MyGroup --launch-configuration-name MyConfig --min-size 4 --max-size 200 --availability-zones us-west-2c Auto Scaling Amazon CloudWatch
  • 50. Domingo Segunda Terça Quarta Quinta Sexta Sábado Trafego típico na Amazon.com
  • 51. Capacidade Provisionada Trafego típico na Amazon.com Domingo Segunda Terça Quarta Quinta Sexta Sábado
  • 52. Trafego em Novembro na Amazon.com Novembro
  • 53. Trafego em Novembro na Amazon.com Capacidade Provisionada Novembro
  • 54. Trafego em Novembro na Amazon.com 76% 24% Capacidade Provisionada Novembro
  • 55. Trafego em Novembro na Amazon.com Novembro
  • 56. Auto Scaling te permite fazer isso!
  • 57. Auto Scaling pode escalar desde uma instância até milhares de instâncias e depois voltar
  • 58. Usuários > 500 mil: Zona de Disponibilidade Amazon Route 53 Usuário Amazon S3 Amazon CloudFront Zona de Disponibilidade Elastic Load Balancing Amazon DynamoDBRDS DB Réplica de Leitura Instância WEB Instância WEB Instância WEB ElastiCache RDS DB Réplica de Leitura Instância WEB Instância WEB Instância WEB ElastiCacheRDS DB Instância Standby (Multi-AZ) RDS DB Instancia Ativa (Multi-AZ)
  • 59. Use Ferramentas: Gerenciar sua infraestrutura vai tomar uma parte considerável e cada vez maior do seu tempo. Utilize então ferramentas para automatizar as tarefas repetitivas. • Ferramentas para gerenciar recursos da AWS • Ferramentas de gestão de software and configuração das instâncias (chef, puppet, salt, ansible, etc.) • Análise automatizada de logs e ações dos usuários
  • 60. Soluções de Gestão de Aplicação da AWS AWS Elastic Beanstalk AWS OpsWorks AWS CloudFormation Amazon EC2 Conveniência Controle Serviços de mais alto nível Faça você mesmo
  • 61. Nesse ponto, você provavelmente vai encontrar problemas de performance na aplicação: • Tenha monitoramento/métricas/logging – Se não puder construir, utilize soluções prontas de terceiros! (Software-as-a-Service) • Tire o máximo de informações que puder de cada componente ou serviço Usuários > 500 mil:
  • 62. MÉTRICAS DO HOST MÉTRICAS AGREGADAS ANÁLISE DE LOG PERFORMANCE DO SITE
  • 63. AWS Marketplace & Parceiros podem ajudar • Clientes podem pesquisar, encontrar e comprar software • Precificação simplificada, alinhada com o modelo do EC2 • Início em minutos • Cobrança integrada na sua conta da AWS • Mais de 1300 produtos em mais de 20 categorias Saiba mais em: aws.amazon.com/marketplace
  • 64. Escalado até 10 milhões de usuários: Uma estória em quatro capítulos • Introdução e Primeiros Passos • Fundação • Ferramentas e Monitoração • 10 Milhões de Usuários e Além
  • 65. Agora não há mais como melhorar apenas quebrando ainda mais a camada web e de aplicação
  • 66. SOA = Service Oriented Architecture, ou Arquitetura Orientada a Serviços
  • 67. SOA’ndo Mova os serviços para suas próprias camadas/modulos. Trate cada um desses serviços como peças 100% separadas da sua infraestrutura e escale-os independentemente. A Amazon.com e a AWS fazem isso extensivamente! Essa abordagem oferece flexibilidade e maior entendimento de cada componente.
  • 68. O Baixo Acoplamento Vos Libertará! • Quanto menos acoplamento, mais escalabilidade: – Componentes Independentes – Projete tudo como se fosse uma caixa preta – Desacople as interações – Dê preferência a serviços que já possuam redundência e escalabilidade ao invés de construir seus próprios Controlador A Controlador B Controlador A Controlador B FIL A Alto Acoplamento Use o Amazon SQS para buffers Baixo Acoplamento FIL A
  • 69. Baixo Acomplamento + SOA = Vitória Exemplos: • Email / Filas / Notificação • Transcodificação • Busca • Banco de Dados • Monitoração • Workflow • Logging Amazon CloudSearch Amazon SQSAmazon SNS Amazon Elastic Transcoder Amazon SWF Amazon SES Quando estiver começando, se encontrar algum serviço que já faça o que você quer, prefira utilizá-lo no lugar de construí-lo você mesmo. NÃO REINVENTE A RODA
  • 70. Sobre reinventar a roda… Se você estiver escrevendo seu próprio serviço de: fila, DNS, banco de dados, armazenamento, monitoração
  • 71. PARE AGORA !!!
  • 72. Vamos fazer uma pausa rápida para conhecermos o caso da AgênciaClick Isobar
  • 73. • Parte da Dentsu Aegis Network (+130 países, +300 agências, +36.000 profissionais) • Média de 380 implantações por mês (mais de 4.550 por ano) • Projetos diversificados e com várias constraints tecnológicas diferentes • Estamos sempre correndo contra o tempo
  • 74. • Garantir o funcionamento de sites de campanhas onde o volume de acessos é extremamente variável. • Manter o custo fixo baixo da infra destas campanhas, aumentando o número de servidores quando necessário. • Projetos muitas vezes casados com campanhas off-line com alto investimento em mídia gerando picos monstruosos de acesso (as vezes de surpresa!) • Transpor barreiras impostas pelo departamento de tecnologia de nossos clientes, acostumados com o modelo antigo de infraestrutura.
  • 75. • Implantação sem entraves, independente da tecnologia. • Redução e previsibilidade dos custos fixos de projetos • Escalabilidade e alta disponibilidade • Suporte e consultoria pela ADTSys
  • 76. De volta a SOA
  • 77. Usuários > 1 milhão: Alcançar um milhão de usuários e além vai exigir um pouco mais das coisas discutidas anteriormente: • Multi-AZ • Elastic Load Balancing entre as camadas • Auto Scaling • Arquitetura SOA • Entrega inteligente de conteúdo (Amazon S3/CloudFront) • Cache dos dados do Banco de Dados • Remoção de estado das camadas que usam auto scaling
  • 78. Usuários > 1 milhão: RDS DB Instance Active (Multi-AZ) Zona de Disponibilidade Elastic Load Balancing RDS DB Réplica de Leitura RDS DB Réplica de Leitura Instância WEB Instância WEB Instância WEB Instância WEB Amazon Route 53 User Amazon S3 Amazon CloudFront Amazon DynamoDB Amazon SQS ElastiCache Instância Worker Instância Worker Amazon CloudWatch Instância de Aplicação Instância de Aplicação Amazon SES
  • 79. Os próximos grandes passos
  • 80. Usuários > 5 milhões – 10 milhões: Nesse ponto, você provavelmente vai começar a encontrar problemas no banco de dados em relação a contenção de escrita na base master. Como resolver? • Federação ~ divisão dos dados em múltiplas bases de dados a partir de suas funções • Sharding ~ divisão dos dados em múltiplas bases de dados a partir dos dados em si • Movimentação de algumas funcionalidades para outros tipos de Bancos de Dados (NoSQL)
  • 81. Movendo funcionalidades para NoSQL • Similar à federação • Novamente, revise os pontos anteriores para determinar se você realmente precisa de NoSQL • Use serviços gerenciados como Amazon DynamoDB • Alguns casos de uso: – pontuação/quadro de liderança em jogos – Ingestão rápida de logs – Tabelas temporárias ( carrinho de compra ou sessão ) – Tabelas muito acessadas – Tabelas de pesquisa e metadados Amazon DynamoDB
  • 82. …E finalmente chegamos aos 10 milhões de usuários
  • 83. Uma Revisão Rápida
  • 84. Revisão • Crie sempre sua infra-estrutura considerando Multi-AZ • Use sempre serviços auto-escaláveis: – Elastic Load Balancing, Amazon S3, Amazon SNS, Amazon SQS, Amazon SWF, Amazon SES, etc. • Tenha redundância em todos os níveis • Normalmente comece com SQL • Utilize ferramentas de automação
  • 85. Revisão (continuação) • Tenha sempre métricas/monitoramento/logging • Divida as camadas em serviços (SOA) • Utilize Auto Scaling somente quando estiver pronto pra ele • Não reinvente a roda • Passe a usar NoSQL apenas quando realmente fizer sentido, mas faça o possível para não ter de administrá-lo (de preferência, use o DynamoDB)
  • 86. Juntando tudo isso, temos agora condições de suportar até 10 milhões de usuários sem grandes dores de cabeça
  • 87. Ao infinito...
  • 88. Usuários > 10 milhões: • Mais ajustes finos na aplicação • Mais funcionalidades e recursos de SOA • Indo de Multi-AZ para Multi-Região • Potencialmente vai precisar começar a construir soluções customizadas (ferramentas criadas pela Netflix, por exemplo) • Análise profundamente toda a pilha de software
  • 89. Próximos Passos? LEIAM! • aws.amazon.com/documentation • aws.amazon.com/architecture • aws.amazon.com/start-ups
  • 90. Próximos Passos? COMEÇEM A USAR aws.amazon.com/free
  • 91. Próximos Passos? PEÇAM AJUDA! • forums.aws.amazon.com • aws.amazon.com/support • Seu Gerente de Contas na AWS • Um dos nossos Arquitetos de Soluções
  • 92. Obrigado pela presença! Fábio Silva – silfabio@amazon.com
  • 93. © 2014 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.© 2014 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc. Obrigado! Escalando na AWS até os Primeiros 10 Milhões de Usuários Fábio Aragão da Silva Arquiteto de Soluções Amazon Web Services LATAM 27 de Maio de 2014

×