Perguntas para Entrevista de Engenheiro DevOps Júnior: Guia Completo

Milad Bonakdar
Autor
Domine os fundamentos essenciais de DevOps com perguntas abrangentes para entrevistas, cobrindo Linux, Git, CI/CD, Docker, conceitos básicos de nuvem e Infraestrutura como Código para engenheiros DevOps juniores.
Introdução
A engenharia DevOps une desenvolvimento e operações, focando em automação, colaboração e melhoria contínua. Como um(a) engenheiro(a) DevOps júnior, você precisará de conhecimento fundamental de Linux, controle de versão, pipelines de CI/CD, conteinerização e plataformas de nuvem.
Este guia cobre as perguntas essenciais para entrevistas de engenheiros(as) DevOps júnior, organizadas por tópico para ajudá-lo(a) a se preparar de forma eficaz. Cada pergunta inclui respostas detalhadas, exemplos práticos e trechos de código práticos.
Fundamentos do Linux
1. Explique os comandos comuns do Linux que você usa diariamente como engenheiro(a) DevOps.
Resposta: Comandos essenciais do Linux para o trabalho DevOps:
Raridade: Muito Comum
Dificuldade: Fácil
2. Como você soluciona um problema de um serviço que não está sendo iniciado no Linux?
Resposta: Abordagem sistemática para a solução de problemas:
Problemas comuns:
- Erros de sintaxe na configuração
- Porta já em uso
- Permissão negada
- Dependências ausentes
- Espaço em disco insuficiente
Raridade: Muito Comum
Dificuldade: Média
Controle de versão com Git
3. Explique o fluxo de trabalho básico do Git e os comandos comuns.
Resposta: Fluxo de trabalho do Git para tarefas diárias de DevOps:
Melhores práticas:
- Escreva mensagens de commit claras
- Commite com frequência, envie regularmente
- Use branches de funcionalidade
- Puxe antes de enviar
- Revise as mudanças antes de commitar
Raridade: Muito Comum
Dificuldade: Fácil
4. Como você resolve um conflito de merge no Git?
Resposta: Resolução de conflito passo a passo:
Marcadores de conflito:
<<<<<<< HEAD- Sua branch atual=======- Separador>>>>>>> branch-name- Mudanças recebidas
Raridade: Comum
Dificuldade: Fácil-Média
Noções básicas de CI/CD
5. O que é CI/CD e por que é importante?
Resposta: CI/CD significa Integração Contínua e Entrega/Implantação Contínua.
Integração Contínua (CI):
- Construir e testar o código automaticamente a cada commit
- Detectar bugs precocemente
- Garantir que o código se integra corretamente
Entrega Contínua (CD):
- Implantar automaticamente em produção após a aprovação dos testes
- Ciclos de lançamento mais rápidos
- Redução de erros manuais
Benefícios:
- Ciclos de feedback mais rápidos
- Redução de problemas de integração
- Testes automatizados
- Implantações consistentes
- Time to market mais rápido
Raridade: Muito Comum
Dificuldade: Fácil
6. Explique um pipeline básico de CI/CD usando o GitHub Actions.
Resposta: Exemplo de fluxo de trabalho do GitHub Actions:
Conceitos chave:
- Gatilhos: Quando o pipeline é executado (push, PR, agendamento)
- Jobs: Tarefas independentes que podem ser executadas em paralelo
- Steps: Comandos individuais dentro de um job
- Artifacts: Arquivos passados entre os jobs
Raridade: Muito Comum
Dificuldade: Média
Docker e conteinerização
7. O que é Docker e por que usamos contêineres?
Resposta: Docker é uma plataforma para desenvolver, enviar e executar aplicações em contêineres.
Contêineres vs VMs:
- Os contêineres compartilham o kernel do SO do host (leve)
- As VMs incluem o SO completo (pesado)
- Os contêineres iniciam em segundos
- Melhor utilização dos recursos
Benefícios:
- Consistência: Mesmo ambiente em todos os lugares
- Isolamento: Os aplicativos não interferem
- Portabilidade: Executar em qualquer lugar
- Eficiência: Leve e rápido
Raridade: Muito Comum
Dificuldade: Fácil
8. Explique os comandos comuns do Docker.
Resposta: Comandos essenciais do Docker:
Raridade: Muito Comum
Dificuldade: Fácil
9. Escreva um docker-compose.yml para uma aplicação web com um banco de dados.
Resposta: Exemplo de aplicação multi-contêiner:
Conceitos chave:
- services: Definir contêineres
- depends_on: Dependências de serviço
- volumes: Armazenamento de dados persistente
- environment: Variáveis de ambiente
- ports: Mapeamento de portas
- restart: Política de reinicialização
Raridade: Comum
Dificuldade: Média
Noções básicas de nuvem
10. Explique a diferença entre IaaS, PaaS e SaaS.
Resposta: Modelos de serviço de nuvem:
IaaS (Infraestrutura como Serviço):
- Fornece: Máquinas virtuais, armazenamento, redes
- Você gerencia: SO, tempo de execução, aplicações
- Exemplos: AWS EC2, Azure VMs, Google Compute Engine
- Caso de uso: Controle total sobre a infraestrutura
PaaS (Plataforma como Serviço):
- Fornece: Ambiente de tempo de execução, bancos de dados, middleware
- Você gerencia: Aplicações e dados
- Exemplos: AWS Elastic Beanstalk, Heroku, Google App Engine
- Caso de uso: Foco no código, não na infraestrutura
SaaS (Software como Serviço):
- Fornece: Aplicações completas
- Você gerencia: Dados e configurações do usuário
- Exemplos: Gmail, Salesforce, Office 365
- Caso de uso: Aplicações prontas para uso
Raridade: Comum
Dificuldade: Fácil
11. Quais são os serviços básicos da AWS que um(a) engenheiro(a) DevOps deve conhecer?
Resposta: Serviços essenciais da AWS:
Compute:
- EC2: Servidores virtuais
- Lambda: Funções serverless
- ECS/EKS: Orquestração de contêineres
Storage:
- S3: Armazenamento de objetos
- EBS: Armazenamento de blocos para EC2
- EFS: Armazenamento de arquivos compartilhados
Networking:
- VPC: Nuvem privada virtual
- Route 53: Serviço DNS
- CloudFront: CDN
- ELB: Balanceamento de carga
Database:
- RDS: Bancos de dados relacionais gerenciados
- DynamoDB: Banco de dados NoSQL
DevOps Tools:
- CodePipeline: Serviço de CI/CD
- CodeBuild: Serviço de construção
- CloudWatch: Monitoramento e registro de logs
- IAM: Gerenciamento de acesso
Exemplo: Iniciar instância EC2 com AWS CLI:
Raridade: Muito Comum
Dificuldade: Média
Infraestrutura como código
12. O que é Infraestrutura como Código (IaC) e por que é importante?
Resposta: IaC é gerenciar a infraestrutura por meio de código em vez de processos manuais.
Benefícios:
- Controle de versão: Rastrear as mudanças na infraestrutura
- Reprodutibilidade: Criar ambientes idênticos
- Automação: Reduzir erros manuais
- Documentação: O código serve como documentação
- Consistência: Mesma configuração em todos os lugares
Ferramentas populares de IaC:
- Terraform: Provisionamento multi-cloud
- Ansible: Gerenciamento de configuração
- CloudFormation: Específico para AWS
- Pulumi: IaC baseado em código
Exemplo Terraform:
Raridade: Muito Comum
Dificuldade: Média
13. Explique o fluxo de trabalho básico do Terraform.
Resposta: Etapas do fluxo de trabalho do Terraform:
Estrutura de arquivos do Terraform:
Exemplo de variáveis:
Raridade: Comum
Dificuldade: Média
Monitoramento e registro de logs
14. Quais métricas você monitoraria para uma aplicação web?
Resposta: Métricas de monitoramento chave:
Métricas da aplicação:
- Tempo de resposta / latência
- Taxa de requisição (requisições por segundo)
- Taxa de erros (erros 4xx, 5xx)
- Throughput
Métricas do sistema:
- Uso da CPU
- Uso da memória
- I/O do disco
- I/O da rede
Métricas da infraestrutura:
- Status do contêiner/pod
- Disponibilidade do serviço
- Saúde do balanceador de carga
Exemplo de consulta Prometheus:
Limiares de alerta:
- Tempo de resposta > 500ms
- Taxa de erros > 1%
- Uso da CPU > 80%
- Uso da memória > 85%
- Uso do disco > 90%
Raridade: Comum
Dificuldade: Média
15. Como você centraliza os logs de vários servidores?
Resposta: Arquitetura de registro de logs centralizada:
Pilha comum (ELK):
- Elasticsearch: Armazenar e indexar logs
- Logstash/Fluentd: Coletar e processar logs
- Kibana: Visualizar e pesquisar logs
Exemplo de configuração do Filebeat:
Melhores práticas:
- Use registro de logs estruturado (JSON)
- Inclua IDs de correlação
- Defina políticas de retenção
- Indexe estrategicamente
- Monitore o volume de logs
Raridade: Comum
Dificuldade: Média
Noções básicas do Kubernetes
16. O que é Kubernetes e quais são seus componentes básicos?
Resposta: Kubernetes é uma plataforma de orquestração de contêineres que automatiza a implantação, o dimensionamento e o gerenciamento de aplicações em contêineres.
Componentes básicos:
Control Plane:
- API Server: Ponto de entrada para todos os comandos
- etcd: Armazenamento de chave-valor para dados do cluster
- Scheduler: Atribui pods aos nós
- Controller Manager: Mantém o estado desejado
Worker Nodes:
- kubelet: Gerencia pods no nó
- kube-proxy: Roteamento de rede
- Container Runtime: Executa contêineres (Docker, containerd)
Objetos básicos do Kubernetes:
1. Pod:
2. Deployment:
3. Service:
Comandos comuns do kubectl:
Raridade: Muito Comum
Dificuldade: Fácil
Gerenciamento de configuração
17. Explique os fundamentos do Ansible e escreva um playbook simples.
Resposta: Ansible é uma ferramenta de gerenciamento de configuração sem agente que usa SSH para configurar servidores.
Conceitos chave:
- Inventory: Lista de servidores para gerenciar
- Playbook: Arquivo YAML que define as tarefas
- Modules: Unidades de trabalho reutilizáveis
- Roles: Coleção organizada de tarefas
Arquivo de inventário:
Playbook simples:
Exemplo de template:
Executando Playbooks:
Estrutura de Roles do Ansible:
Usando Roles:
Comandos Ad-hoc:
Raridade: Comum
Dificuldade: Média
Scripting e automação
18. Escreva um script bash para automatizar uma tarefa comum de DevOps.
Resposta: O scripting Bash é essencial para a automação em DevOps.
Exemplo 1: Script de Backup
Exemplo 2: Script de Verificação de Saúde


