13/08/2022 - Aula 1 de DevOps (Presencial)
A aula começou as 08h, com o professor Jemerson, com o professor passando o que vai ser visto durante a pós. Pediu para baixar o projeto no github, pois vai ser utilizado ele como base, além disso, utilizamos o máterial em PDF.
O que é
DevOps (Development + Operations) é um processo de desenvolvimento e entrega de software que enfatiza a comunicação entre os profissionais de desenvolvimento e operações.
É um conjunto de práticas que automatizam os processos entre equipes de desenvolvimento de software e de TI para que possam criar, testar e liberar softwares de maneira mais rápida e confiável.
A combinação de filosofias culturais, práticas e ferramentas que aumentam a capacidade de uma empresa de distribuir aplicativos e serviços em alta velocidade
Como começou - Manifesto Ágil
- Indivíduos e interações, mais que processos e ferramentas.
- Software em funcionamento, mais que documentação abrangente
- Responder a mudanças, mais que seguir um plano
C.A.M.S. ( Culture, Automation, Measure, Sharing)
- Culture (Cultura)
- É preciso colaborar, compartilhar e entender a importância de manter uma relação saudável entre todas as áreas.
- Automation (Automação)
- Identificar os processos que sejam repetitivos ou que levam bastante tempo e buscar resolver o quanto antes.
- Measure (Medir)
- Deve-se medir tudo que é possível: performance, processos, interações e até mesmo pessoas. O processo de melhoria contínua é o coração do DevOps!
- Sharing (Compartilhamento)
- Ter uma boa comunicação entre as equipes, incentivar as pessoas a se comunicarem e compartilharem ideias e problemas (Blameless).
O que precisamos para começar
- Cultura;
- Programação;
- Gerenciar Servidores, Virtualização, Redes e Segurança;
- Criação de Scripts;
- Instalar e configurar middlewares (apache, nginx, haproxy);
- Instalar softwares;
- Versionar arquivos com GIT;
- Automatizar tarefas e gerenciar configurações;
- Infraestrutura como Código;
- Observabilidade;
- Orquestração de Containers;
- Compartilhar;
Docker
É uma tecnologia de conteinerização que permite a criação e o uso de containers Linux.
Containers são como se fossem máquinas virtuais modulares e extremamente leves.
O Docker possibilita o empacotamento de uma aplicação ou ambiente inteiro dentro de um container, e a partir desse momento o ambiente inteiro torna-se portável para qualquer outro Host que contenha o Docker instalado.
Para ajudar no uso do Docker, temos o DockerFile, que é um arquivo de configuração que permite a criação de containers, e o Docker Compose, que é um arquivo de configuração que permite a criação de múltiplos containers.
Exemplo dos comandos:
Com isso, finalizamos a aula 1 de DevOps.