Slide 1

Slide 1 text

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

Slide 10

Slide 10 text

@kamila_code https://www.simplilearn.com/tutorials/devops-tutorial/why-devops

Slide 11

Slide 11 text

@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

Slide 12

Slide 12 text

@kamila_code https://www.simplilearn.com/tutorials/devops-tutorial/why-devops

Slide 13

Slide 13 text

@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

Slide 25

Slide 25 text

@kamila_code MAVEN https://www.simplilearn.com/tutorials/devops-tutorial/why-devops

Slide 26

Slide 26 text

@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.

Slide 32

Slide 32 text

@kamila_code ANSIBLE https://www.simplilearn.com/tutorials/devops-tutorial/why-devops

Slide 33

Slide 33 text

@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.

Slide 42

Slide 42 text

@kamila_code TDD https://www.treinaweb.com.br/blog/afinal-o-que-e-tdd

Slide 43

Slide 43 text

@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/

Slide 62

Slide 62 text

@kamila_code REFERÊNCIAS https://www.simplilearn.com/tutorials/devops- tutorial/what-is-devops https://www.redhat.com/pt-br/topics/devops https://blog.hubspot.com/website/devops-pipeline https://www.edureka.co/blog/devops-lifecycle/ https://www.opservices.com.br/o-que-e-docker/

Slide 63

Slide 63 text

@kamila_code REFERÊNCIAS https://learn.microsoft.com/pt- br/dotnet/architecture/microservices/container- docker-introduction/docker-defined https://www.hostinger.com.br/tutoriais/o-que-e- docker https://4linux.com.br/o-que-e-ansible/ https://www.simplilearn.com/tutorials/devops- tutorial/why-devops

Slide 64

Slide 64 text

@kamila_code REFERÊNCIAS https://learn.microsoft.com/pt- br/dotnet/architecture/microservices/container- docker-introduction/docker-defined https://www.hostinger.com.br/tutoriais/o-que-e- docker https://4linux.com.br/o-que-e-ansible/ https://www.simplilearn.com/tutorials/devops- tutorial/why-devops

Slide 65

Slide 65 text

@kamila_code REFERÊNCIAS https://www.simplilearn.com/tutorials/devops- tutorial/continuous-delivery-and-continuous- deployment https://medium.com/@nmuniz/pir%C3%A2mide- de-testes-328ca50f31cd https://www.treinaweb.com.br/blog/afinal-o-que-e- tdd

Slide 66

Slide 66 text

@kamila_code REFERÊNCIAS https://www.atlassian.com/continuous- delivery/software-testing/code- coverage#:~:text=Code%20coverage%20is%20a%20 metric,get%20started%20with%20your%20projects. https://azure.microsoft.com/pt-br/resources/cloud- computing-dictionary/what-is-a-virtual-machine/ https://www.opservices.com.br/apm/ https://aws.amazon.com/pt/what-is-cloud- computing/

Slide 67

Slide 67 text

@kamila_code REFERÊNCIAS https://www.totvs.com/blog/negocios/paas/ https://azure.microsoft.com/pt-br/resources/cloud- computing-dictionary/what-is-paas/ https://www.ibm.com/br-pt/cloud/learn/paas https://www.salesforce.com/br/saas/ https://www.redhat.com/pt-br/topics/cloud- computing/what-is-public-cloud

Slide 68

Slide 68 text

@kamila_code REFERÊNCIAS https://www.redhat.com/pt-br/topics/cloud- computing/what-is-private-cloud https://azure.microsoft.com/pt-br/resources/cloud- computing-dictionary/what-is-a-private-cloud/ https://www.vmware.com/br/topics/glossary/conten t/hybrid-cloud.html https://www.redhat.com/pt-br/topics/cloud-native- apps/what-is-serverless https://www.serverless.com/framework/docs/provid ers/aws/guide/intro

Slide 69

Slide 69 text

OBRIGADA :) https://www.linkedin.com/in/kamila-santos-oliveira/ https://www.youtube.com/Kamilacode https://www.instagram.com/kamila_code/ https://beacons.page/kamila_code