46 perguntas e respostas frequentes sobre DevOps [2023]

Publicados: 2023-01-12

Quer saber quais perguntas fazer durante sua próxima entrevista de DevOps? Comece com nosso guia prático.

O termo DevOps foi cunhado em 2007-2008, mas agora se tornou uma das carreiras mais populares em engenharia de software. DevOps é uma mudança cultural que afeta todos os aspectos do desenvolvimento e das operações.

As duas equipes (desenvolvimento e operações) trabalham juntas desde o planejamento e construção até o monitoramento e iteração. Estas são as perguntas mais comuns que você provavelmente encontrará se procurar uma função de engenheiro de DevOps.

O que é DevOps

O que é DevOps?

DevOps é a forma abreviada de desenvolvimento e operações. Essa prática de engenharia de software reúne as equipes de desenvolvimento e operação para automatizar todas as etapas de um projeto. Uma equipe DevOps se concentra no gerenciamento de recursos, comunicação e trabalho em equipe.

Quais são as diferentes fases na metodologia DevOps

  • Desenvolvimento contínuo. Esta é a fase de planejamento e codificação.
  • Integração contínua. Esta é a fase em que a equipe de desenvolvimento integra diferentes componentes e garante que o código não quebre.
  • Testes contínuos. Esta é a fase de teste pré-agendada e automatizada.
  • Implantação contínua. Essa fase garante um desenvolvimento sem problemas, o que não afeta o desempenho de todo o aplicativo.
  • Monitoramento contínuo. Esta fase garante a eficácia geral do aplicativo.
  • Feedback contínuo. Os problemas e o desempenho relatados pelos usuários finais são analisados.
  • Operações contínuas. Permite que os desenvolvedores criem versões melhores do produto e detectem problemas rapidamente.

Quais são os benefícios do DevOps?

  • Entrega mais rápida e melhor do produto
  • Maior escalabilidade
  • Resolução rápida de problemas
  • Melhor utilização de recursos

Cite algumas ferramentas de DevOps

  • Ferramentas de Integração Contínua como Jenkins
  • Controle de versão como Git
  • Crie ferramentas como o Maven
  • Ferramentas de gerenciamento de configuração, como Chef
  • Plataformas de contêineres, como Docker

Cite alguns KPI de DevOps

  • Frequência de implantação
  • Alterar volume
  • tempo de implantação
  • Taxas de implantação com falha
  • Detecção de tempo
  • Taxa de fuga de defeitos

Diferença entre DevOps e ágil

DevOps é uma cultura que promove a colaboração entre todos os membros da equipe envolvidos no desenvolvimento e manutenção de software.

Agile é uma metodologia de desenvolvimento projetada para tornar as equipes produtivas e impulsionar os lançamentos com base nas necessidades em constante mudança.

Qual é o papel da AWS no DevOps

A AWS tem um conjunto de serviços flexíveis que ajudam as empresas a desenvolver aplicativos de forma confiável e rápida. Os serviços da AWS simplificam a implantação de código, provisionam e simplificam a infraestrutura, automatizam os processos de lançamento de software e monitoram o desempenho da infraestrutura.

Qual é a utilidade do SSH?

SSH (Secure Shell) é um protocolo que permite uma conexão segura entre diferentes computadores. O SSH atende a diferentes propósitos, como oferta; autenticação forte, criptografia forte, manutenção da integridade da conexão, conexão forte e segurança.

O que é integração contínua?

A integração contínua permite que os desenvolvedores de software mesclem seus códigos em um repositório central. O código é então levado através de compilações e testes automatizados.

O que é gerenciamento de configuração?

É um processo de engenharia de sistema para estabelecer e manter a consistência do desempenho de um sistema/produto e atributos funcionais e físicos ao longo de seu ciclo de vida.

O que é teste contínuo?

Isso é um teste pré-agendado e automatizado de um aplicativo à medida que o desenvolvimento avança.

O que é Git?

Esta é uma ferramenta de código aberto e gratuita para gerenciamento de código-fonte. Esta ferramenta foi projetada para lidar com projetos pequenos e grandes.

Mencione alguns comandos básicos do Git

  • Git clone
 git clone <https://name-of-the-repository-link>
  • ramificação git
 git branch <branch-name>
  • Git checkout
 git checkout <name-of-your-branch>
  • Git add
 git add <file>
  • Git commit
 git commit -m "commit message"
  • Git push
 git push <remote> <branch-name>
  • Git pull
 git pull <remote>

Explique a diferença entre Git merge e Git rebase

O comando Git merge permite que os desenvolvedores mesclem diferentes branches Git enquanto os logs de commits dos respectivos branches permanecem intactos.

O comando Git rebase permite que os desenvolvedores integrem as alterações de uma ramificação para outra, e os logs são alterados assim que o processo é concluído.

Explique a diferença entre Git fetch e Git pull

Git fetch diz ao git para recuperar/verificar os metadados mais recentes do original. No entanto, ele não faz nenhuma transferência de arquivo, apenas verifica.

Git pull verifica e traz alterações do repositório remoto para o projeto local.

O que é um conflito de mesclagem?

Os conflitos de mesclagem ocorrem quando você mescla duas ramificações com confirmações concorrentes. Os conflitos de mesclagem geralmente ocorrem quando diferentes desenvolvedores alteram a mesma linha de código ou arquivo.

O que é controle de versão e quais são os diferentes tipos?

O controle de versão (controle de origem) é o processo de rastreamento e gerenciamento de alterações no código do software.

Esses são os diferentes tipos de controles de versão;

  • Centralizado – tem uma única cópia “central” do código-fonte em um servidor e todas as alterações são confirmadas na cópia 'central'. Subversion (SVN) e Perforce são exemplos de controles de versão centralizados.
  • Distribuído (DVCS) -não possui um servidor central para armazenar todos os arquivos do projeto. Git e Mercurial são exemplos de DVCS.

Quais são os benefícios de usar o controle de versão?

  • Ajuda os desenvolvedores a preservar a eficiência e a agilidade
  • Fornece um registro completo de todas as alterações em um projeto/arquivo
  • Melhorar a rastreabilidade
  • Ajuda no gerenciamento de fusões e ramificações
  • Habilita a colaboração

O que é ramificação?

A ramificação refere-se à criação de uma nova/separada versão do repositório principal. As ramificações permitem que você trabalhe em várias partes do projeto sem afetar a ramificação principal.

O que são estratégias de ramificação?

Estratégias de fusão são as metodologias que as equipes de desenvolvimento de software adotam ao escrever, mesclar e implantar código. Essa abordagem garante que bugs e erros sejam corrigidos em um estágio de ramificação antes de serem mesclados com o projeto principal.

O que é teste de automação e como automatizar o teste no DevOps?

O teste de automação é uma técnica de revisão e validação automática do código. O teste de automação é feito para verificar se os padrões de qualidade para funcionalidade (lógica de negócios), estilo de código e experiência do usuário foram atendidos.

O teste de automação é feito usando ferramentas como Selenium e Katalon.

O que é Jenkinsfile?

Jenkinsfile é um arquivo de texto que contém a definição de um pipeline Jenkins. Jenkinsfile é verificado no repositório de controle de origem. Alguns de seus usos são; ele permite uma trilha de auditoria para o pipeline, permite revisão de código e iteração no pipeline e fornece uma única fonte de verdade no pipeline.

Explique a arquitetura em Jenkins

Jenkins tem uma arquitetura mestre-escravo. Isso significa que há muitos 'escravos' trabalhando para um 'mestre'. O Jenkins Distributed Build pode, portanto, executar testes idênticos em diferentes ambientes, com resultados coletados e combinados no nó mestre para monitoramento.

Quais são os principais plugins do Jenkins?

  • Plug-in Blue Ocean para Jenkins
  • Plugin Mailer para Jenkins
  • Plug-in Git para Jenkins
  • Plug-in do Jira para Jenkins
  • Plug-in do Docker para Jenkins
  • Plug-in de integração Maven para Jenkins
  • Plug-in do Kubernetes para Jenkins
  • Plug-in SonarQube para Jenkins
  • Plug-in Amazon EC2 para Jenkins

O que é Selenium IDE?

O Selenium IDE é uma ferramenta que registra as interações do navegador para casos de teste. Você pode definir pontos de interrupção e verificar e pausar variáveis ​​quando ocorrerem erros com o Selenium Integrated Development Environment.

Quais são os diferentes componentes do selênio?

  • Selenium IDE
  • Selênio RC
  • Selenium WebDriverName
  • Grade de Selênio

Quais são os diferentes tipos de teste no Selenium?

  • Teste de ponta a ponta
  • Teste de regressão
  • Teste do sistema
  • Teste de performance
  • Teste de compatibilidade

Quais são as diferentes exceções no Selenium?

  • ElementNotSelectableException
  • NoAlertPresentException
  • InvalidSelectorException
  • NoSuchSessionException
  • StaleElementReferenceException
  • NoSuchWindowException
  • NoSuchFrameException
  • NoSuchElementException
  • TimeoutException
  • ElementNotVisibleException

O que são driver.close() e driver.quit() no WebDriver?

O comando driver.close() fecha a janela do navegador em foco. Se apenas um navegador estiver aberto, ele fecha toda a sessão do navegador.

O comando driver.quit() fecha toda a sessão do navegador com pop-ups, guias e janelas do navegador.

O que é um Dockerfile?

Dockerfile é um documento de texto com todos os comandos que um usuário pode usar em uma linha de comando para montar uma imagem.

Diferenças entre imagens do docker e contêiner docker

As imagens do Docker são modelos somente leitura criados com códigos-fonte, ferramentas, bibliotecas, dependências externas e outros arquivos necessários para que qualquer aplicativo seja executado com êxito em qualquer sistema operacional ou plataforma.

Um contêiner docker é uma caixa que executa modelos de imagem docker.

Explique a arquitetura do Docker

O Docker segue uma arquitetura cliente-servidor e compreende Docker Client, Docker Host e Docker Registry.

O Docker Client usa APIs e comandos REST para se comunicar com o servidor (Docker Daemon).

Docker Client usa CLI para executar esses comandos

 docker build docker pull docker run
  • O Docker Host fornece um ambiente para executar e executar aplicativos. Composto de daemon docker, armazenamento, imagens, contêineres e redes.
  • O Docker Registry gerencia e armazena imagens do Docker.

Plataformas de nuvem que suportam docker

As plataformas que suportam hospedagem docker são;

  • Kamatera
  • Google Cloud Run
  • Hospedagem A2
  • StackPath
  • Sloppy.io
  • Amazon ECS
  • Microsoft Azure
  • HostPresto
  • Vultr

O que é Nagios?

O Nagios é uma ferramenta que monitora toda a infraestrutura de TI para garantir que os processos de negócios, sistemas, serviços e aplicativos estejam funcionando corretamente.

Como o Nagios funciona?

  • Monitoramento . A equipe de TI configura o Nagios para monitorar protocolos de rede, métricas de sistema, aplicativos, infraestrutura de rede, serviços e servidores.
  • Alertando . O Nagios envia alertas quando componentes críticos falham. Os alertas podem ser por SMS, código personalizado ou e-mails.
  • Resposta . A equipe de TI reconhece alertas e atua.
  • Relatórios . São gerados relatórios que fornecem um registro histórico de notificações, interrupções, respostas de alerta e eventos para análise posterior.
  • Manutenção . O tempo de inatividade programado impede que alertas sejam enviados durante a manutenção.

Mencione alguns Plugins no Nagios

  • Plugins oficiais do Nagios - desenvolvidos e mantidos pela equipe oficial
  • Plugins personalizados - escritos por indivíduos/empresas para atender às necessidades individuais
  • Plugins da comunidade -desenvolvidos pelos membros da comunidade Nagios

Explique a virtualização com o Nagios

O Nagios oferece a capacidade de monitorar várias métricas em várias plataformas de virtualização. O Nagios pode ser executado em várias plataformas de virtualização, como Xen, Amazon EC2, VMware e Microsoft Virtual PC.

Como o Nagios ajuda no monitoramento?

O Nagios usa agentes como NRPE, check_mk ou SNMP para coletar estatísticas em seu servidor e enviar um alerta se as métricas estiverem acima do limite predefinido.

Quais números de porta o Nagios usa para fins de monitoramento?

SNMP, portas 161 e 162

O que é um analisador de rede Nagios?

O analisador de rede Nagios é um software de análise de dados sflow que permite aos usuários resolver proativamente comportamentos anormais, interrupções e ameaças de segurança antes de interromper as operações comerciais. Essa ferramenta de nível comercial oferece uma visão ampliada do tráfego de rede e da infraestrutura de TI.

Variáveis ​​que afetam herança e recursão no Nagios

  • Nome - um modelo 'nome' que pode herdar as variáveis/propriedades do objeto.
  • Use- especifique o nome do objeto do modelo do qual você deseja herdar variáveis/propriedades.
  • Register indica se o nome do objeto de modelo deve ser 'registrado' no Nagios.

O que é fantoche?

Puppet é uma ferramenta de código aberto para gerenciamento e implantação de configuração de software.

O que é um manifesto do Puppet?

O manifesto do Puppet é um arquivo que contém a linguagem de configuração do Puppet que descreve como os recursos devem ser configurados.

Qual é o código do Puppet?

O código Puppet é um código declarativo, o que significa que você o descreve usando o estado desejado do seu sistema e não as etapas necessárias para chegar lá.

O que é Chef?

Chef é uma ferramenta de gerenciamento de configuração que converte infraestrutura em código. Essa ferramenta se concentra em escrever código em vez do processo manual.

Como funciona o chef?

O trabalho do Chef começa quando os administradores ou desenvolvedores do sistema definem as tarefas a serem automatizadas. Os livros de receitas e receitas (pequenos programas escritos em uma linguagem específica de domínio) são então capturados e testados usando várias ferramentas como Test Kitchen, ChefSpec e Foodcritic.

Se os livros de receitas e receitas estiverem funcionando conforme o esperado, eles serão implantados no servidor Chef usando ferramentas de linha de comando de faca e chef. Um processo de implantação do Chef tem um servidor Chef, estações de trabalho e nós. Você pode escolher entre mais de 3.000 modelos de livro de receitas e personalizá-los de acordo com suas necessidades. O Chef cuidará do resto do trabalho.

Resumo

De acordo com a Glassdoor, o salário médio de um engenheiro de DevOps é de US$ 104.281 por ano nos EUA. Embora o DevOps seja uma nova carreira, agora podemos ver mais empresas contratando para essa função e publicando vários cursos para equipar os profissionais com as habilidades essenciais. Acima estão algumas perguntas que você provavelmente encontrará em uma entrevista de DevOps.

Você também pode explorar alguns bons cursos online para aprender DevOps.