Pergunta de entrevista para Engenheiro DevOps

Como você mantém as imagens de container pequenas e seguras?

O que o entrevistador está avaliando, como estruturar sua resposta e um exemplo falado que você pode adaptar.

Resposta rápida

Use builds multi stage para que compiladores e dependências de build nunca cheguem à imagem final, comece de uma base mínima como distroless ou slim, e rode como usuário não root. Ordene as camadas para que a instalação de dependências fique em cache separada do código fonte, adicione um .dockerignore, fixe as imagens base por digest e faça varredura no build. Nunca passe segredos como build arguments, porque eles persistem no histórico das camadas.

Por que os entrevistadores perguntam isso

O entrevistador quer saber se você trata imagens como artefatos de build com uma cadeia de suprimentos ou como um lugar para despejar um sistema de arquivos. Ele procura builds multi stage e cache de camadas como as respostas de tamanho, e usuário não root, base mínima e digests fixados como as respostas de segurança. Mencionar que build arguments vazam para o histórico mostra experiência prática em vez de um checklist decorado.

Como estruturar sua resposta

  • Divida a resposta em tamanho e segurança para ela ficar organizada.
  • Cite builds multi stage e ordenação de camadas para tamanho.
  • Cubra escolha de imagem base, usuário não root e fixação para segurança.
  • Acrescente varredura, geração de SBOM e a armadilha de segredos nas camadas.

Exemplo de resposta

Exemplo falado, em primeira pessoa

Para tamanho, as duas coisas que fazem o trabalho pesado são builds multi stage e ordenação de camadas. Construa em uma imagem completa com o toolchain, depois copie só a saída compilada para um runtime mínimo, o que normalmente leva uma imagem de várias centenas de megabytes para dezenas. A ordenação importa porque a instalação de dependências deve ser a sua própria camada acima da cópia do código, senão toda mudança de código invalida o cache e reconstrói tudo. Um .dockerignore impede que o diretório .git local e o node_modules sejam enviados ao daemon. Para segurança, eu rodo como usuário não root com sistema de arquivos raiz somente leitura onde a aplicação permite, fixo a imagem base por digest para o rebuild ser reproduzível, e reconstruo com regularidade para os patches da base chegarem, em vez de fixar e esquecer. A varredura roda no pipeline e falha em achados de severidade alta com correção disponível, e a gente publica um SBOM junto com a imagem para conseguir responder a pergunta de quais serviços usam esta biblioteca em minutos quando o próximo aviso grande sair. Segredos nunca vão em build args; eles ficam visíveis no histórico.

Vai encarar essa entrevista em breve? O GhostPilot escuta a sua chamada ao vivo, identifica a pergunta no instante em que ela é feita e coloca uma resposta estruturada na sua tela em tempo real. Teste na sua próxima entrevista simulada ou pegue um Session Pass de $29, sem assinatura, para a hora da verdade.

Veja como funciona

Perguntas de acompanhamento que você pode esperar

  • Como você coloca um segredo em um build sem que ele fique em uma camada?
  • Como você lida com um achado do scanner que não tem correção disponível?
  • O que quebra quando você migra para uma base distroless, e como você depura isso?

Mais perguntas para Engenheiro DevOps

Seu entrevistador vai fazer a própria versão desta. Cole a descrição real da vaga no Question Predictor gratuito e receba as 20 perguntas que essa vaga tem mais chance de fazer, com o que cada uma está de fato sondando.

Prever minhas perguntas

Ensaie as perguntas difíceis antes que elas apareçam

Pratique com um copiloto ao vivo e depois entre pronto. Um Session Pass de $29 te leva até o fim da entrevista, sem assinatura e sem amarras.

Instalar o GhostPilot