O documento apresenta os conceitos e benefícios da abordagem DevOps para o ciclo de vida de desenvolvimento de software. Ele discute como o DevOps promove a automação, cultura, avaliação e compartilhamento de informações para melhorar a entrega contínua, reduzir erros e facilitar a manutenção de configurações de máquinas. O documento também demonstra como as ferramentas como Ansible, Gitlab e Jenkins podem ser usadas para implementar os princípios do DevOps.
2. Agenda
● Introdução
○ O que é DevOps?
○ Pilares
○ Ferramentas
● Ciclo Operacional
○ Antes
○ Depois
● Entregas
○ Gênesis
○ Alguns Números
● Demo
○ Criar uma VM nova, com os padrões de configuração pré-definidos pela empresa
○ Modificar a VM recém criada, observando o ciclo completo
3. Introdução - O que é DevOps
“DevOps é uma forma de
desenvolvimento de software
que enfatiza a comunicação,
colaboração, integração,
automação e o uso de métricas.”
Patrick Debois
4. Introdução - O que é DevOps
Você não
compra
Devops!!!
Você não
Instala
Devops!!!
Não é meramente a junção das
áreas de desenvolvimento com
operações
Devops é
uma
abordagem
Devops é
uma
Mentalidade
Devops é sobre aplicar os
conceitos de lean/agile ao ciclo de
vida do software
15. Ciclo operacional - Antes
Controle de Endereços IP e nomes de VM disponíveis, realizado através de planilhas
Sem reuso - Reúso na base do copiar e colar, sujeito a erros clássicos, como esquecer de modificar o
nome da máquina ou seu IP.
Sem gerência de configuração - Não existe “código fonte” de máquina, caso seja necessário criar
novamente, deve-se repetir manualmente os passos feitos anteriormente.
Processo manual e disperso, sujeito a erros, uma equipe fornece o IP, outra equipe cria a VM, outra
equipe configura a VM, etc.
Acesso aos servidores linux realizado utilizando-se senhas, sem controle da qualidade da senha e em
controle sobre quem pode acessar a VM
Difícil manter os servidores atualizados e com as mesmas configurações, pois tudo é feito
manualmente
16. Ferramenta para gerenciamento das informações de rede como vlan, endereços IP utilizados, livres,
online e offline, entre outras
Ciclo operacional - Depois
17. Ciclo operacional - Depois
Não só é possível o reúso das configurações, como é incentivado através das roles e módulos ansible.
Muito simples criar um código reutilizável que configura o servidor de data e hora, ou que instale o java
ou um tomcat.
18. Ciclo operacional - Depois
Sem gerência de configuração - Não existe “código fonte” de máquina, caso seja necessário criar
novamente, deve-se repetir manualmente os passos feitos anteriormente.
19. Entregas - Gênesis
Repositório
de Binários
Gestão de
endereços IPs
Repositório de
código fonte
Integração
contínua
1. Código fonte entregue no gitlab
2. Instala e configura os ambiente de homologação e produção
3. Autenticação sem senhas, através de chaves assimétricas
4. Integração contínua, o commit do fonte, dispara o build, teste e deploy da máquina
5. CentOS 7
6. Atualização dos pacotes linux centralizados em um servidor squid (não faz download a cada
instalção em cada máquina)
7. ITM instalado por padrão nas máquinas
20. Entregas - Alguns números
Criar uma nova máquina no vmware consiste em executar 47 itens de configuração.
Inclui tarefas como:
● Configurar o ip da máquina
● Configurar o DNS da máquina
● Configurar o hostname da máquina
● Configurar a rede no vmware
● Configurar o servidor de data e hora
corporativo (qual endereço do
servidor ntp?)
● Configurar o servidor de syslog
(qual endereço do servidor syslog?)
21. Entregas - Alguns números
Temos algo em torno de 100 máquinas
Na instalação manual, sem considerar a diferença de tempo, o principal ganho é a garantia de que não
haverá erros.
É muito fácil na hora de cadastrar a máscara de subrede 255.255.255.0, um pequeno desvio de atenção
digitar 255.255.0.0.
Algumas vezes, até que um problema desse tipo seja detectado, leva-se horas.
Manualmente, precisa-se descobrir várias informações como qual o endereço IP, qual será o hostname, só
pra citar algumas informações.
Considerando 100 máquinas, temos mais de 4000 itens de configuração que foram feitos manualmente.
E o pior, caso por algum motivo, seja necessário refazer 10 máquinas, não seria possível, pois não há
código fonte pra isso, todo o conhecimento da máquina está nela própria.
22. Entregas - Alguns números
17
Componentes
reutilizáveis
5
Máquinas
homologaçã e
produção
26
Projetos
Jenkins
21
Projetos
Gitlab
13874
Linhas de
código
311
Arquivos
148
Commits