Este documento resume três ferramentas da AWS para implantação e gerenciamento de aplicações na nuvem: Elastic Beanstalk, CloudFormation e OpsWorks. O Elastic Beanstalk permite implantação rápida de aplicações sem configuração complexa de infraestrutura. O CloudFormation fornece controle declarativo para criar e gerenciar recursos AWS por meio de modelos. O AWS OpsWorks permite gerenciamento de aplicações usando camadas e receitas do Chef.
Boas práticas de programação com Object Calisthenics
Gerenciando e implantando suas aplicações na Nuvem da AWS
1. Gerenciando e implantando suas
aplicações na Nuvem da AWS: Elastic
Beanstalk, OpsWorks e CloudFormation
José Papo
AWS Tech Evangelist
@josepapo
2.
3. 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)
4. Compute Storage
AWS Global Infrastructure
Database
App Services
Deployment & Management
Networking
Modelo de Referência
5.
6. Como facilitar o deploy e controle do que é
feito nos ambientes de dev, test e produção?
8. 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 CloudFormationAWS OpsWorks
“Eu quero minha
solução funcionando
com DevOps”
10. 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 CloudFormationAWS OpsWorks
“Eu quero minha
solução funcionando
com DevOps”
11. Deploy e gestão rápida de apps na AWS…
Elastic Beanstalk CloudFormationOpsWorks
26. 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
27. Empacotamento como usual…
Elastic Beanstalk CloudFormation
Java .war file
Microsoft Web
Deploy package
PHP .zip file
Python .zip file
GitIDE plugins
OpsWorks
28. Deploy e updates via Console
Elastic Beanstalk CloudFormationOpsWorks
29. 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
47. E acesso completo aos recursos do Elastic
Beanstalk caso necessário
Instancias EC2, AMIs, AutoScaling groups…
48. 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 CloudFormationAWS OpsWorks
“Eu quero minha
solução funcionando
com DevOps”
49. 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
BackupCDN
Compute
Storage
CloudFormation – framework de automação
OpsWorks
50. 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
51. 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
54. 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
55. NASA TV & Curiosity Route 53 DNS
Multi-region & AZ
Elastic Load Balancing
Amazon Live Streaming
Cloud Front
Cloud Formation
56. NASA TV & Curiosity Route 53 DNS
Multi-region & AZ
Elastic Loadbalancing
Amazon Live Streaming
Cloud Front
Cloud FormationTemplate ELBs
~100 servidores
Nginx para cache
2-3 servidores Ngin
para aplicação
Stack
Template CloudFormation
define a infraestrutura de
vídeos e imagens
57. 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
58. 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 CloudFormationAWS OpsWorks
“Eu quero minha
solução funcionando
com DevOps”
59. 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
60. Criação simples de stacks com definição de camadas
Elastic Beanstalk CloudFormationOpsWorks
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
62. Scaling and auto-healing
Elastic Beanstalk CloudFormationOpsWorks
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%
69. 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)