Continuous Deployment na AWS

Post on 20-Mar-2017

484 views 1 download

Transcript of Continuous Deployment na AWS

Continuous Deployment na AWS

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

Continuous Delivery x Continuous Deployment

União dos Times

● Continuous Deployment

● Continuous Integration

● Infra Estrutura Automatizada

Antes

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

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

SysAdmin

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

SysAdmin

Problema

Servidores Tratados como Pets

Configurações Manuais

Demora em lançar novos ambientes

Servidores tratados como gado

AWS AutoScaling Mode ON

Configurações de Infra Estrutura como Código

Receitas Chef

ops não esse tipo de chef !!

Uso do cookbook redguide/nodejs

https://github.com/redguide/nodejs

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

Orquestração

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

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

Lançar Novos Ambientes

Scripts python usando api da Amazon

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

automaticamenteAgilidade em lançar novos ambientes

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.

SysAdmin

● Continuous Deployment

● Continuous Integration

● Infra Estrutura Automatizada

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.

Merge Hell Integration Hell

Qual?

● 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).

● Continuous Deployment

● Continuous Integration

● Infra Estrutura Automatizada

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)

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.

Deployment Overview

Deployment Overview

Deployment Overview

+

Deploy completo!!Mas e se precisar de rollback?

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

aplicações depois do deploy● Rollback sem crise

Obrigado@nullcknullck@gmail.com