gerenciando e implantando suas aplicações na nuvem da aws

72
Gerenciando e implantando suas aplicações na Nuvem da AWS: Elastic Beanstalk, OpsWorks e CloudFormation José Papo AWS Tech Evangelist @josepapo

Upload: amazon-web-services-latin-america

Post on 02-Jul-2015

755 views

Category:

Technology


2 download

DESCRIPTION

Palestra que trata das soluções da AWS que facilitam a gestão e deploy de aplicações na Nuvem: Elastic Beanstalk, OpsWorks e CloudFormation

TRANSCRIPT

Page 1: Gerenciando e implantando suas aplicações na Nuvem da AWS

Gerenciando e implantando suas

aplicações na Nuvem da AWS: Elastic

Beanstalk, OpsWorks e CloudFormation

José Papo

AWS Tech Evangelist

@josepapo

Page 2: Gerenciando e implantando suas aplicações na Nuvem da AWS
Page 3: Gerenciando e implantando suas aplicações na Nuvem da AWS

Infraestrutura Global US West

(Northern

California)

US East (Northern

Virginia)

EU (Ireland)

Asia

Pacific (Singapore)

Asia

Pacific (Tokyo)

Regiões AWS

Pontos Edge AWS

GovCloud (US ITAR

Region)

US West (Oregon)

South

America (Sao Paulo)

Asia

Pacific (Australia)

Page 4: Gerenciando e implantando suas aplicações na Nuvem da AWS

Compute Storage

AWS Global Infrastructure

Database

App Services

Deployment & Management

Networking

Modelo de Referência

Page 5: Gerenciando e implantando suas aplicações na Nuvem da AWS
Page 6: Gerenciando e implantando suas aplicações na Nuvem da AWS

Como facilitar o deploy e controle do que é feito nos ambientes de dev, test e produção?

Page 7: Gerenciando e implantando suas aplicações na Nuvem da AWS

Alto nível, pacotes simples

Controle declarativo de

ajuste fino

“Eu só quero minha app funcionando!”

“Eu quero ter controle e também versionar todo o

meu deploy de data center como se fosse um

arquivo de config”

Page 8: Gerenciando e implantando suas aplicações na Nuvem da AWS

Alto nível, pacotes simples

Controle declarativo de

ajuste fino

“Eu só quero minha app funcionando!”

“Eu quero ter controle e também versionar todo o

meu deploy de data center como se fosse um

arquivo de config”

Elastic Beanstalk

CloudFormation

AWS OpsWorks

“Eu quero minha solução funcionando

com DevOps”

Page 9: Gerenciando e implantando suas aplicações na Nuvem da AWS

aws.amazon.com/pt/application-management/

Page 10: Gerenciando e implantando suas aplicações na Nuvem da AWS

Alto nível, pacotes simples

Controle declarativo de

ajuste fino

“Eu só quero minha app funcionando!”

“Eu quero ter controle e também versionar todo o

meu deploy de data center como se fosse um

arquivo de config”

Elastic Beanstalk

CloudFormation

AWS OpsWorks

“Eu quero minha solução funcionando

com DevOps”

Page 11: Gerenciando e implantando suas aplicações na Nuvem da AWS

Deploy e gestão rápida de apps na AWS…

Elastic Beanstalk

CloudFormation

OpsWorks

Page 12: Gerenciando e implantando suas aplicações na Nuvem da AWS

Múltiplas plataformas

Elastic Beanstalk

CloudFormation

.Net PHP

Java Python

Ruby Node.js

OpsWorks

Page 13: Gerenciando e implantando suas aplicações na Nuvem da AWS
Page 14: Gerenciando e implantando suas aplicações na Nuvem da AWS

Só o pacote da aplicação é necessário

Elastic Beanstalk

CloudFormation

OpsWorks

Page 15: Gerenciando e implantando suas aplicações na Nuvem da AWS

Beanstalk automaticamente cria o ambiente…

Elastic Beanstalk

CloudFormation

Tools

Page 16: Gerenciando e implantando suas aplicações na Nuvem da AWS

…adicioando o Elastic Load Balancer…

Elastic Beanstalk

CloudFormation

OpsWorks

Page 17: Gerenciando e implantando suas aplicações na Nuvem da AWS

…Auto Scaling groups

Elastic Beanstalk

CloudFormation

OpsWorks

Page 18: Gerenciando e implantando suas aplicações na Nuvem da AWS

…e lançando instancias

Elastic Beanstalk

CloudFormation

OpsWorks

Page 19: Gerenciando e implantando suas aplicações na Nuvem da AWS

…tudo integrado no Elastic Beanstalk

Elastic Beanstalk

CloudFormation

OpsWorks

Page 20: Gerenciando e implantando suas aplicações na Nuvem da AWS

…e publicado com um CNAME

Elastic Beanstalk

CloudFormation

OpsWorks

Page 21: Gerenciando e implantando suas aplicações na Nuvem da AWS

…com logs e versões da app armazenados no S3

Elastic Beanstalk

CloudFormation

OpsWorks

Page 22: Gerenciando e implantando suas aplicações na Nuvem da AWS

E os dados?

Page 23: Gerenciando e implantando suas aplicações na Nuvem da AWS
Page 24: Gerenciando e implantando suas aplicações na Nuvem da AWS

Como você cria uma app para o AWS ElasticBeanstalk?

Page 25: Gerenciando e implantando suas aplicações na Nuvem da AWS

Como qualquer outra app!

Page 26: Gerenciando e implantando suas aplicações na Nuvem da AWS

Sua aplicação sem dependências específicas ao ambiente

Elastic Beanstalk

CloudFormation

Código enviado ao Beanstalk

Código pode ser baixado e

usado localmente

OpsWorks

Page 27: Gerenciando e implantando suas aplicações na Nuvem da AWS

Empacotamento como usual…

Elastic Beanstalk

CloudFormation

Java .war file

Microsoft Web

Deploy package

PHP .zip file

Python .zip file

Git IDE plugins

OpsWorks

Page 28: Gerenciando e implantando suas aplicações na Nuvem da AWS

Deploy e updates via Console

Elastic Beanstalk

CloudFormation

OpsWorks

Page 29: Gerenciando e implantando suas aplicações na Nuvem da AWS

Wizards e ferramentas de linha de comando

Elastic Beanstalk

CloudFormation

CheckDNSAvailability elastic-beanstalk-check-dns-availability

CreateApplication elastic-beanstalk-create-application

CreateApplicationVersion

elastic-beanstalk-create-application-version

CreateEnvironment

elastic-beanstalk-create-environment

eb init wizard para inicializar uma aplicação

eb start/stop iniciar/desligar uma aplicação

eb update

atualizar uma versão de aplicação

eb status

verificar status de uma aplicação

OpsWorks

Page 30: Gerenciando e implantando suas aplicações na Nuvem da AWS

Integração com Eclipse

Elastic Beanstalk

CloudFormation

OpsWorks

Page 31: Gerenciando e implantando suas aplicações na Nuvem da AWS

Elastic Beanstalk

CloudFormation

OpsWorks Integração com Eclipse

Page 32: Gerenciando e implantando suas aplicações na Nuvem da AWS

Elastic Beanstalk

CloudFormation

OpsWorks Integração com Eclipse

Page 33: Gerenciando e implantando suas aplicações na Nuvem da AWS

Elastic Beanstalk

CloudFormation

OpsWorks Integração com Eclipse

Page 34: Gerenciando e implantando suas aplicações na Nuvem da AWS

Integração com Visual Studio

Elastic Beanstalk

CloudFormation

OpsWorks

Page 35: Gerenciando e implantando suas aplicações na Nuvem da AWS

Elastic Beanstalk

CloudFormation

OpsWorks Integração com Visual Studio

Page 36: Gerenciando e implantando suas aplicações na Nuvem da AWS

Elastic Beanstalk

CloudFormation

OpsWorks Integração com Visual Studio

Page 37: Gerenciando e implantando suas aplicações na Nuvem da AWS

Elastic Beanstalk

CloudFormation

OpsWorks Integração com Visual Studio

Page 38: Gerenciando e implantando suas aplicações na Nuvem da AWS

Elastic Beanstalk

CloudFormation

OpsWorks Integração com Visual Studio

Page 39: Gerenciando e implantando suas aplicações na Nuvem da AWS

Elastic Beanstalk

CloudFormation

OpsWorks Integração com Visual Studio

Page 40: Gerenciando e implantando suas aplicações na Nuvem da AWS

Elastic Beanstalk

CloudFormation

OpsWorks Integração com Visual Studio

Page 41: Gerenciando e implantando suas aplicações na Nuvem da AWS

Integração com Git

Elastic Beanstalk

CloudFormation

OpsWorks

Page 42: Gerenciando e implantando suas aplicações na Nuvem da AWS

Configurações do container

Elastic Beanstalk

CloudFormation

OpsWorks

Page 43: Gerenciando e implantando suas aplicações na Nuvem da AWS

Elastic Beanstalk

CloudFormation

OpsWorks Configurações do container

Page 44: Gerenciando e implantando suas aplicações na Nuvem da AWS

Elastic Beanstalk

CloudFormation

OpsWorks Configurações do container

Page 45: Gerenciando e implantando suas aplicações na Nuvem da AWS

Elastic Beanstalk

CloudFormation

OpsWorks Configurações do container

Page 46: Gerenciando e implantando suas aplicações na Nuvem da AWS

Elastic Beanstalk

CloudFormation

OpsWorks Configurações do container

Page 47: Gerenciando e implantando suas aplicações na Nuvem da AWS

E acesso completo aos recursos do Elastic Beanstalk caso necessário

Instancias EC2, AMIs, AutoScaling groups…

Page 48: Gerenciando e implantando suas aplicações na Nuvem da AWS

Alto nível, pacotes simples

Controle declarativo de

ajuste fino

“Eu só quero minha app funcionando!”

“Eu quero ter controle e também versionar todo o

meu deploy de data center como se fosse um

arquivo de config”

Elastic Beanstalk

CloudFormation

AWS OpsWorks

“Eu quero minha solução funcionando

com DevOps”

Page 49: Gerenciando e implantando suas aplicações na Nuvem da AWS

Elastic Beanstalk

CloudFormation

CloudFormation

Uma interface consistente de scripts para criar/configurar

recursos AWS

Um framework para gestão de ciclo de vida de recursos criados

usando scripts

Security Scaling

Database

Networking Monitoring

Messaging

Workflow

DNS

Load Balancing

Backup CDN

Compute

Storage

CloudFormation – framework de automação

OpsWorks

Page 50: Gerenciando e implantando suas aplicações na Nuvem da AWS

CloudFormation components & terminology

Elastic Beanstalk

CloudFormation

Template CloudFormation

Stack

JSON

Parametros

Recursos

Ações

Serviços AWS configurados

Suporta os principais serviços

Customizável

Framework

Criação do Stack

Atualizações do Stack

Detecção de erros e rollback

OpsWorks

Page 51: Gerenciando e implantando suas aplicações na Nuvem da AWS

Template examples

Elastic Beanstalk

CloudFormation

Template {

"Parameters" : {

"KeyName" : {

"Description" : "Name of an existing EC2 KeyPair to enable SSH

access to the instance",

"Type" : "String"

}

},

}

Exemplo: Recebendo parametros

OpsWorks

JSON

Parametros

Recursos

Ações

Page 52: Gerenciando e implantando suas aplicações na Nuvem da AWS

Template examples

Elastic Beanstalk

CloudFormation

Template {

"AWSTemplateFormatVersion" : "2010-09-09",

"Description" : "Create RDS with fixed username and password",

"Resources" : {

"MyDB" : {

"Type" : "AWS::RDS::DBInstance",

"Properties" : {

"AllocatedStorage" : "5",

"DBInstanceClass" : "db.m1.small",

"Engine" : "MySQL",

"EngineVersion" : "5.5",

"MasterUsername" : "MyName",

"MasterUserPassword" : "MyPassword"

}

}

}

}

Exemplo: Criando uma instancia RDS

OpsWorks

JSON

Parametros

Recursos

Ações

Page 53: Gerenciando e implantando suas aplicações na Nuvem da AWS

Template examples

Elastic Beanstalk

CloudFormation

Template "AWS::CloudFormation::Init" : {

"config" : {

"packages" : {

"yum" : {

"mysql" : [],

"mysql-server" : [],

"httpd" : [],

"php" : [],

"php-mysql" : []

}

},

"sources" : {

"/var/www/html" : "https://s3.amazonaws.com/

cloudformation-examples/

CloudFormationPHPSample.zip"

},

Exemplo: Instalando software

OpsWorks

JSON

Parametros

Recursos

Ações

Page 54: Gerenciando e implantando suas aplicações na Nuvem da AWS

Benefícios de ambientes definidos por scripts

Elastic Beanstalk

CloudFormation

Template

Definição procedural Crie um stack

completo programaticamente

Configuração conhecida Armazene os scripts no controle de versões

Dirigido por parametros Templates dinâmicos e

dirigidos pela equipe DevOps

Colaboração Compartilhe templates de maneira simples

OpsWorks

Page 55: Gerenciando e implantando suas aplicações na Nuvem da AWS

NASA TV & Curiosity Route 53 DNS Multi-region & AZ

Elastic Load Balancing Amazon Live Streaming

Cloud Front Cloud Formation

Page 56: Gerenciando e implantando suas aplicações na Nuvem da AWS

NASA TV & Curiosity Route 53 DNS Multi-region & AZ

Elastic Loadbalancing Amazon Live Streaming

Cloud Front Cloud Formation

Template ELBs

~100 servidores Nginx para cache

2-3 servidores Nginx para aplicação

Stack

Template CloudFormation define a infraestrutura de

vídeos e imagens

Page 57: Gerenciando e implantando suas aplicações na Nuvem da AWS

NASA TV & Curiosity Route 53 DNS Multi-region & AZ

Elastic Loadbalancing Amazon Live Streaming

Cloud Front Cloud Formation

Com a demanda crescente é possível criar novos stacks em diferentes AZs ou regiões com

um clique ou programaticamente

Rollout complexo feito em apenas um

clique

Page 58: Gerenciando e implantando suas aplicações na Nuvem da AWS

Alto nível, pacotes simples

Controle declarativo de

ajuste fino

“Eu só quero minha app funcionando!”

“Eu quero ter controle e também versionar todo o

meu deploy de data center como se fosse um

arquivo de config”

Elastic Beanstalk

CloudFormation

AWS OpsWorks

“Eu quero minha solução funcionando

com DevOps”

Page 59: Gerenciando e implantando suas aplicações na Nuvem da AWS

Solução DevOps poderosa com suporte a Chef

Elastic Beanstalk

CloudFormation

Stack Layers Management

Ambiente

gerenciado

Definição do ambiente

Serviços de

gestão

Escalabilidade, clonagem de

ambientes, self healing

Coleção de

recursos

Camada de aplicação, de base de dados, etc

OpsWorks

Apps

Os ativos de

aplicação

Código-fonte ou executáveis para

implantar em uma camada

Page 60: Gerenciando e implantando suas aplicações na Nuvem da AWS

Criação simples de stacks com definição de camadas

Elastic Beanstalk

CloudFormation

OpsWorks

Layers

Load balancing

HA Proxy ou Elastic Load Balancers

Container de aplicação

Static, Node.js, Rails, PHP, etc

Camada de banco de dados

MySQL, SQL Server, Oracle, etc

Page 61: Gerenciando e implantando suas aplicações na Nuvem da AWS

Elastic Beanstalk

CloudFormation

OpsWorks

Layers Ganglia

MemCached

Camadas customizadas

+

Criação simples de stacks com definição de camadas

Page 62: Gerenciando e implantando suas aplicações na Nuvem da AWS

Scaling and auto-healing

Elastic Beanstalk

CloudFormation

OpsWorks

Auto healing

Troca de uma instancia com problemas mesmo

sem escalabilidade

i.e. sempre manter 3 nós em 3 AZs

Time based scaling

Criar uma nova instancia EC2 em horários determinados

i.e. executa algumas instancias apenas em dias ou horas específicas

Load based scaling

Adicionar e remover instancias com base em

regras de carga

i.e. cria novas instancias quando a CPU passar de 80%

Page 63: Gerenciando e implantando suas aplicações na Nuvem da AWS

Escalabilidade e auto-healing

Elastic Beanstalk

CloudFormation

OpsWorks

Page 64: Gerenciando e implantando suas aplicações na Nuvem da AWS

Escalabilidade e auto-healing

Elastic Beanstalk

CloudFormation

OpsWorks Lo

ad b

ased

Ti

me

bas

ed

Page 65: Gerenciando e implantando suas aplicações na Nuvem da AWS

Implantação de aplicações

Elastic Beanstalk

CloudFormation

OpsWorks

Page 66: Gerenciando e implantando suas aplicações na Nuvem da AWS

Elastic Beanstalk

CloudFormation

OpsWorks Implantação de aplicações

Page 67: Gerenciando e implantando suas aplicações na Nuvem da AWS

Elastic Beanstalk

CloudFormation

OpsWorks Implantação de aplicações

Page 68: Gerenciando e implantando suas aplicações na Nuvem da AWS

Customização com chef recipes

Elastic Beanstalk

CloudFormation

OpsWorks

Page 69: Gerenciando e implantando suas aplicações na Nuvem da AWS

Inicie rapidamente com Beanstalk (controle o caos)

Controle granular e script com CloudFormation

(especificações do data center em script)

Gerencie com camadas e recipes Chef com OpsWorks

(controle com customização Chef)

Page 70: Gerenciando e implantando suas aplicações na Nuvem da AWS

aws.amazon.com/pt/application-management

Saiba mais em…

Page 71: Gerenciando e implantando suas aplicações na Nuvem da AWS

RECURSOS TÉCNICOS

awshub.com.br

Page 72: Gerenciando e implantando suas aplicações na Nuvem da AWS

OBRIGADO! aws.typepad.com/brasil

slideshare.net/AmazonWebServicesLATAM

José Papo

AWS Tech Evangelist

@josepapo