AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk
-
Upload
amazon-web-services-latam -
Category
Technology
-
view
63 -
download
0
Transcript of AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk
© 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
Agenda
• O que é o Elastic Beanstalk?
• Primeiros Passos com o Elastic Beanstalk
• Melhores Práticas
• Conclusão
Porque nós contruímos o Elastic Beanstalk?
* 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
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
O que é o Elastic Beanstalk?
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
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
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
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.
Benefícios
Rápido e simples de começar
Produtividade para desenvolvedor
Escalabilidade automática
Total Controle dos Recursos
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
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
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
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
Casos de Uso Comuns
Websites
API backends
Mobile backends
Processamento assíncrono
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
Primeiros passos com o Elastic Beanstalk
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
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
Demo: Implantando uma aplicação no ElasticBeanstalk via Console
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
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
Melhores Práticas
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;
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
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
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
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
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
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
Conclusão
• Elastic Beanstalk é a maneira mais simples e
conveniente de subir aplicações na AWS
• Possui recursos poderosos
• Pague somente pelos recursos utilizados
Muito Obrigado!