Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DevOps para Desenvolvedores

Avatar for Natália Granato Natália Granato
October 01, 2025
0

DevOps para Desenvolvedores

Avatar for Natália Granato

Natália Granato

October 01, 2025
Tweet

Transcript

  1. • DevOps (Desenvolvimento + Operações) é um conjunto de práticas,

    princípios e filosofias culturais que visam aprimorar a colaboração e a comunicação entre as equipes de desenvolvimento de software (Dev) e de operações de TI (Ops). • O objetivo principal é automatizar e otimizar os processos de entrega de software e de mudanças na infraestrutura, fomentando uma cultura de melhoria contínua e lançamentos mais rápidos e confiáveis. O que é DevOps e Site Reliability Engineering (SRE)?
  2. Engenharia de Confiabilidade de Sites, ou SRE. A maneira mais

    simples de pensá-la é: "tratar problemas de operações como se fossem problemas de software". Foi desenvolvida no Google para criar sistemas de software escalável e altamente confiáveis.
  3. • DevOps: Monitora continuamente o processo de cozimento, faz ajustes

    conforme necessário, e garante que o prato seja cozido à perfeição (testando e refinando o código). • SRE: Lida com quaisquer imprevistos ou contratempos, certifica-se de que a cozinha permaneça limpa e organizada, e ajuda o chef a entregar o prato finalizado aos clientes (usuários). DevOps e SRE: uma analogia simplificada
  4. A Interrupção da Sony PlayStation Network (2011) • Em abril

    de 2011, a Sony PlayStation Network (PSN) sofreu uma interrupção massiva que durou 23 dias e afetou mais de 100 milhões de usuários. Este incidente é considerado um exemplo clássico dos desafios enfrentados na era pré-DevOps.
  5. • Equipes de desenvolvimento e operações trabalhavam de forma apartada,

    com comunicação e colaboração limitadas. • Causou: falta de compreensão sobre o trabalho e os desafios de cada um, dificultando uma resposta eficaz à situação que se desenrolava durante a interrupção. © 2025 Cloud Native Computing Foundation 8 Falhas de comunicação
  6. • Deploys e mudanças na infraestrutura eram realizadas manualmente. •

    Causou: A lentidão impediu a capacidade da Sony de avaliar rapidamente a situação e implementar as correções necessárias. © 2025 Cloud Native Computing Foundation 9 Processos manuais
  7. • A infraestrutura da PSN não foi projetada para lidar

    com o aumento repentino de demanda causado pelo ataque, o que levou a interrupções generalizadas e falhas no serviço. © 2025 Cloud Native Computing Foundation 10 Sistemas não escaláveis
  8. • O ambiente de silos e a falta de comunicação

    levaram a um jogo de culpa e acusações entre as diferentes equipes, prejudicando a colaboração e os esforços para a resolução de problemas. © 2025 Cloud Native Computing Foundation 11 Cultura de Culpa
  9. Primeiras Influências • O movimento Ágil: Enfatizou o desenvolvimento iterativo

    e a colaboração, abrindo caminho para o foco em entregas mais rápidas e na integração de equipes. • Automação: A ascensão das ferramentas de automação simplificou as tarefas manuais e repetitivas. • Computação em Nuvem: O surgimento de plataformas de nuvem forneceu um ambiente escalável e flexível para desenvolvimento e implantação.
  10. 15

  11. Infraestrutura Ágil: • Na mesma época, surgiu o movimento da

    "Infraestrutura Ágil", focado em aplicar os princípios Ágeis ao gerenciamento de infraestrutura, alinhando-o com as práticas de desenvolvimento.
  12. Integração Contínua e Entrega Contínua • Integração: O controle de

    versão com o Git torna-se o padrão. • Gatilhos automáticos: Um simples commit aciona ferramentas de CD como Github Actions, Gitlab CI, Jenkins e etc. • Automação: As pipelines executam passos como compilação, testes e geram relatórios.
  13. Integração Contínua e Entrega Contínua • Empacotamento: O pipeline empacota

    o código em um formato pronto para ser implantado (ex: uma imagem de contêiner Docker). • Implantação em Ambiente de Testes: Automaticamente implantado em um ambiente de homologação ou testes (staging), que é uma cópia fiel do ambiente de produção.
  14. Ferramentas e Plataformas DevOps • Na mesma época, surgiu o

    movimento da "Infraestrutura Ágil", focado em aplicar os princípios Ágeis ao gerenciamento de infraestrutura, alinhando-o com as práticas de desenvolvimento.
  15. 21

  16. Aumento da Conscientização e Adoção • O DevOps deixou de

    ser um conceito de nicho para se tornar o padrão da indústria de tecnologia. • DevOpsDays, KubeCon + CloudNativeCon, AWS re:Invent, Google Cloud Next, Microsoft Ignite, Blogs de Engenharia e etc.
  17. O desenvolvedor moderno precisa ter uma visão do ciclo de

    vida completo da sua aplicação. • Observabilidade nasce no código: Um sistema não se torna observável magicamente em produção. O desenvolvedor é quem melhor sabe quais informações são cruciais para entender o comportamento da aplicação.
  18. Entregar um sistema sem instrumentação adequada é igual entregar uma

    caixa preta. • Expor métricas que vão além de CPU e memória. Prática DevOps: • Métricas de aplicação. Métricas de negócio. • Logs Estruturados. • Tracing distribuído.
  19. Segurança não é um problema "do time de segurança" a

    ser resolvido no final. • Análise de Dependências: Use ferramentas como Snyk, Falco, Trivy para verificar e corrigir vulnerabilidades. • Gerenciamento de Segredos: Nunca colocar senhas, tokens ou chaves de API direto no código ou em arquivos de configuração
  20. Kubernetes, um exemplo • Sua aplicação está em um Pod:

    Você raramente criará um Pod diretamente, mas tudo acontece dentro dele. Entenda o ciclo de vida de um Pod. • Configuração: Sua aplicação receberá os dados de um ConfigMap como variáveis de ambiente ou como arquivos montados em um volume.
  21. • Boas mensagens de commit. Lembre-se que o Git é

    um grande histórico sobre o que foi feito. • Pull requests pequenos e focados em implementar uma funcionalidade por vez. • Utilize linters para encontrar erros e formatar o seu código. • Mantenha o README.md como a porta de entrada do seu projeto.