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

DevOps e Gerenciamento de Incidentes

DevOps e Gerenciamento de Incidentes

[Precisa de atualização]
Explore o universo do DevOps nesta apresentação envolvente, começando com uma visão abrangente do que é DevOps, incluindo sua história e evolução. Em seguida, mergulhe nas nuances de monitoramento e observabilidade, desvendando estratégias eficazes de deploy de aplicações.

A abordagem avança para a interseção entre DevOps e o gerenciamento de incidentes, revelando como esses três pilares essenciais - DevOps, monitoramento e deploy - convergem para otimizar o processo de resposta a incidentes. Descubra como integrar esses conceitos pode aprimorar significativamente a capacidade de detectar, responder e resolver incidentes de maneira eficiente e proativa. Prepare-se para uma jornada esclarecedora que conecta o DevOps ao Gerenciamento de Incidentes em quatro etapas cruciais.

Cadu Magalhães

January 31, 2024
Tweet

More Decks by Cadu Magalhães

Other Decks in Technology

Transcript

  1. Quem é esse? • 26 anos • 4 anos de

    engenharia de dados • Google Cloud certified • Dono de gatos • Nerd, músico frustrado e cubista • Especialista em gambiarras • Participante de eventos e caçador de brindes Cadu Magalhães @1cadumagalhaes blog.cadumagalhaes.dev datacareer.guide
  2. Agenda 1. DevOps 2. Estratégias de deploy 3. Monitoramento e

    Observabilidade 4. Gerenciamento de incidentes
  3. O que é DevOps? • DevOps é uma cultura •

    Um conjunto de práticas, de filosofias e de ferramentas • O resultado da implementação de metodologias ágeis no desenvolvimento de software "DevOps descreve as abordagens que aumentam a velocidade dos processos pelos quais uma ideia (um produto, uma funcionalidade, um ajuste) vai do desenvolvimento para a entrega num ambiente de produção onde pode prover valor ao usuário." - RedHat
  4. Dev • Quem cuida da infraestrutura e entrega • Quer

    evitar que o sistema caia • Quer estabilidade Ops • Quem escreve código • Quer implementar coisas novas • Quer agilidade, entregas
  5. Resumindo DevOps • Pra que: ◦ Diminuir a taxa de

    falhas em novas releases ◦ Diminuir o tempo de recuperação, nos casos de falha ◦ Diminuir o tempo necessário entre ajustes
  6. Resumindo DevOps • Como: ◦ Metodologias Ágeis: ajudando no planejamento

    e na execução do desenvolvimento ◦ Versionamento de código: permitindo um maior controle sobre o código, e mais tarde trazendo automações ◦ CI/CD (integração e entrega contínuas): aplicando automações no merge de código, testes e entrega. ◦ Gerenciamento de incidentes: criando padrões e estratégias de resposta aos problemas como os que falamos aqui hoje.
  7. Resumindo DevOps • Resultados esperados: ◦ Aumentar a frequência de

    deploy ◦ Aumentar produtividade e eficiência ◦ Permitir que produtos sejam entregues mais cedo ◦ Clientes mais satisfeitos.
  8. Como aplicar DevOps? • Usando git para controle de versão

    • Escrevendo testes automatizados • Utilizando containers • Entregando (deploy) seu software de maneira eficiente e planejada • Usando uma pipeline de CI/CD que conecta todos os tópicos acima
  9. Dicas de estudo • Git, Github • TDD, testes unitários,

    testes de integração • Containers, Docker, Podman • Kubernetes, Openshift, Amazon ECS, Google GKE, Azure AKS • Github Actions, Azure DevOps, Google Cloud Build, AWS CodePipeline ou CodeBuild
  10. 1. Deploy Básico (big bang, reckless, recreate, in-place) Como funciona:

    derruba completamente a versão antiga, atualiza para a versão nova, sobe tudo de volta Vantagens: costuma ser rápido, é barato. Desvantagens: downtime da aplicação, dificil recuperar o estado anterior.
  11. 2. Rolling deployment Como funciona: cria uma nova instância da

    aplicação, e divide o tráfego de forma gradual entre a versão atual e a nova. Vantagens: 0 downtime, relativamente fácil de implementar* Desvantagens: leva tempo para o rollout/rollback, as versões precisam ser compatíveis.
  12. 3. Blue/Green Deployment Como funciona: Faz deploy da versão nova

    B (green) com exatamente os mesmos recursos da versão antiga A (blue), para testes no ambiente de produção. Depois de testado, troca o tráfego da versão A para a versão B . Vantagens: rollout/rollback instantâneos, 0 downtime. Desvantagens: mais caro
  13. 4. Canary deployment Como funciona: Faz uma versão nova igual

    ao blue/green. Vai mudando o tráfego para a versão nova gradualmente. Vantagens: rollback instantâneo, 0 downtime, permite monitoramento de performance Desvantagens: rollout mais lento, custo alto
  14. 5. Shadow deployment Como funciona: Faz a entrega da versão

    B ao lado da versão A, duplica todas as requisições de A e as envia para B, sem impactar o tráfego de produção. Vantagens: Testes em produção com tráfego real, 0 impactos ao usuário. Desvantagens: Caro, somente as requisições são testadas, não a plataforma completa, extremamente complexo, precisa de serviços de mock em alguns casos
  15. O que é Monitoramento? Monitoramento de software consiste em coletar,

    analisar e observar dados de vários aspectos do sistema como performance, saúde e comportamento. Ele te permite construir dashboards e criar alertas, e entender como suas aplicações estão funcionando e sendo usadas. De acordo com o SRE Book do Google, seu monitoramento tem que responder duas coisas: • O que quebrou • Por que quebrou
  16. O que é Observabilidade? Observabilidade é a habilidade de entender

    o estado interno do sistema a partir dos dados que ele gera (como logs e metricas). O conceito vem da Engenharia de Controle, uma área da matemática aplicada. “Observabilidade é uma ferramenta ou solução técnica que permite às equipes depurar ativamente seu sistema. A observabilidade baseia-se na exploração de propriedades e padrões não definidos antecipadamente” - dora.dev (Google Cloud)
  17. Monitoramento vs Observabilidade • As duas áreas se complementam, mas

    servem propósitos diferentes. • Monitoramento é uma parte contida na observabilidade. • Podemos considerar que o monitoramento são os números, enquanto a observabilidade serve para prover contexto e ajudar a entender o que e como. Monitoramento Observabilidade
  18. Como implementar? Para implementar isso, considere: • Usando métricas disponíveis

    na plataforma que você está utilizando (como requests, por ex). Google Cloud Logging, AWS CloudWatch • Gerar e coletar logs padronizados e que permitam análises • Utilizar padrões e ferramentas. OpenTelemetry, OpenMetrics, Jaeger
  19. Que gerenciamento? • Uma boa prática é ter um manual

    de como reagir caso algum incidente tenha ocorrido. Esse manual precisa ter algumas etapas importantes para que possamos resolver da melhor forma possível
  20. Gerenciamento de incidentes 1. Detecção Aqui entram o monitoramento e

    observabilidade. De preferência, configure alertas sobre as métricas mais importantes. 2. Resposta Garantir que o incidente seja reportado a todos que precisam saber. Desenvolvedores do time responsável, liderança, etc.
  21. Gerenciamento de incidentes 3. Resolução Investigar, encontrar e entender a

    causa raiz do incidente. Implementar ajustes para minimizar o impacto, ou fazer rollback para uma versão estável (se disponível e possível). E documentar informações detalhadas sobre o incidente. 4. Outras coisas • Review pós incidente: aprender com os erros para sugerir melhorias de processo, garantir que TUDO será documentado. • Comunicação: manter os times internos informados sobre o status e o que está sendo feito; caso o incidente impacte usuários, prover comunicação clara e frequente sobre o problema e o progresso.
  22. Algumas referências • https://www.atlassian.com/devops/what-is-devops/history-of-devops • https://www.bunnyshell.com/blog/history-of-devops/ • https://www.atlassian.com/solutions/devops/guides/beginner • https://dora.dev/publications/

    • https://www.redhat.com/en/topics/devops • https://azure.microsoft.com/pt-br/resources/cloud-computing-dictionary/w hat-is-devops • https://aws.amazon.com/pt/devops/what-is-devops/ • https://www.youtube.com/watch?v=LdOe18KhtT4