Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk

194 views

Published on

O AWS Beanstalk provê de forma simples e rápida, gerenciamento de deploy e escalabilidade da sua aplicação Web na AWS. Nessa sessão também será exposto as facilidades e robustez do serviço em questão.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk

  1. 1. © 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Daniel Bento, Arquiteto de Soluções Agosto de 2016 Escalando suas aplicações Web com Elastic Beanstalk AWS Experience Fortaleza 2016
  2. 2. Agenda • O que é o Elastic Beanstalk? • Primeiros Passos com o Elastic Beanstalk • Melhores Práticas • Conclusão
  3. 3. Porque nós contruímos o Elastic Beanstalk?
  4. 4. * As of 30 April 2016 2009 48 280 722 82 2011 2013 2015 Passo de inovação na AWS Ouvimos nossos clientes e criamos o que eles precisam
  5. 5. Alguns Desafios dos Clientes Implantar código e não se preocupar o provisionamento e gerenciamento da infraestrutura Não ter expertise ou tempo Escalabilidade automática de aplicações
  6. 6. O que é o Elastic Beanstalk?
  7. 7. Elastic Beanstalk Maneira mais simples para implantar e escalar aplicações Java, .NET, PHP, Node.js, Python, Ruby, Go e Docker Faça o upload de sua aplicação e deixe o Beanstalk gerenciar a infraestrutura necessária
  8. 8. Elastic Beanstalk vs. Faça você mesmo Seu código Servidor HTTP Servidor de Aplicação Interpretador de linguagens Sistema Operacional Host Foco na construção de sua aplicação Fornecido por você Fornecido e gerenciado pelo Elastic Beanstalk On-instance configuration
  9. 9. Elastic Beanstalk vs. Faça você mesmo • Instância única ou com balanceador • Camada Web e Camada de Workers • Provisiona a infraestrutura necessária, como balanceador de carga, Auto Scaling group, security groups, banco de dados (opcional), etc. • Provê um único nome de domínio para sua aplicação (ex: yourapp.elasticbeanstalk.com) Stack de Infraestrutura
  10. 10. Versionamento da aplicação e configuração Configurações salvas Guarde as configurações dos seus ambientes para replicação futura Versão das aplicações Versões armazenadas no S3. Código pode vir do repositório Git.
  11. 11. Benefícios Rápido e simples de começar Produtividade para desenvolvedor Escalabilidade automática Total Controle dos Recursos
  12. 12. Rápido e Simples de Começar Maneira mais rápida e simples de se implantar uma aplicação na AWS Faça o upload de sua aplicação e deixe o Beanstalk gerenciar a infraestrutura necessária
  13. 13. Produtividade para o Desenvolvedor Provisiona a infraestrutura e gerencia a stack das aplicações por você Foco na criação de códigos ao invés de gastar tempo gerenciando infraestrutura
  14. 14. Escalabilidade automática Elastic Beanstalk automaticamente escala sua aplicação Utilize métricas do CloudWatch para disparar ações de escalabilidade Ex: utilização de CPU
  15. 15. Total Controle dos Recursos Mantenha o controle total sobre os recursos na AWS Assuma o controle de alguns (ou todos) os elementos de sua infraestrutura
  16. 16. Casos de Uso Comuns Websites API backends Mobile backends Processamento assíncrono
  17. 17. Preço e Disponibilidade • Atualmente disponível em todas as regiões da AWS • Não há cobrança adicional pelo AWS Elastic Beanstalk • Pague somente pelos recursos (ex: instâncias EC2, ELBs ou RDS, etc) criados para rodar suas aplicações
  18. 18. Primeiros passos com o Elastic Beanstalk
  19. 19. Informações requeridas para implantar uma aplicação 01 02 03 04 Região Tipo de Stack Instância única Balanceador de Carga com AutoScaling ou Banco de Dados (RDS) Optional Seu código Plataformas suportadas
  20. 20. Como implantar aplicações 1. Com o AWS Management Console 2. Com o AWS Toolkit para Eclipse e Visual Studio IDE 3. Com o EB command line interface (EB CLI) $ eb deploy
  21. 21. Demo: Implantando uma aplicação no ElasticBeanstalk via Console
  22. 22. Implantando uma aplicação via CLI Workflow de implantação de aplicação $ git clone https://github.com/awslabs/eb- node-express-sample.git Baixe a aplicação de exemplo:02 $ eb init Crie seu app Elastic Beanstalk03 Siga os prompts e configure o ambiente 04 05 Crie os recursos e lance a aplicação: $ eb create $ pip install --upgrade awsebcli Instale o EB CLI:01
  23. 23. Atualizando via CLI Workflow para atualizar a aplicação: Atualize seu código01 $ git add . $ git commit –m “v2.0” $ eb deploy Adicione e faça o commit no repositório02 Abra a aplicação quando o deploy terminar:03 $ eb open
  24. 24. Melhores Práticas
  25. 25. Teste e faça o tuning de sua aplicação • Escolha as métricas de performance que você deseja otimizar (ex: latência, usuários concorrentes, número de requisições web, etc.) • Faça o teste de carga de sua aplicação • Configure Autoscaling para otimizar as métricas de performance • Faça o tuning do back end (DynamoDB, RDS, etc.) para performance ótima;
  26. 26. Implantação – Rolling updates 1. Defina a % de instâncias a serem implantadas por vez 2. Implante x% e continue somente se as instâncias estiverem saudáveis 3. Rollback automático em caso de falhas
  27. 27. Prós: • Implantações são rápidas (20-60 s) Contras: • Rollback mais demorado pois a versão anterior da aplicação precisa ser reimplantada Implantação – Rolling updates
  28. 28. Implantação – Zero Downtime 1. Crie um novo ambiente para uma aplicação 2. Implante a nova versão da aplicação no novo ambiente 3. Use o “Swap Environment URLs” para direcionar os usuários para o novo ambiente de produção
  29. 29. Prós: • Implantação com Zero downtime • Rollback rápido. O ambiente rodando a versão anterior não foi modificado Contras: • Implantações levam mais tempo do que o modelo rolling (2-5 min.) pois um novo ambiente precisa ser criado • Cache de DNS, não respeitam o TTL Implantação – Zero Downtime
  30. 30. Logs, métricas e alarmes • Habilite a rotação de logs para que sejam automaticamente gravadas no S3 • Entender métricas disponíveis para o seu ambiente e o que eles significam • Configure alarmes para monitorar automaticamente métricas críticas e enviar notificações quando estiverem fora do intervalo de operação normal
  31. 31. Coloque Tags em seus ambientes • Torna mais fácil a busca de recursos de um determinado ambiente • Pode ser utilizada para monitorar custos associado a um ambiente ou aplicação • Elastic Beanstalk automaticamente coloca tags nos ambientes: • Environment name • Environment ID
  32. 32. Conclusão • Elastic Beanstalk é a maneira mais simples e conveniente de subir aplicações na AWS • Possui recursos poderosos • Pague somente pelos recursos utilizados
  33. 33. Muito Obrigado!

×