Continuous Deployment na AWS

62
Continuous Deployment na AWS 23 de Setembro, 2015 São Paulo, Brasil.

Transcript of Continuous Deployment na AWS

Page 1: Continuous Deployment na AWS

Continuous Deployment na AWS

23 de Setembro, 2015São Paulo, Brasil.

Page 2: Continuous Deployment na AWS

Continuous Delivery x Continuous Deployment

Page 3: Continuous Deployment na AWS
Page 4: Continuous Deployment na AWS
Page 5: Continuous Deployment na AWS

União dos Times

Page 6: Continuous Deployment na AWS

● Continuous Deployment

● Continuous Integration

● Infra Estrutura Automatizada

Page 7: Continuous Deployment na AWS

Antes

Servidores com nomes.Na nuvem porémtratados como servidores fisicos

Page 8: Continuous Deployment na AWS

Temos que atualizar a versão de node em todos os nossos servidores.

Page 9: Continuous Deployment na AWS

SysAdmin

Page 10: Continuous Deployment na AWS

Precisamos de 3 ambientes para o novo projeto que irá para o ar em 1 semana

Page 11: Continuous Deployment na AWS

SysAdmin

Page 12: Continuous Deployment na AWS

Problema

Servidores Tratados como Pets

Configurações Manuais

Demora em lançar novos ambientes

Page 13: Continuous Deployment na AWS

Servidores tratados como gado

AWS AutoScaling Mode ON

Page 14: Continuous Deployment na AWS

Configurações de Infra Estrutura como Código

Receitas Chef

Page 15: Continuous Deployment na AWS

ops não esse tipo de chef !!

Page 16: Continuous Deployment na AWS
Page 17: Continuous Deployment na AWS

Uso do cookbook redguide/nodejs

https://github.com/redguide/nodejs

Configuração do ambiente é criada a partir de um único arquivo .json

Page 18: Continuous Deployment na AWS
Page 19: Continuous Deployment na AWS

Orquestração

● Fabric - http://www.fabfile.org/

● Ansible - http://www.ansible.com/

Page 20: Continuous Deployment na AWS

Lançar Novos Ambientes

Scripts python usando api da Amazon

Page 21: Continuous Deployment na AWS

Servidores Tratados como GadoConfigurações como código e aplicadas

automaticamenteAgilidade em lançar novos ambientes

Page 22: Continuous Deployment na AWS

Precisamos lançar 3 ambientes para o novo projeto que irá entrar no ar em 1 semana e temos que atualizar a versão de node em todos os nossos servidores.

Page 23: Continuous Deployment na AWS

SysAdmin

Page 24: Continuous Deployment na AWS

● Continuous Deployment

● Continuous Integration

● Infra Estrutura Automatizada

Page 25: Continuous Deployment na AWS

Continuous Integration

Prática de desenvolvimento onde cada desenvolvedor integra o seu código em um

repositório compartilhado, com builds e testes automatizados, detectando problemas e efetuando

correções rápidas.

Page 26: Continuous Deployment na AWS
Page 27: Continuous Deployment na AWS
Page 28: Continuous Deployment na AWS

Merge Hell Integration Hell

Page 29: Continuous Deployment na AWS
Page 30: Continuous Deployment na AWS
Page 31: Continuous Deployment na AWS

Qual?

Page 32: Continuous Deployment na AWS
Page 33: Continuous Deployment na AWS
Page 34: Continuous Deployment na AWS

● Suporte as principais linguagens de programação (PHP, Nodejs, Java, Python, Ruby, Go).

● Deploy totalmente integrado com AWS CodeDeploy, AWS S3 e muitos outros providers.

● Configurações simples.● Suporte a testes paralelos.● Databases (MySQL, MongoDB, PostgreSQL,

Redis, Memcached, SQLite e ElasticSearch).

Page 35: Continuous Deployment na AWS
Page 36: Continuous Deployment na AWS
Page 37: Continuous Deployment na AWS
Page 38: Continuous Deployment na AWS
Page 39: Continuous Deployment na AWS
Page 40: Continuous Deployment na AWS

● Continuous Deployment

● Continuous Integration

● Infra Estrutura Automatizada

Page 41: Continuous Deployment na AWS

Amazon CodeDeployRealiza o deploy de uma versão de aplicação, em um ou mais grupos de instâncias EC2 - via Autoscaling ou por tags EC2.

● Deploys automáticos● Minimo Downtime● Controle centralizado● Fácil de adotar● Uma configuração de deploy por

grupo/environment da aplicação● Liberdade (Scripting)● Configuração de hooks (appspec.yml)

Page 42: Continuous Deployment na AWS

Deployment Overview

Adicionamos um arquivo denominado Application Specification File (AppSpec) na raiz do projeto, ele é responsável por determinar as ações que o codedeploy irá executar durante o deploy.

Page 43: Continuous Deployment na AWS
Page 44: Continuous Deployment na AWS

Deployment Overview

Page 45: Continuous Deployment na AWS

Deployment Overview

Page 46: Continuous Deployment na AWS

Deployment Overview

Page 47: Continuous Deployment na AWS
Page 48: Continuous Deployment na AWS
Page 49: Continuous Deployment na AWS
Page 50: Continuous Deployment na AWS

+

Page 51: Continuous Deployment na AWS
Page 52: Continuous Deployment na AWS
Page 53: Continuous Deployment na AWS
Page 54: Continuous Deployment na AWS
Page 55: Continuous Deployment na AWS
Page 56: Continuous Deployment na AWS
Page 57: Continuous Deployment na AWS
Page 58: Continuous Deployment na AWS

Deploy completo!!Mas e se precisar de rollback?

Page 59: Continuous Deployment na AWS
Page 60: Continuous Deployment na AWS
Page 61: Continuous Deployment na AWS

● Deploys contínuos● Integração contínua● Builds e testes automatizados● Reduzida chances de erros nas

aplicações depois do deploy● Rollback sem crise

Page 62: Continuous Deployment na AWS

Obrigado@[email protected]