Skip to content

Diretrizes de Trabalho do DevOps

Estas diretrizes refletem o nosso jeito de ser e atuar como DevOps dentro dos projetos.

Nosso papel como DevOps é garantir que os processos de integração e entrega contínua existam e funcionem corretamente, promovendo a eficiência e a qualidade nas entregas. O DevOps não é responsável por fazer com que tudo aconteça, mas por monitorar e informar o time quando algo não estiver de acordo com as diretrizes, para que ações corretivas sejam tomadas. O DevOps deve demonstrar o valor de seguir as diretrizes listadas a seguir para manter a qualidade e eficiência, buscando atingir a excelência técnica dentro dos projetos.

1. Todas as mudanças são integradas e entregues continuamente

Objetivo: Garantir que todas as mudanças sejam integradas e entregues continuamente, mantendo a qualidade e a eficiência.

Critérios de Avaliação:

  • Cobertura de Integração Contínua:

    • A integração contínua é realizada em todos os processos/tipos de desenvolvimento (nova funcionalidade, sustentação, defeitos, etc.).
    • Utilizar diferentes tipos de pipelines (build, test, deploy) para cobrir todos os aspectos da aplicação.
  • Aprovação Baseada em Pipelines:

    • Nenhuma versão é entregue para produção sem passar pelo pipeline de CI/CD.
    • A aprovação deve ser documentada e registrada para auditoria futura.

Ferramentas Utilizadas:

  • Jenkins: Para automação de CI/CD.
  • GitLab CI: Para integração contínua e entrega contínua.
  • Travis CI: Para CI/CD em projetos hospedados no GitHub.
  • Azure Pipelines: Para CI/CD na plataforma Azure.
  • GoCD: Para CI/CD open-source.
  • ArgoCD: Para entrega contínua em Kubernetes.
  • GitHub Actions: Para CI/CD integrado ao GitHub.

2. Execução e monitoramento dos pipelines

Objetivo: Assegurar que todos os pipelines sejam executados de acordo com os processos estabelecidos e que as métricas e logs dos pipelines sejam devidamente monitorados.

Critérios de Avaliação:

  • Execução de Pipelines:

    • Todos os pipelines são executados conforme o processo de Execução de pipelines.
    • Garantir que os pipelines sejam executados em ambientes controlados e representativos do ambiente de produção.
  • Monitoramento de Pipelines:

    • Todos os pipelines são monitorados conforme o processo de Monitoramento de pipelines.
    • As métricas e logs dos pipelines devem ser analisados para identificar e resolver problemas rapidamente.

Ferramentas Utilizadas:

  • Prometheus: Para monitoramento e alerta.
  • Grafana: Para visualização de métricas.
  • ELK Stack: Para análise e visualização de logs (Elasticsearch, Logstash, Kibana).

3. Documentação de infraestrutura

Objetivo: Manter uma documentação clara e acessível da infraestrutura, scripts de automação e configurações, facilitando a manutenção e a resolução de problemas.

Critérios de Avaliação:

  • Documentação Completa:

    • A documentação da infraestrutura, scripts de automação e configurações é realizada e revisada nas demandas.
    • A documentação deve ser detalhada e incluir todos os aspectos relevantes para a manutenção e operação da infraestrutura.
  • Acessibilidade da Documentação:

    • A documentação é acessível a todos do projeto.
    • Utilizar ferramentas de colaboração (como Confluence ou SharePoint) para armazenar e compartilhar a documentação.
  • Revisão e Validação:

    • É possível que o DevOps tire dúvidas com membros do projeto sobre a documentação.
    • Realizar revisões periódicas da documentação para garantir que está atualizada e correta.

Ferramentas Utilizadas:

  • Confluence: Para documentação colaborativa.
  • SharePoint: Para armazenamento e compartilhamento de documentos.
  • Lucidchart: Para criação de diagramas e documentação visual.

4. Planejamento e criação de scripts de automação

Objetivo: Automatizar tarefas repetitivas e melhorar a eficiência dos processos de DevOps.

Critérios de Avaliação:

  • Planejamento de Scripts:

    • Identificar todas as tarefas que podem ser automatizadas.
    • Definir os requisitos e objetivos dos scripts de automação.
  • Criação de Scripts:

    • Escrever scripts detalhados e claros, seguindo as melhores práticas de codificação.
    • Utilizar técnicas de design de script (como modularidade e reutilização) para criar scripts eficazes.
  • Revisão e Teste de Scripts:

    • Revisar os scripts periodicamente para garantir que estão atualizados e relevantes.
    • Testar os scripts em um ambiente controlado antes de implementá-los em produção.

Ferramentas Utilizadas:

  • Bash: Para scripts em sistemas Unix/Linux.
  • Python: Para automação e scripts de alto nível.
  • PowerShell: Para automação em sistemas Windows.
  • Ansible: Para automação de configuração.
  • Terraform: Para automação de infraestrutura como código.