Introdução a CI e CD e CloudFormation (Reinaldo Pinto)

Post on 09-Jan-2017

54 views 0 download

Transcript of Introdução a CI e CD e CloudFormation (Reinaldo Pinto)

DevOps: Introdução a CI, CD e Cloud Formation.Vamos versionar nossa infraestrutura e fazer Deploy usando o Jenkão.

Reinaldo Pinto

O que é DevOps?

DevOpsé uma cultura, movimento ou prática que enfatiza a colaboração e comunicação de desenvolvedores de software e outros profissionais de TI ao automatizar o processo de entrega de software e mudanças de infraestrutura. Ele visa estabelecer uma cultura e ambiente na qual a construção, teste e entrega de software pode acontecer com rapidez, frequência e confiabilidade.

O que é CAMS?

Criado por John Willis e Damon Edwards em 2010Culture (Cultura: começa nas pessoas)Automation (Automação: utilizar ferramentas para

entregarmais rápido)Measurement (Medição: saber o que precisa ser feito)Sharing (Compartilhamento: colaboração e

transparência,resolver problemas juntos)

Por quê?Para atender a demanda. DevOps ajuda a melhorar a integração dos times para entregar com agilidade, mantendo a qualidade e agregando valor para o negócio.

O que é CI (Integração Contínua)?

“Integração Contínua é uma prática de desenvolvimento de software na qual os membros de um time integram seu trabalho frequentemente.Geralmente cada pessoa integra pelo menos diariamente – podendo haver múltiplas integrações por dia. Cada integração é verificada por um build automatizado (incluindo testes) para detectar erros de integração o mais rápido possível. Muitos times acham que essa abordagem leva a uma significante redução nos problemas de integração e permite que um time desenvolva software coeso mais rapidamente.” Martin Fowler

Definição

Principais benefíciosDiminuir bugs;Feedback instantâneo;Build automático e coeso (morre o build manual);Validar e fazer a integração do novo código;Necessário para que CD (entrega contínua) aconteça.

Testes???

Testes???

O que é CD (Entrega Contínua)?

A Entrega Contínua é quando o pacote está pronto para entregar em um ambiente estável. Na prática, é quando você entrega o software em um ambiente como HML para uma massa de usuários, sendo eles testers, área de produtos e/ou stakeholders (cliente final).

Definição

Principais benefíciosObter feedback rápido e automatizado sobre o quanto o meu código está pronto para produção, sempre que tem uma release (mudança).Fazer deploy automático da última versão do seu código para produção por meio do acionamento de um botão.Entrega rápida para os stakeholders.

CD (Entrega Contínua) na práticaPipeline, “CF-AWS-Accept” é um passo manual. (Aguarda a ação de um usuário):

CD (Entrega Contínua) na práticaPipeline executado com sucesso:

Satisfazendo a condição de Entrega Contínua, o código pode

ir para produção?

O que é CloudFormation?

Definição"O AWS CloudFormation oferece aos desenvolvedores e administradores de sistemas uma maneira fácil de criar e gerenciar um grupo de recursos relacionados à AWS, e fornecê-los e atualizá-los de uma forma organizada e previsível"

Na práticaInfraestrutura como código.{"Description" : "Minha infra.", "Instance" : {

"KeyName" : "reinaldosouza", "InstanceType" : "t2.micro", "ImageId" : ""ami-7f418316", "SecurityGroupIds" : "sg-457f2538", "SubnetId" : "subnet-30185879" },"Outputs" : {

"InstanceId" : { }, "PublicIP" : { },"PublicDNS" : { } }}

Fácil, né?

BenefíciosVersionamento do infra;Agilidade no Deploy;Controle de dependência;Outputs.

www.concretesolutions.com.br

Rio de Janeiro – Rua São José, 90 – cj. 2121Centro – (21) 2240-2030

São Paulo - Av. Nações Unidas, 11.541 3º andar - Brooklin - (11) 4119-0449

Ajudamos empresas a criar produtos digitais de sucesso