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

33
© 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

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

Page 1: 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

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

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

Porque nós contruímos o Elastic Beanstalk?

Page 4: AWS Experience Fortaleza: Escalando sua aplicação Web com 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

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

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

O que é o Elastic Beanstalk?

Page 7: AWS Experience Fortaleza: Escalando sua aplicação Web com 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

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

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

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

Becherer, Lou Ann
Must change www.mywebsite.com to www.example.com. www.mywebsite.com is a we site belonging to someone else.
Becherer, Lou Ann
Is this the service name or generic autoscaling?
Page 10: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk

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

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

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

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

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

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

Casos de Uso Comuns

Websites

API backends

Mobile backends

Processamento assíncrono

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

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

Primeiros passos com o Elastic Beanstalk

Page 19: AWS Experience Fortaleza: Escalando sua aplicação Web com 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

Becherer, Lou Ann
Is autoscaling generic or the service (Auto Scaling). Should it be consistent with reference on preceding slide.
Becherer, Lou Ann
Are 0s in numbered list necessary? The standard is without the 0.
Page 20: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk

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

Demo: Implantando uma aplicação no ElasticBeanstalk via Console

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

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

Becherer, Lou Ann
Are the 0s necessary in the numbered list?
Page 23: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk

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

Becherer, Lou Ann
Are 0s necessary?
Page 24: AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk

Melhores Práticas

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

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

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

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

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

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

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

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

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

Muito Obrigado!