Perguntas para Entrevista de Engenheiro de Confiabilidade de Site Júnior: Guia Completo

Milad Bonakdar
Autor
Domine os fundamentos essenciais de SRE com perguntas abrangentes para entrevistas, cobrindo monitoramento, resposta a incidentes, SLOs, automação, solução de problemas do Linux e práticas de confiabilidade para funções de SRE júnior.
Introdução
A Engenharia de Confiabilidade de Sites (SRE) combina engenharia de software e administração de sistemas para construir e executar sistemas confiáveis em larga escala. Como um SRE júnior, você se concentrará no monitoramento, resposta a incidentes, automação e aprendizado de práticas de confiabilidade que mantêm os serviços funcionando sem problemas.
Este guia abrange as perguntas essenciais de entrevistas para SREs juniores, organizadas por tópico para ajudá-lo a se preparar de forma eficaz. Cada pergunta inclui respostas detalhadas, exemplos práticos e cenários práticos.
Fundamentos de SRE
1. O que é Engenharia de Confiabilidade de Sites e como ela difere de DevOps?
Resposta: SRE é a abordagem do Google para executar sistemas de produção de forma confiável em escala.
Princípios-chave:
- Tratar operações como um problema de software
- Máximo de 50% do tempo em trabalho operacional (toil)
- Orçamentos de erro para equilibrar confiabilidade e velocidade
- Postmortems sem culpa
- Lançamentos graduais e rollbacks automatizados
SRE vs DevOps:
SRE implementa os princípios de DevOps com práticas e métricas específicas.
Frequência: Muito Comum Dificuldade: Fácil
2. Explique SLIs, SLOs e orçamentos de erro.
Resposta: Esses são conceitos centrais de SRE para medir e gerenciar a confiabilidade:
SLI (Indicador de Nível de Serviço):
- Medida quantitativa do nível de serviço
- Exemplos: Latência, disponibilidade, taxa de erro
SLO (Objetivo de Nível de Serviço):
- Valor alvo para um SLI
- Exemplo: "99,9% das solicitações são bem-sucedidas"
Orçamento de Erro:
- Taxa de falha permitida (100% - SLO)
- Usado para equilibrar confiabilidade vs velocidade de recursos
Frequência: Muito Comum Dificuldade: Média
3. O que é toil e como você o reduz?
Resposta: Toil é trabalho operacional repetitivo e manual que:
- É manual (requer ação humana)
- É repetitivo
- Pode ser automatizado
- Não tem valor duradouro
- Cresce linearmente com o crescimento do serviço
Exemplos de toil:
- Reiniciar serviços manualmente
- Copiar arquivos entre servidores
- Escalar recursos manualmente
- Respostas repetitivas a tickets
Estratégias de redução de toil:
Objetivo de SRE: Manter o toil abaixo de 50% do tempo, automatizar o resto.
Frequência: Muito Comum Dificuldade: Fácil-Média
Monitoramento e Observabilidade
4. Qual é a diferença entre monitoramento e observabilidade?
Resposta: Monitoramento: Coletar métricas e alertas predefinidos
- Conhecido-desconhecido: Você sabe o que observar
- Dashboards, alertas, métricas
- Exemplos: CPU, memória, taxa de requisição
Observabilidade: Entender o estado do sistema a partir das saídas
- Desconhecido-desconhecido: Depurar problemas que você não previu
- Logs, métricas, rastreamentos combinados
- Pode responder a perguntas arbitrárias
Três Pilares da Observabilidade:
- Métricas: Números agregados (CPU, latência)
- Logs: Eventos discretos
- Rastreamentos: Fluxo de solicitação através do sistema
Exemplo: Prometheus + Grafana + Loki
Frequência: Comum Dificuldade: Média
5. Como você configura alertas eficazes?
Resposta: Bons alertas são acionáveis, significativos e não causam fadiga.
Melhores Práticas de Alerta:
1. Alerte sobre sintomas, não causas:
2. Inclua links para runbooks:
3. Use níveis de severidade apropriados:
4. Evite a fadiga de alertas:
- Use a duração
for:para evitar oscilações - Agrupe alertas relacionados
- Defina limites apropriados
- Revise e ajuste regularmente
Frequência: Muito Comum Dificuldade: Média
Resposta a Incidentes
6. Descreva seu processo de resposta a incidentes.
Resposta: Uma resposta a incidentes estruturada minimiza o impacto e o tempo de recuperação:
Etapas de Resposta a Incidentes:
1. Detecção:
- Alerta é acionado ou usuário relata problema
- Reconhecer o alerta
- Criar canal de incidente
2. Triagem:
3. Mitigação:
4. Resolução:
- Corrigir a causa raiz
- Verificar se as métricas retornam ao normal
- Monitorar a recorrência
5. Postmortem (Sem Culpa):
Frequência: Muito Comum Dificuldade: Média
7. Como você soluciona um serviço que está apresentando alta latência?
Resposta: Abordagem sistemática de depuração:
Causas comuns:
- Consultas lentas no banco de dados
- Tempos limite de API externa
- Pressão de memória (pausas de GC)
- Problemas de rede
- Esgotamento de recursos
- Caminhos de código ineficientes
Frequência: Muito Comum Dificuldade: Média
Automação e Scripting
8. Escreva um script para verificar se um serviço está saudável e reiniciá-lo se necessário.
Resposta: Script de verificação de saúde e auto-remediação:
Frequência: Comum Dificuldade: Média
Práticas de Confiabilidade
9. O que é um runbook e por que ele é importante?
Resposta: Um runbook é um procedimento documentado para lidar com tarefas operacionais e incidentes.
Estrutura do Runbook:
2. Identificar gargalo
- Verificar tempo de consulta do banco de dados
- Verificar chamadas de API externa
- Verificar taxa de acerto do cache
- Revisar implantações recentes
3. Verificar dependências
Etapas de Mitigação
Correções rápidas (< 5 minutos)
- Escalar instâncias do aplicativo
- Aumentar o TTL do cache temporariamente
Se o problema persistir
- Reverter a implantação recente
- Habilitar a limitação de taxa
Resolução
- Corrigir a causa raiz (consulta lenta, código ineficiente)
- Implantar a correção
- Monitorar por 30 minutos
- Reduzir a capacidade para o normal
Escalonamento
Se não for possível resolver dentro de 30 minutos:
- Escalonar para: @backend-team
- Canal do Slack: #incidents
- De plantão: Usar a política de escalonamento do PagerDuty
Relacionado
2. Circuit Breaker:
3. Timeouts e Retentativas:
Frequência: Comum Dificuldade: Média
Noções Básicas de Containerização
11. O que é Docker e como ele difere das máquinas virtuais?
Resposta: Docker é uma plataforma de containerização que empacota aplicativos com suas dependências.
Containers vs Máquinas Virtuais:
Principais Diferenças:
Noções Básicas de Docker:
Exemplo de Dockerfile:
Construir e Executar:
Docker Compose (Multi-container):
Executar com Docker Compose:
Melhores Práticas:
- Usar imagens base oficiais
- Minimizar a contagem de camadas
- Não executar como root
- Usar .dockerignore
- Taggear imagens corretamente
- Verificar vulnerabilidades
Frequência: Muito Comum Dificuldade: Fácil-Média
Controle de Versão e Implantação
12. Explique os fluxos de trabalho do Git e como você lida com as implantações.
Resposta: Git é essencial para controle de versão e automação de implantação.
Fluxo de Trabalho Git Comum:
Comandos Básicos do Git:
Estratégia de Branching:
1. Gitflow:
main: Código pronto para produçãodevelop: Branch de integraçãofeature/*: Novos recursosrelease/*: Preparação para lançamentohotfix/*: Correções de emergência
2. Desenvolvimento Baseado em Trunk:
Fluxo de Trabalho de Implantação:
1. Pipeline CI/CD (GitHub Actions):
2. Script de Implantação:



