7Masters - Devops - Do legado ao ci cd em 7 minutos

Post on 14-Apr-2017

99 views 2 download

Transcript of 7Masters - Devops - Do legado ao ci cd em 7 minutos

Do legado ao CI/CD em 7 minutos

7Masters DevOps

Ter alguma coisa é melhor que ter nada

Software Legado• Se tiver controle de versão, todo mundo faz commit

no master

• Não possui testes

• Precisa pedir para alguém subir em produção

• Novos devs demoram dias para conseguirem rodar em suas máquinas

CI

–Grady Booch (1991)

“continuous integration (CI) is the practice of merging all developer working copies to a

shared mainline several times a day”

–Bob

“continuous integration (CI) é a prática de: Devs fazem commit, servidor de integração

testa”

Como você testaria na sua máquina?

Transforme isso em scripts

–DEV muito ocupado

“Não tenho tempo para fazer testes.”

Testes de comportamento com

selenium

Jenkinsapt-get install jenkins

Para todo commit, a task de teste vai rodar

Você precisa de um clone da produção

Parabéns, você tem CISó não ache que isso significa que acabou ;-)

–DEV com preguiça

“Mas meu banco muda toda hora e não quero manter várias instâncias.”

Docker ao resgate

• Docker Compose sobe um conjunto de containers

• Migrations criam o schema do banco de dados

• Seeders inserem uma pequena quantidade de dados selecionados no banco de dados

• Selenium executa os testes

• Tudo isso pode ser executado por um simples bash script

PlusUm novo dev tem sua máquina configurada em minutos

CD

–Wikipedia

“Continuos Delivery is: teams produce software in short cycles, ensuring that the software can

be reliably released at any time”

–Bob

“Continuos Delivery é: Devs fazem commit, servidor de integração testa e faz deploy (sob

demanda).”

Separar código de produção do de desenvolvimento

Gitflow

• develop = código em desenvolvimento

• feature/alguma-coisa = código em desenvolvimento isolado

• release/1.2.3 = código pronto para beta

• hotfix/1.2.3 = código de correção de bug de produção

• master = código para produção

Deploy fácil = git pull na branch master

Crie uma task que pode ser executada se a anterior deu certo

Parabéns, você tem CDSó não ache que isso significa que acabou ;-)

@GABRIELRCOUTO

GITHUB.COM/GABRIELRCOUTO

TRABALHE COMIGO!

CONTATO@MEMED.COM.BR