View
37
Download
0
Category
Preview:
Citation preview
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
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
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
Introdução - Pilares
Cultura
● Colaboração
● Práticas Ágeis / Lean
● Relação saudável entre as áreas
● Mudança de comportamento
Introdução - Pilares
Automação
● Deploy
● Controle
● Monitoramento
● Gerência de configuração
● Orquestração
● Infra-estrutura como código
Introdução - Pilares vs Ferramentas
Cultura
● Treinamentos internos
● Pessoas são mais importantes que processos e ferramentas
● Atitute
Introdução - Pilares
Automação
● Ansible
● PhpIpam
● Jenkins
● Gitlab
● Nexus OSS
● Ansible novamente
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
Ferramenta para gerenciamento das informações de rede como vlan, endereços IP utilizados, livres, online e offline, entre outras
Ciclo operacional - Depois
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.
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.
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 gitlab2. Instala e configura os ambiente de homologação e produção3. Autenticação sem senhas, através de chaves assimétricas4. Integração contínua, o commit do fonte, dispara o build, teste e deploy da máquina5. CentOS 76. 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
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?)
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.
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
Recommended