DevOps e automação são abordados como forma de melhorar o fluxo de trabalho entre equipes de desenvolvimento e operações. Ferramentas como Ansible, Chef, Puppet, Packer, Vagrant e Docker são apresentadas para automatizar a configuração e implantação de infraestrutura e aplicações. A apresentação também discute a importância da automação contínua para integrar e entregar código de forma rápida e confiável.
7. E onde DevOps entra nisso?
DevOps é a cultura de colaboração entre equipe
de desenvolvimento e operações para aumentar o
fluxo de trabalho..
Como aumentar o fluxo de trabalho?
Automatização de deploys, de criação de
ambientes e etc...
11. Busque referências internas
Se você se incomoda, certamente outras
pessoas da sua equipe também!
Converse com elas! As vezes elas até já tem
uma solução desenhada
12. Mapeie dependências
Quem é a pessoa que eu preciso conversar?
Pra melhorar isso, é realmente necessário
mudar alguma outra coisa?
Cuidado! Um problema geralmente gera
muitas depedências, trate cada uma delas em
separado! Faça tudo em pequenos passos!
14. Trabalhe em uma solução
Faça um timebox: aloque um tempo semanal
para trabalhar em uma solução!
Peça ajuda! Quem sabe aquela pessoa que
você conversou antes…
Se prepare para muitas tentativas e erros...
16. Automação de configuração de infraestrutura
Qual problema resolve?
● Precisamos configurar um projeto automaticamente em
uma máquina com sistema operacional para que seja
mais rápida a adoção por novos integrantes.
● Gostaria de provisionar um servidor de produção para
rodar minha aplicação rapidamente evitando assim
Snowflake servers
Ferramentas: Chef, Puppet, Ansible
Por que não usar shell script? As ferramentas acima são
idempotêntes!
17. Automação de criação de infraestrutura
Qual problema resolve?
● Precisamos colocar um sistema operacional dentro de
uma máquina automaticamente
Perceba que o slide anterior falava de configuração de um
sistema operacional já instalado!
Ferramentas: Packer
Baixe sistemas operacionais e configure-os utilizando a
ferramenta fornecida pelo OS. kickstart para CentOS ou XML
para Windows
18. Automação de criação de máquinas virtuais
Qual problema resolve?
● Precisamos colocar e configurar um sistema operacional
dentro de uma máquina virtual em ambiente de dev
Ferramentas: Vagrant
=> Possui sistemas operacionais já "pré-configurados" na
internet, você só precisa fazer download.
=> Usado em ambientes de dev com VirtualBox
=> Você pode baixar o OS e usar um Ansible para configurar
garantindo que tanto seu servidor de produção e sua máquina
de dev sejam iguais.
=> Pra quê usar VM? Pra não "manchar sua máquina", pra usar
algo próximo de produção.! Isolamento da sua máquina!
19. Automação de criação de infraestrutura com containers
Qual problema resolve?
● Precisamos colocar e configurar um sistema operacional
em qualquer ambiente
Ferramentas: Docker
É um Vagrant para todos os ambientes, mas ao invés de VMs
que são pesadas e demandam recurso, utiliza-se containers.
20. Resumindo suas opções em dev
vagrant + ansible/chef... =>
quero configurar uma VM qualquer
packer + ansible/... =>
quero configurar uma máquina e configurar seu OS por completo
DEV
packer instalando vagrant + ansible =>
quero configurar minha VM completamente + destruí-la e subi-la
facilmente (vagrant)
Docker => quero configurar um OS qualquer num container
21. DevOps é só automatização de infra?
● Automatização de tarefas como rodar testes, instalação e
empacotamento da sua aplicação também entram nas
práticas.
● Utiliza-se um servidor de CI para manter as coisas
organizadas: Travis, SNAP-CI, Go-CD, Jenkins...
● Cada tarefa possui ferramentas apropriadas de acordo
com a linguagem de programação (ou tech stack)
utilizada…
● Dica: Automatize sempre incluindo o mínimo de
complexidade em sua aplicação. Ferramentas demais
podem se tornar confusas e ninguém vai querer dar
manutenção !
22. Resumindo suas opções em ci/prod/stg
CI
Compila
Testes
unitários
Outros
Testes
Empacota
Deploy
23. Automatização CI
CI
Compila
Testes
unitários
Outros
Testes
Empacota
Deploy
A tarefa de deploy roda scripts ansible/chef...
para garantir que a máquina de prod/stg está OK
e instala o pacote da aplicação
O que acontece se seu servidor de CI quebra?
Pode-se automatizar também a criação do servidor de CI, assim
você tem todos os ambientes iguais, cada um com sua
configuração base e outras configurações adicionais para cada
ambiente.
24. Quase tudo é automatizável!
Shell script também pode ser seu melhor
amigo!
Dica: Sempre versione o seu código!