Nos últimos anos, o termo DevOps passou do domínio dos especialistas em tecnologia para o vocabulário corporativo convencional. Em resumo, ele se refere a um conjunto de práticas que reúnem o desenvolvimento de software (Dev) e as operações de TI (Ops) para alavancar a colaboração e a eficiência.
O DevOps melhora muito a estratégia de desenvolvimento de software de uma organização. O problema é que isso não é fácil; de acordo com uma pesquisa da Gartner, 75% das iniciativas de DevOps em 2022 fracassarão. Sem os especialistas em DevOps certos, é provável que você tenha o mesmo destino.
Entretanto, com um processo de recrutamento bem planejado, é possível fazer uma ótima contratação e transformar a estratégia de software da sua empresa. Usando um teste de habilidades de DevOps, em combinação com as seguintes perguntas de entrevista de DevOps durante o processo de seleção de candidatos.
Sempre que possível, adapte as perguntas da entrevista aos requisitos de DevOps da sua organização. Com as 50 perguntas de entrevista sobre DevOps abaixo, distribuídas em diferentes tópicos e níveis de experiência, você pode fazer exatamente isso!
E se você não encontrar o que está procurando nas perguntas abaixo, considere dar uma olhada em nossas perguntas de entrevista sobre DevOps específicas para cada função, como nossas perguntas de entrevista sobre DevOps para Linux.
Nossas perguntas de entrevista sobre DevOps para iniciantes foram elaboradas para funções de engenheiro de DevOps júnior ou de nível básico, em que os candidatos têm experiência profissional limitada com a estrutura de DevOps.
Exemplo de resposta:
DevOps é um conjunto de práticas, ferramentas e filosofias usadas para melhorar a comunicação e a colaboração entre diferentes equipes ao fornecer novos softwares. Em resumo, ele preenche a lacuna entre os desenvolvedores e a equipe de TI.
O objetivo do DevOps é integrar a automação e o monitoramento em todos os estágios do ciclo de vida do desenvolvimento de software. Isso aumenta a velocidade com que novos sistemas e aplicativos podem ser fornecidos.
Exemplo de resposta:
As organizações usam vários tipos diferentes de ferramentas de DevOps, incluindo:
Ferramentas de controle de versão, como o Git
Ferramentas de integração contínua, como o Jenkins
Ferramentas de gerenciamento de configuração, como Puppet
Ferramentas de conteinerização, como Docker
Ferramentas de nuvem, como AWS
Ferramentas de monitoramento, como Nagios
Exemplo de resposta:
DevOps engloba vários processos diferentes no ciclo de vida de desenvolvimento de software. Dessa forma, os engenheiros de DevOps devem ter uma ampla gama de habilidades básicas e básicas, incluindo:
Um sólido entendimento de DevOps
Habilidades de comunicação e trabalho em equipe
Habilidades de segurança de software
Habilidades de tecnologia de nuvem
Exemplo de resposta:
O DevOps surgiu em grande parte como uma alternativa aos fluxos de trabalho Agile, como o Scrum. As principais diferenças incluem:
O DevOps reúne todas as equipes envolvidas no desenvolvimento e na manutenção de software, enquanto o Agile normalmente separa tarefas específicas para equipes diferentes
O DevOps enfatiza a consistência, a estabilidade e a automação, enquanto o Agile se concentra na adaptabilidade e no desenvolvimento iterativo
O DevOps abrange o fluxo completo do software, desde a concepção até a entrega e a manutenção, enquanto o Agile geralmente termina com a conclusão do código
Exemplo de resposta:
O gerenciamento de configuração (CM) é o processo no qual os sistemas de software são automatizados, atualizados, monitorados e gerenciados. Ele ajuda a reduzir o risco de falhas inesperadas no sistema e oferece maior agilidade para a equipe que trabalha com a estratégia de DevOps.
Exemplo de resposta:
A integração contínua (CI) é o processo no qual a integração das alterações de código em um projeto de software é automatizada. Ela permite que os desenvolvedores mesclem as alterações de código em um único repositório sempre que uma nova alteração for feita, melhorando, assim, a colaboração e a transparência.
Exemplo de resposta:
O teste contínuo envolve testes regulares de software em cada estágio do ciclo de vida do desenvolvimento para garantir que os erros sejam corrigidos rapidamente. Ele fornece feedback contínuo para que os desenvolvedores possam avaliar a qualidade do software durante todo o processo de entrega.
Exemplo de resposta:
A automação de testes é o processo de revisão e validação automática de scripts para verificar a funcionalidade do programa. Ocorre com o mínimo de intervenção humana para que possa ser realizado de forma mais sensível ao tempo.
Exemplo de resposta:
O monitoramento contínuo refere-se ao monitoramento regular do software em cada estágio do ciclo de vida do desenvolvimento para garantir o desempenho, a confiabilidade e a conformidade do aplicativo e da infraestrutura. Isso proporciona transparência e facilita a detecção antecipada de qualquer problema.
Exemplo de resposta:
A ramificação é uma técnica usada pelos desenvolvedores nos sistemas de controle de versão, em que o código-fonte é copiado para criar duas versões que são desenvolvidas separadamente. Essas ramificações podem ser desenvolvidas independentemente sem afetar a base de código, promovendo assim a colaboração.
Exemplo de resposta:
O Jenkins é a ferramenta de integração contínua e entrega contínua (CI/CD) mais popular do mercado atualmente. Praticamente todas as equipes de DevOps contam com o Jenkins para automatizar partes do desenvolvimento de software relacionadas à criação, ao teste e à implantação de aplicativos.
Exemplo de resposta:
O desenvolvimento de aplicativos consiste nas seguintes operações principais:
Programação
Teste de unidade
Empacotamento
Implantação
A infraestrutura consiste em:
Provisionamento
Configuração
Monitoramento
Implantação
Exemplo de resposta:
O Git é um sistema popular de controle de versão de código aberto usado para rastrear alterações no código-fonte, criar vários scripts e, por fim, melhorar a colaboração entre os desenvolvedores. É uma ferramenta essencial no estágio de programação do ciclo de vida do desenvolvimento de software.
Exemplo de resposta:
SSH, ou Secure Shell, é um protocolo de rede para criptografar com segurança todos os dados compartilhados de um computador em uma rede. Ele cria um canal seguro separado para comunicação e compartilhamento de dados que se sobrepõe a redes não seguras.
Exemplo de resposta:
Os sistemas de controle de versão melhoram a eficiência da programação. Isso é obtido por meio de:
Rastreabilidade: O controle de versão rastreia as alterações no código de todos os desenvolvedores, fornecendo um histórico claro que ajuda a melhorar a funcionalidade do software
Ramificação: O controle de versão permite que os desenvolvedores trabalhem no código de forma independente, sem afetar as contribuições de outros colaboradores
Redução de erros: O controle de versão ajuda a detectar a causa raiz dos erros de software, bem como qualquer duplicidade de código para facilitar a remoção
Exemplo de resposta:
Antipadrões são ideias que são contraproducentes para a filosofia DevOps. Elas geralmente corrigem um problema de curto prazo às custas de um objetivo de longo prazo. Alguns exemplos incluem:
DevOps é um processo em vez de uma cultura
DevOps é conduzido pelo desenvolvimento ou pelas operações de TI, em vez de uma combinação de ambos
Exemplo de resposta:
A computação em nuvem fornece uma plataforma de comunicação centralizada e dimensionável para as equipes de DevOps em cada estágio do ciclo de vida de desenvolvimento de software. Ela permite que os membros da equipe colaborem de forma mais rápida e próxima.
Essas perguntas intermediárias de entrevista sobre DevOps são perfeitas para funções de nível médio, em que os candidatos já têm alguma experiência profissional com a estrutura de DevOps.
Exemplo de resposta:
O ciclo de vida do desenvolvimento de software consiste em planejamento, programação, criação, teste, lançamento, implantação e monitoramento. Quando aplicado ao DevOps, há quatro fases principais:
Integração Contínua, que inclui os estágios de programação e construção
Entrega Contínua, que consiste nos estágios de teste e lançamento
Implantação Contínua, que inclui os estágios de liberação e implantação
Feedback contínuo, que consiste no estágio de monitoramento
Exemplo de resposta:
Quando implementado de forma eficaz, o DevOps transforma as empresas. Os principais benefícios incluem:
Tempos de implantação mais rápidos
Ambiente de trabalho mais colaborativo
Melhor experiência do cliente
Detecção de defeitos mais cedo
Melhor resolução de defeitos
Tempo economizado pela automação
Exemplo de resposta:
A entrega contínua e a implantação contínua são duas partes da integração contínua:
Entrega contínua implanta todas as alterações de código em um ambiente de teste ou produção
Implantação contínua libera automaticamente novas alterações para os clientes
Exemplo de resposta:
O Docker é uma ferramenta de conteinerização usada pelas equipes de DevOps durante o estágio de implantação contínua. Ele empacota aplicativos e todas as suas partes constituintes em contêineres de software, que ficam prontos para implantação em diferentes sistemas operacionais.
Exemplo de resposta:
CAMS é um acrônimo usado para descrever quatro dos principais princípios de DevOps. Eles incluem:
Cultura: O DevOps é sustentado por uma cultura de colaboração e transparência
Automação: O DevOps estabelece sistemas repetíveis (ou automatizados) para reduzir erros e economizar tempo
Medição: O DevOps se baseia no acompanhamento contínuo do desempenho e no feedback para melhorar a eficiência
Compartilhamento: As equipes de DevOps compartilham todas as informações e feedback, inclusive os problemas
Exemplo de resposta:
As duas principais estratégias de ramificação disponíveis para os desenvolvedores são:
Ramificação de versão, que cria uma ramificação para uma possível nova versão
Ramificação de recursos, que cria uma ramificação para recursos ou tarefas específicas
Exemplo de resposta:
Há uma grande variedade de KPIs no campo do DevOps. Alguns dos mais eficazes são:
Frequência de implantação: Mede a frequência com que novos recursos são lançados
Volume de mudanças: Mede a extensão em que o código é alterado em novas implantações
Taxa de falhas de implantação: Mede a frequência com que novas implantações levam a interrupções ou outros problemas
Tempo de implantação: Mede o tempo necessário para implementar novas implantações
Tempo médio de recuperação: Mede o tempo médio necessário para se recuperar de uma falha no sistema
Exemplo de resposta:
O Puppet é uma ferramenta de gerenciamento de configuração de software de código aberto amplamente usada que oferece suporte a testes automatizados, integração contínua e entrega contínua. Ele foi projetado especificamente para sistemas Windows e Linux.
A infraestrutura do Puppet consiste no ambiente do servidor principal, que armazena todos os códigos, e no ambiente do cliente, a partir do qual os clientes se comunicam com o servidor principal.
Exemplo de resposta:
A automação de testes é o processo de automatizar um conjunto de tarefas para aumentar a velocidade e reduzir erros.
O teste contínuo, por outro lado, abrange um escopo mais amplo de aplicativos. Ele se concentra nos riscos comerciais e se propõe a obter melhorias contínuas que reduzam esses riscos.
Exemplo de resposta:
O Nagios é um sistema de monitoramento de código aberto amplamente utilizado que executa verificações periódicas nos parâmetros críticos de servidores, redes e aplicativos.
Ele mantém as equipes de DevOps atualizadas sobre itens como memória, uso de disco, arquivos de log e carga do microprocessador. Ao oferecer suporte ao monitoramento contínuo, o Nagios alerta a equipe técnica sobre os problemas antes que eles se materializem e afetem o usuário final.
Exemplo de resposta:
O gerenciamento de configuração refere-se ao gerenciamento de ativos como entidades dentro do pipeline de desenvolvimento de software. Isso envolve analisar a precisão e a confiabilidade de diferentes itens de configuração, bem como os relacionamentos que eles têm entre si.
O gerenciamento de ativos, por outro lado, analisa esses ativos de uma perspectiva financeira. Ele rastreia os itens desde o ponto de aquisição até o descarte, para determinar se eles oferecem valor econômico suficiente para a organização.
Exemplo de resposta:
O Ansible é uma ferramenta popular de automação de DevOps usada durante as fases de construção, configuração e gerenciamento. Ao automatizar processos como teste e implantação, o Ansible ajuda as equipes de DevOps a economizar tempo, reduzir erros e escalar no ritmo da crescente demanda.
Exemplo de resposta:
A programação em pares é uma técnica de programação popular em que dois desenvolvedores trabalham juntos na mesma tarefa, compartilhando um único computador. Normalmente, um desenvolvedor escreve o código, enquanto o outro revisa cada linha de código à medida que ela é digitada.
Exemplo de resposta:
O Chef é uma ferramenta popular de gerenciamento de configuração que oferece suporte à entrega contínua automatizando processos em vários estágios de DevOps. Usando a linguagem de programação Ruby, o Chef traduz as tarefas do sistema em ações repetíveis, conhecidas como receitas e livros de receitas.
Exemplo de resposta:
As reuniões post-mortem são usadas pelas equipes de DevOps normalmente entre o lançamento de uma nova iteração e o estágio de planejamento da próxima. Os membros da equipe discutem os sucessos e os fracassos do projeto anterior, refletindo sobre o que pode ser melhorado na próxima vez.
Exemplo de resposta:
O Selenium é uma estrutura popular de código aberto para testar aplicativos da Web. É amplamente usado por equipes de DevOps, permitindo que implementem testes automatizados sem a necessidade de usar uma linguagem formal de script de teste.
Exemplo de resposta:
As ferramentas de computação em nuvem, como AWS e Azure, dão suporte às fases de CI/CD (integração contínua e desenvolvimento contínuo) do ciclo de vida do DevOps. Elas permitem que as equipes de DevOps compartilhem código, acompanhem o trabalho e implantem software remotamente, em qualquer plataforma.
Nossas perguntas avançadas para entrevistas sobre DevOps foram escolhidas a dedo para funções sênior de DevOps, nas quais os candidatos já têm experiência profissional significativa na área.
Exemplo de resposta:
O desempenho de uma iniciativa de DevOps pode ser melhorado das seguintes maneiras:
Crie um roteiro claro durante a fase de planejamento
Use KPIs baseados em eficiência
Use armazenamento centralizado
Realize testes de regressão
Concentre-se na cultura e não nos processos
Atualize a infraestrutura de DevOps
Exemplo de resposta:
As práticas de segurança devem ser incorporadas em cada etapa do ciclo de vida do DevOps. Para implementá-las, as equipes podem:
Formalizar as políticas de segurança cibernética dentro da equipe
Usar o gerenciamento de acesso privilegiado
Usar o gerenciamento de segredos
Segmentar o acesso à rede
Automatizar os processos de segurança
Exemplo de resposta:
O termo "shift left to reduce failure", ou simplesmente "shift left", refere-se aos esforços das equipes de DevOps para identificar defeitos o mais cedo possível no ciclo de vida de desenvolvimento de software. Essencialmente, envolve testes regulares no início do pipeline de desenvolvimento em vez de no final.
Exemplo de resposta:
O padrão de implantação azul-verde é uma estratégia de implantação que visa a reduzir os riscos de novas versões. Ele envolve a execução de dois ambientes de produção separados (azul e verde), um para o sistema de produção atual e o outro para preparar a nova versão.
O tráfego é transferido gradualmente do antigo ambiente de produção para a nova versão assim que os testes são concluídos e o software é implantado. A nova versão se torna ativa e, depois que o tráfego é completamente transferido, o ambiente de produção antigo fica inativo.
Exemplo de resposta:
O padrão de implantação canário é uma estratégia de implantação que visa a minimizar o impacto de possíveis defeitos em uma nova versão de software. Ele envolve a distribuição de atualizações para um pequeno subconjunto de usuários antes de torná-las universalmente disponíveis.
A equipe de desenvolvimento usa um roteador ou balanceador de carga para direcionar rotas individuais com a nova versão. Após o lançamento, as métricas são coletadas para avaliar o desempenho da atualização e é tomada uma decisão sobre se a versão está pronta para ser implementada em uma escala maior.
Exemplo de resposta:
Infraestrutura como código (IaC) é o gerenciamento da infraestrutura de um aplicativo por meio de software (ou seja, código) em vez de processos manuais.
O conceito de infraestrutura como código pode ser implementado em vários estágios do ciclo de vida do DevOps (controle de versão, integração contínua e automação de testes) por meio da escrita de código. Esse processo facilita mudanças mais eficientes, confiáveis e seguras nos aplicativos.
Exemplo de resposta:
Git fetch e git pull são dois comandos importantes no GitHub que muitas vezes são confundidos.
O Git fetch recupera os dados mais recentes do repositório remoto, mas sem integrar esses dados aos branches de trabalho. O Git pull, por outro lado, recupera e atualiza os branches locais com as novas informações de seus branches remotos correspondentes.
Exemplo de resposta:
Git merge e git rebase são dois comandos no GitHub usados para integrar alterações de um branch em outro. No entanto, eles integram essas alterações de maneiras diferentes.
Um git merge cria um novo commit do branch principal, enquanto um git rebase reescreve as alterações de um branch em outro sem criar um novo commit.
Exemplo de resposta:
A conteinerização e a virtualização são os dois métodos mais populares para hospedar aplicativos em um sistema de computador.
A virtualização permite que os desenvolvedores executem vários sistemas operacionais no hardware de um único servidor físico. A conteinerização permite que os desenvolvedores implantem vários aplicativos com o mesmo sistema operacional em uma única máquina virtual ou servidor.
Exemplo de resposta:
O teste de regressão avalia como um aplicativo se comporta após a implantação de uma nova alteração. Ele deve ser realizado entre o teste de integração e o teste de usuário.
O teste de regressão pode ser implementado verificando o código original após novas alterações ou avaliando como as atualizações afetam o desempenho. Ele também pode ser automatizado.
Exemplo de resposta:
Os serviços na nuvem e no local são os dois principais caminhos de hospedagem de dados disponíveis para as equipes de DevOps. Com os serviços locais, os dados são armazenados em servidores internos. Com os serviços em nuvem, os dados são hospedados remotamente por um provedor terceirizado.
Há pontos fortes e fracos em ambas as estratégias, que podem ser resumidos da seguinte forma:
Os serviços em nuvem oferecem menos controle de segurança sobre os dados e a infraestrutura, mas são mais escaláveis, oferecem serviços extras e, normalmente, têm custos mais baixos
Os serviços locais têm grandes custos de manutenção e ameaças de segurança exclusivas, mas oferecem maior controle e escopo de personalização
Exemplo de resposta:
O balanceamento de carga é o processo de distribuição uniforme do tráfego de rede de entrada em um grupo de servidores de back-end. Ele ocorre durante a fase de implantação do ciclo de vida do DevOps e geralmente é automatizado pelos desenvolvedores.
Exemplo de resposta:
Toda equipe de DevOps deve ter uma estrutura de resolução de problemas estabelecida. Algumas das práticas recomendadas para a solução de problemas são:
Definir responsabilidades de resolução de problemas dentro da equipe
Reunir informações relevantes, incluindo métricas, logs e erros
Hipotetizar possíveis causas e eliminá-las uma a uma
Monitorar de perto o comportamento após a correção do problema
Relatar a resolução do problema
Exemplo de resposta:
Os três principais tipos de serviços em nuvem são:
Infraestrutura como serviço (IaaS), que fornece acesso baseado na Internet ao armazenamento e à capacidade de computação, enquanto o desenvolvedor é responsável por gerenciar todo o resto
Plataforma como serviço (PaaS), que ajuda os desenvolvedores a criar aplicativos da Web sem precisar gerenciar a infraestrutura subjacente, como redes, servidores e armazenamento
Software como serviço (SaaS), que hospeda todos os componentes do aplicativo de software, inclusive servidores, armazenamento, dados e o próprio aplicativo
Exemplo de resposta:
O monitoramento é um processo de rastreamento e coleta de dados que ajuda as equipes de DevOps a entender melhor o estado atual de seus sistemas. A observabilidade, por outro lado, usa essas descobertas para diagnosticar problemas e resolvê-los ativamente por meio da depuração.
Exemplo de resposta:
Com o controle de versão centralizado, o repositório remoto do servidor fornece o código mais recente às máquinas clientes. Com o controle de versão descentralizado, ou distribuído, a base de código completa é disponibilizada no repositório local de cada computador.
Nossas perguntas de entrevista sobre DevOps devem ser guardadas até os estágios finais do seu processo de seleção. Antes de marcar as entrevistas, você deve implantar vários estágios de triagem para filtrar as inscrições iniciais e identificar os candidatos mais promissores.
A melhor maneira de fazer isso é usar uma avaliação de habilidades de DevOps como seu primeiro estágio de inscrição. Os testes de habilidades podem ser adaptados às necessidades da sua vaga e permitirão que você exclua imediatamente candidatos inadequados e selecione os melhores para convidar para uma entrevista.
Há uma grande variedade de avaliações de DevOps disponíveis, permitindo que você estruture seu processo de recrutamento para atender às suas necessidades comerciais específicas. Aqui estão algumas avaliações de DevOps que você pode considerar:
Um teste de DevOps, que abrange o escopo completo dos conceitos de DevOps
Um teste de Docker, que se concentra na ferramenta padrão de conteinerização de DevOps, o Docker
Um teste de AWS, que se concentra na popular ferramenta de nuvem de DevOps, AWS
As funções dentro de uma equipe de DevOps variam muito, por isso é fundamental adaptar suas avaliações para obter o melhor resultado.
Para obter uma compreensão profunda das habilidades de seus candidatos, você pode combinar os testes de habilidades de DevOps com outras avaliações específicas do cargo, testes de habilidade cognitiva, ou testes de personalidade e cultura. Com a TestGorilla, você pode combinar até 5 testes de habilidades em uma única avaliação, o que ajudará você a identificar rapidamente os melhores candidatos.
O uso de perguntas e tarefas específicas para cada cargo, juntamente com outros métodos confiáveis, como avaliações de habilidades interpessoais e testes de afinidade cultural é a melhor maneira de melhorar a qualidade da contratação.
Para obter os melhores resultados, as avaliações devem ser adaptadas às suas necessidades específicas de contratação. Isso também se aplica às suas entrevistas, nas quais você deve selecionar as perguntas com base nos requisitos do cargo.
Por exemplo, se estiver contratando alguém para trabalhar principalmente na implementação de software, não deixe de perguntar sobre a experiência dessa pessoa com o Docker e inclua algumas perguntas complexas sobre o Docker. Se precisar de alguém com experiência em Linux, considere adicionar algumas perguntas de entrevista sobre comandos do Linux.
Descobrir a melhor estratégia para contratar um engenheiro de DevOps é uma tarefa complicada; afinal, faz pouco mais de uma década que esta função surgiu. O processo de recrutamento deve ser abordado da mesma forma que para qualquer função: faça sua pesquisa e escolha avaliações que reflitam os requisitos da função.
Ao adaptar seu processo de seleção às necessidades da função e às da estrutura mais ampla de DevOps, é possível encontrar um candidato que contribuirá desde o primeiro dia. E com os membros certos na equipe, sua empresa poderá tirar o máximo proveito de sua estratégia de desenvolvimento de software.
Comece hoje mesmo a usar a TestGorilla e passe a tomar melhores decisões de contratação, mais rapidamente e sem vieses.
Em minutos, você cria avaliações para selecionar as pessoas candidatas ideais, economizar tempo e contratar profissionais excelentes.
Sem spams. Cancele a assinatura quando quiser.
Com nossos testes, fica muito fácil encontrar a pessoa certa para sua vaga e tomar decisões acertadas e justas durante todo o processo.