Devops

1. Defina (e diferencie) os seguintes termos:

  • Integração contínua (continuous integration)

  • Entrega contínua (continuous delivery)

  • Deployment contínuo (continuous deployment)

  1. Suponha que você foi contratado por uma empresa que fabrica impressoras. E que ficou responsável por definir as práticas de DevOps adotadas no desenvolvimento dos drivers dessas impressoras. Qual das seguintes práticas você adotaria nesse desenvolvimento: deployment contínuo ou delivery contínuo? Justifique.

  2. Em julho de 2024, uma falha em dos sistemas de proteção de ataques da empresa CrowdStrike resultou em "telas azul" em mais de oito milhões de máquinas Windows ao redor do mundo. Discorra sobre uma prática de DevOps poderia ser usada para evitar esse incidente?

  3. Qual o "melhor" tipo de sistema para usar Continuous Deployment? Justifique.

  4. Estudo de caso para análise Prática: Análise e Proposta de Soluções DevOps para um Caso Real

Objetivo

Os estudantes irão analisar um cenário de desenvolvimento e operações de software e propor soluções baseadas em práticas DevOps para otimizar o fluxo de trabalho, melhorar a qualidade do software e acelerar a entrega contínua.

Cenário Proposto

A empresa SoftTech Solutions desenvolve um sistema web para gestão de pedidos de clientes. Atualmente, a equipe de desenvolvimento enfrenta os seguintes desafios:

  1. Ciclo de Deploy Lento: O time leva cerca de duas semanas para entregar novas funcionalidades ao ambiente de produção.

  2. Problemas com Integração de Código: Conflitos frequentes entre branches atrasam o desenvolvimento.

  3. Falta de Automação de Testes: Muitos bugs são descobertos apenas em produção.

  4. Infraestrutura Instável: O ambiente de produção sofre quedas inesperadas, exigindo intervenção manual da equipe de operações.

  5. Monitoramento Deficiente: Não há métricas de desempenho e logs estruturados para identificar problemas rapidamente.

Atividade

Os estudantes, organizados em grupos, deverão:

  1. Identificar os principais desafios do cenário e explicar os impactos que eles causam no ciclo de desenvolvimento e entrega do software.

  2. Propor soluções baseadas em práticas DevOps, explicando como cada prática ajudaria a mitigar os problemas.

  3. Elaborar um plano de implementação, considerando ferramentas e tecnologias apropriadas para cada solução.

Entregáveis

Cada grupo deverá apresentar:

  • Um relatório escrito contendo:

    • Diagnóstico do problema

    • Estratégias de solução baseadas em DevOps

    • Tecnologias e ferramentas recomendadas (Ex: Docker, Kubernetes, GitHub Actions, Jenkins, Prometheus, ELK Stack, etc.)

    • Plano de implementação (curto, médio e longo prazo)

  • Uma apresentação curta (5-10 min) defendendo suas propostas

Last updated