View
156
Download
0
Category
Preview:
Citation preview
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Glauber Gallego - Arquiteto de Soluções
Setembro 2016
Escalando suas aplicações Web com Elastic BeanstalkAWS Experience Porto Alegre 2016
Agenda
• O que é o Elastic Beanstalk?
• Primeiros Passos com o Elastic Beanstalk
• Demo
• Melhores Práticas
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 disponível
Escalabilidade automática de aplicações
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
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 infra necessária: balanceador de carga, auto scaling, security groups, bds (opcional), etc.
• Provê um único domínio para aplicação: app.elasticbeanstalk.com)
Stack de Infraestrutura
Versionamento da aplicação e configuração
Configurações salvasGuarde as conf. dos seus ambientes para replicação futura
Versão das appsVersões armazenadas no S3. Código pode vir do 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 para implantar uma aplicação
01
02
03
04
Região
Tipo de Stack
Instância única Balanceador e AutoScalingou
Banco de Dados (RDS) Optional
Seu código Plataformas
Como implantar aplicações
1. Com o AWS Management Console
2. Com o AWS Toolkit para Eclipse ou Visual Studio IDE
3. Com o EB CLI (command line)
Implantando uma aplicação via CLI
$ git clone https://github.com/awslabs/eb-node-express-sample.git
Baixe uma aplicação exemplo:2
$ eb initCrie seu app3
Siga os prompts e configure o ambiente
4
5 Crie os recursos e lance a aplicação:$ eb create
$ pip install --upgrade awsebcli
Instale o EB CLI:1
Atualizando via CLI
Atualize seu código1
$ git add .$ git commit –m “v2.0”$ eb deploy
Adicione e faça o commit no repositório2
Abra a aplicação quando o deploy terminar:3$ eb open
Demo: Implantando uma aplicação no ElasticBeanstalk via Console
Demo: Implantando uma aplicação no ElasticBeanstalk via CLI
Demo: Interagindo com a AWS via Eclipse
Melhores Práticas
Teste e faça o tunning de sua aplicação
• Escolha as métricas de performance que você deseja otimizar (ex: latência, usuários concorrentes, 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 tunning do backend (DynamoDB, RDS, etc.) para performance ótima;
Implantação – Rolling updates
1. Defina a % de instâncias 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 app 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: ambiente com 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!
Recommended