aws experience fortaleza: escalando sua aplicação web com beanstalk
TRANSCRIPT
![Page 1: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk](https://reader035.vdocuments.mx/reader035/viewer/2022081517/5874f5cc1a28ab917a8b7e01/html5/thumbnails/1.jpg)
© 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
![Page 2: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk](https://reader035.vdocuments.mx/reader035/viewer/2022081517/5874f5cc1a28ab917a8b7e01/html5/thumbnails/2.jpg)
Agenda
• O que é o Elastic Beanstalk?
• Primeiros Passos com o Elastic Beanstalk
• Melhores Práticas
• Conclusão
![Page 3: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk](https://reader035.vdocuments.mx/reader035/viewer/2022081517/5874f5cc1a28ab917a8b7e01/html5/thumbnails/3.jpg)
Porque nós contruímos o Elastic Beanstalk?
![Page 4: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk](https://reader035.vdocuments.mx/reader035/viewer/2022081517/5874f5cc1a28ab917a8b7e01/html5/thumbnails/4.jpg)
* As of 30 April 2016
2009
48
280
722
82
2011 2013 2015
Passo de inovação na AWSOuvimos nossos clientes e criamos o que eles precisam
![Page 5: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk](https://reader035.vdocuments.mx/reader035/viewer/2022081517/5874f5cc1a28ab917a8b7e01/html5/thumbnails/5.jpg)
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
![Page 6: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk](https://reader035.vdocuments.mx/reader035/viewer/2022081517/5874f5cc1a28ab917a8b7e01/html5/thumbnails/6.jpg)
O que é o Elastic Beanstalk?
![Page 7: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk](https://reader035.vdocuments.mx/reader035/viewer/2022081517/5874f5cc1a28ab917a8b7e01/html5/thumbnails/7.jpg)
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
![Page 8: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk](https://reader035.vdocuments.mx/reader035/viewer/2022081517/5874f5cc1a28ab917a8b7e01/html5/thumbnails/8.jpg)
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
![Page 9: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk](https://reader035.vdocuments.mx/reader035/viewer/2022081517/5874f5cc1a28ab917a8b7e01/html5/thumbnails/9.jpg)
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
![Page 10: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk](https://reader035.vdocuments.mx/reader035/viewer/2022081517/5874f5cc1a28ab917a8b7e01/html5/thumbnails/10.jpg)
Versionamento da aplicação e configuração
Configurações salvasGuarde as configurações dos seus ambientes para replicação futura
Versão das aplicaçõesVersões armazenadas no S3.Código pode vir do repositório Git.
![Page 11: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk](https://reader035.vdocuments.mx/reader035/viewer/2022081517/5874f5cc1a28ab917a8b7e01/html5/thumbnails/11.jpg)
Benefícios
Rápido e simples de começar
Produtividade para desenvolvedor
Escalabilidade automática
Total Controle dos Recursos
![Page 12: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk](https://reader035.vdocuments.mx/reader035/viewer/2022081517/5874f5cc1a28ab917a8b7e01/html5/thumbnails/12.jpg)
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
![Page 13: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk](https://reader035.vdocuments.mx/reader035/viewer/2022081517/5874f5cc1a28ab917a8b7e01/html5/thumbnails/13.jpg)
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
![Page 14: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk](https://reader035.vdocuments.mx/reader035/viewer/2022081517/5874f5cc1a28ab917a8b7e01/html5/thumbnails/14.jpg)
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
![Page 15: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk](https://reader035.vdocuments.mx/reader035/viewer/2022081517/5874f5cc1a28ab917a8b7e01/html5/thumbnails/15.jpg)
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
![Page 16: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk](https://reader035.vdocuments.mx/reader035/viewer/2022081517/5874f5cc1a28ab917a8b7e01/html5/thumbnails/16.jpg)
Casos de Uso Comuns
Websites
API backends
Mobile backends
Processamento assíncrono
![Page 17: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk](https://reader035.vdocuments.mx/reader035/viewer/2022081517/5874f5cc1a28ab917a8b7e01/html5/thumbnails/17.jpg)
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
![Page 18: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk](https://reader035.vdocuments.mx/reader035/viewer/2022081517/5874f5cc1a28ab917a8b7e01/html5/thumbnails/18.jpg)
Primeiros passos com o Elastic Beanstalk
![Page 19: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk](https://reader035.vdocuments.mx/reader035/viewer/2022081517/5874f5cc1a28ab917a8b7e01/html5/thumbnails/19.jpg)
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
![Page 20: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk](https://reader035.vdocuments.mx/reader035/viewer/2022081517/5874f5cc1a28ab917a8b7e01/html5/thumbnails/20.jpg)
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
![Page 21: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk](https://reader035.vdocuments.mx/reader035/viewer/2022081517/5874f5cc1a28ab917a8b7e01/html5/thumbnails/21.jpg)
Demo: Implantando uma aplicação no ElasticBeanstalk via Console
![Page 22: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk](https://reader035.vdocuments.mx/reader035/viewer/2022081517/5874f5cc1a28ab917a8b7e01/html5/thumbnails/22.jpg)
Implantando uma aplicação via CLIWorkflow 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 initCrie seu app Elastic Beanstalk 0
3
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
![Page 23: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk](https://reader035.vdocuments.mx/reader035/viewer/2022081517/5874f5cc1a28ab917a8b7e01/html5/thumbnails/23.jpg)
Atualizando via CLIWorkflow 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
![Page 24: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk](https://reader035.vdocuments.mx/reader035/viewer/2022081517/5874f5cc1a28ab917a8b7e01/html5/thumbnails/24.jpg)
Melhores Práticas
![Page 25: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk](https://reader035.vdocuments.mx/reader035/viewer/2022081517/5874f5cc1a28ab917a8b7e01/html5/thumbnails/25.jpg)
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;
![Page 26: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk](https://reader035.vdocuments.mx/reader035/viewer/2022081517/5874f5cc1a28ab917a8b7e01/html5/thumbnails/26.jpg)
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
![Page 27: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk](https://reader035.vdocuments.mx/reader035/viewer/2022081517/5874f5cc1a28ab917a8b7e01/html5/thumbnails/27.jpg)
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
![Page 28: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk](https://reader035.vdocuments.mx/reader035/viewer/2022081517/5874f5cc1a28ab917a8b7e01/html5/thumbnails/28.jpg)
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
![Page 29: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk](https://reader035.vdocuments.mx/reader035/viewer/2022081517/5874f5cc1a28ab917a8b7e01/html5/thumbnails/29.jpg)
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
![Page 30: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk](https://reader035.vdocuments.mx/reader035/viewer/2022081517/5874f5cc1a28ab917a8b7e01/html5/thumbnails/30.jpg)
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
![Page 31: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk](https://reader035.vdocuments.mx/reader035/viewer/2022081517/5874f5cc1a28ab917a8b7e01/html5/thumbnails/31.jpg)
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
![Page 32: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk](https://reader035.vdocuments.mx/reader035/viewer/2022081517/5874f5cc1a28ab917a8b7e01/html5/thumbnails/32.jpg)
Conclusão
• Elastic Beanstalk é a maneira mais simples e
conveniente de subir aplicações na AWS
• Possui recursos poderosos
• Pague somente pelos recursos utilizados
![Page 33: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk](https://reader035.vdocuments.mx/reader035/viewer/2022081517/5874f5cc1a28ab917a8b7e01/html5/thumbnails/33.jpg)
Muito Obrigado!