7Masters - Devops - Do legado ao ci cd em 7 minutos
-
Upload
imasters -
Category
Technology
-
view
97 -
download
2
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!