CONCEITOS ESSENCIAIS
QUE VOCÊ PRECISA
CONHECER
Devops para iniciantes
Kamila Santos
Slide 2
Slide 2 text
Kamila
Santos
Tech Lead na Zup Innovation, microsoft mvp, co-
autora dos livros Jornada Java e Jornada
Microsserviços, co-organizadora da
womakerscode, devsjavagirl e perifacodee
criadora de conteudo no youtube e instagram
Kamila code
Slide 3
Slide 3 text
@kamila_code
O QUE É DEVOPS
Podemos definir a metodologia Devops como uma
abordagem de cultura, automação e design
visando agregar valor ao negócio , entregando mais
rápido e com mais qualidade
Slide 4
Slide 4 text
@kamila_code
O QUE É DEVOPS
A palavra Devops vem da combinação de
desenvolvimento e operações , porém suas ideias e
iniciativas ultrapassam os significados desses
termos e que veremos ao longo dessa palestra
Slide 5
Slide 5 text
@kamila_code
PILARES DO DEVOPS
Também conhecida como Trinity of Devops, grande
maioria das estratégias Devops de sucesso contém
os seguintes pilares:
Slide 6
Slide 6 text
@kamila_code
PESSOAS E CULTURA
Organizar a equipe de modo que faça sentido para
um determinado objetivo comum , trabalhando
juntos para levar software rápido e de qualidade o
mais rápido para os stakeholders.
Slide 7
Slide 7 text
@kamila_code
FERRAMENTAS E TECNOLOGIAS
Sem as ferramentas e tecnologias certas, o Devops
não é sustentável. Existem ferramentas para todas
as etapas do Devops
Slide 8
Slide 8 text
@kamila_code
PROCESSOS E PRÁTICAS
Agile e Devops andam juntos, adotando alguma
metodologia ágil os times tem mais independência
e processos mais simples.
Slide 9
Slide 9 text
@kamila_code
MODELO CASCATA
Processo sequencial que é dividido em várias fases
e não é possível voltar a etapa anterior depois que
ela avançar
@kamila_code
MODELO ÁGIL
O projeto se divide em várias iterações , a cada final
de uma iteração uma parte do produto é entregue .
Cada iteração dura de 2 a 3 semanas , e várias áreas
trabalham continuamente e em conjunto
@kamila_code
BENEFÍCIOS DO DEVOPS
Entrega contínua de software
Melhor colaboração entre as equipes
Maior eficiência e escalabilidade
Slide 14
Slide 14 text
@kamila_code
BENEFÍCIOS DO DEVOPS
Maior facilidade na implantação
Erros corrigidos rapidamente
Maior segurança
Slide 15
Slide 15 text
@kamila_code
ETAPAS DO DEVOPS
https://www.edureka.co/blog/devops-lifecycle/
Slide 16
Slide 16 text
@kamila_code
GERENCIAMENTO DE CÓDIGO
FONTE
É criado um planejamento e é iniciado o
desenvolvimento do projeto usando ferramentas
de controle de versão
Slide 17
Slide 17 text
@kamila_code
BUILD E TESTES CONTÍNUOS
Nessa fase são utilizados gerenciadores de
dependência para gerar o pacote da aplicação
completa, os testes são realizados com frameworks
e bilbliotecas de teste
Slide 18
Slide 18 text
@kamila_code
INTEGRAÇÃO CONTÍNUA
Assim que os testes são executados e passam com
sucesso , novos recursos são integrados à base de
código já existente
Slide 19
Slide 19 text
@kamila_code
ENTREGA/ IMPLANTAÇÃO
CONTÍNUA
Aqui o aplicativo já empacotado é disponibilizado
em algum ambiente
Slide 20
Slide 20 text
@kamila_code
MONITORAMENTO CONTÍNUO
É necessário ficar atento a possíveis problemas,
tendo uma boa observabilidade do serviço
Slide 21
Slide 21 text
@kamila_code
APLICAÇÃO NO AR
Após todas esses validações, o software é lançado
Slide 22
Slide 22 text
@kamila_code
ALGUMAS FERRAMENTAS
UTILIZADAS
Slide 23
Slide 23 text
@kamila_code
GIT
Ferramenta de controle de versão para controlar
código fonte
Slide 24
Slide 24 text
@kamila_code
MAVEN
Gerenciador de dependências e ferramenta de
automação facilita o dia a dia do desenvolvimento
@kamila_code
SELENIUM
Ferramenta open-source de automação utilizada
principalmente para testes de regressão e testes
funcionais
Slide 27
Slide 27 text
@kamila_code
TESTE DE REGRESSÃO
Garante que as funcionalidades antigas continuam
funcionando com as novas alterações
Slide 28
Slide 28 text
@kamila_code
TESTE FUNCIONAL
Visa garantir que a aplicação satisfaça
adequadamente os requisitos
Slide 29
Slide 29 text
@kamila_code
JENKINS
Ferramenta open-source de integração contínua ,
ajuda a automatizar o desenvolvimento, testes e
implantação contínuos
Slide 30
Slide 30 text
@kamila_code
DOCKER
Docker é um software de código aberto utilizado
para implantar aplicações dentro de containers
virtuais . Essa containerização permite que vários
aplicativos funcionem em diferentes ambientes
Slide 31
Slide 31 text
@kamila_code
ANSIBLE
Ansible é uma ferramenta de automação que pode
configurar sistemas, implantar aplicações e
provisionar recursos de nuvem.
@kamila_code
ANSIBLE
Módulos são uma coleção de arquivos de código de
configuração
Slide 34
Slide 34 text
@kamila_code
ANSIBLE
Os playbooks são usados para configuração de
vários servidores.
Slide 35
Slide 35 text
@kamila_code
INVENTÁRIO
É um documento que agrupo os nodes
Slide 36
Slide 36 text
@kamila_code
NAGIOS
Ferramenta open source utilizada para monitorar
sistemas, servidores, redes e infraestrutura de
armazenamento
Slide 37
Slide 37 text
@kamila_code
O QUE É INTEGRAÇÃO
CONTÍNUA (CI)
É uma prática de desenvolvimento que nos
permite mesclar suas alterações de código no
repositório central. Desse modo, o build e os testes
são executados com base nesse novo código
Slide 38
Slide 38 text
@kamila_code
O QUE É ENTREGA CONTÍNUA
(CD)
Se refere a construção, teste e entrega das
melhorias de código, ela é um tipo de extensão da
fase de integração contínua para garantir que
novas mudanças possam ser liberadas mais
rapidamente e com mais qualidade
Slide 39
Slide 39 text
@kamila_code
O QUE É IMPLANTAÇÃO
CONTÍNUA (CD)
É a extensão da entrega contínua , resulta no
estágio final da pipeline que se refere à liberação
automática de qualquer alteração do
desenvolvedor do repositório para ambiente
produtivo.
Slide 40
Slide 40 text
@kamila_code
PIRÂMIDE DE TESTES
https://medium.com/@nmuniz/pir%C3%A2mide-de-testes-328ca50f31cd
Slide 41
Slide 41 text
@kamila_code
TDD
Desenvolvimento orientada a testes, primeiro
escrevemos o teste, depois escrevemos o código
para passar nesse teste e por fim refatoramos esse
código já funcional.
@kamila_code
CODE COVERAGE
É uma métrica que pode nos auxiliar a saber o
quanto do nosso código fonte está coberto por
testes, para termos a porcentagem de coverage são
verificados alguns pontos geralmente:
Slide 44
Slide 44 text
@kamila_code
FUNCTION COVERAGE
Quantas das funções são cobertas por testes
Slide 45
Slide 45 text
@kamila_code
STATEMENT COVERAGE
Quantas das instruções são cobertas por testes
Slide 46
Slide 46 text
@kamila_code
BRANCHES COVERAGE
Quantas das ramificações (estruturas de decisão)
são cobertas por testes
Slide 47
Slide 47 text
@kamila_code
CONDITION COVERAGE
Quantas as expressões booleanas foram validadas
Slide 48
Slide 48 text
@kamila_code
LINE COVERAGE
Quantas linhas de código fonte no geral foram
testadas
Slide 49
Slide 49 text
@kamila_code
VIRTUAL MACHINE
São uma espécie de computador virtual (muitas
vezes chamada de imagem) que contém CPU,
memória e disco , ela é independente do
computador físico
Slide 50
Slide 50 text
@kamila_code
VIRTUAL MACHINE
Com elas podemos criar e implantar aplicativos na
nuvem, ter um novo ambiente com outro sistema
operacional, tendo redução de custos e maior
flexibilidade
Slide 51
Slide 51 text
@kamila_code
APM
Realiza o gerenciamento de desempenho de
aplicações , buscando demonstrar porque as
transações estão ocorrendo de modo mais lento ou
estão indisponíveis em algum momento.
Slide 52
Slide 52 text
@kamila_code
COMPUTAÇÃO EM NUVEM
Entrega de recursos sobre demanda de modo
virtual, em vez de precisar manter datacenters
físicos você pode requisitar recursos e pagar
conforme usa por meio de um provedor de nuvem.
Slide 53
Slide 53 text
@kamila_code
PAAS
Plataforma como um serviço, fornece uma
plataforma completa de cloud , hardware , software
e infraestrutura para desenvolvimento , execução e
gerenciamento de aplicativos
Slide 54
Slide 54 text
@kamila_code
IAAS
Infraestrutura como serviço, fornece de modo
virtual a infraestrutura bruta de serviços físicos,
máquinas virtuais, armazenamento, rede, etc
Slide 55
Slide 55 text
@kamila_code
SAAS
Software como um serviço, visa disponibilizar
softwares e soluções via internet , sem se preocupar
com instalação, manter hardware etc
Slide 56
Slide 56 text
@kamila_code
CLOUD PUBLICA
Desenvolvida e gerenciada por uma empresa
terceirizada, é um pool de serviços alocados para
diversos clientes.
Slide 57
Slide 57 text
@kamila_code
CLOUD PRIVADA
Mesma coisa da pública, porém os serviços só são
ofertados para pessoas daquela organização
Slide 58
Slide 58 text
@kamila_code
CLOUD HIBRIDA
Combinação da cloud pública com a cloud privada
Slide 59
Slide 59 text
@kamila_code
O QUE É SERVERLESS
Modelo de desenvolvimento nativo em nuvem para
criação e execução de aplicações sem o
gerenciamento de servidores.
Slide 60
Slide 60 text
@kamila_code
O QUE É SERVERLESS
Vale lembrar que o servidores ainda são utilizados
nesse modelo, porém eles são abstraídos do
desenvolvimento de aplicações. O provedor de
nuvem fica responsável pelo provisionamento,
manutenção e escala.
ex: AWS Lambda
Slide 61
Slide 61 text
@kamila_code
O QUE É SERVERLESS
https://www.serverless.com/