As 50 principais perguntas da entrevista de DevOps e amp; Respostas

Anonim

baixar PDF

1) Explique o que é DevOps?

É um termo emergente no campo de TI, que nada mais é do que uma prática que enfatiza a colaboração e a comunicação dos desenvolvedores de software e da equipe de implantação (operações). Ele se concentra em entregar produtos de software com mais rapidez e reduzir a taxa de falha de lançamentos.

2) Mencione quais são os principais aspectos ou princípios por trás do DevOps?

O principal aspecto ou princípio por trás do DevOps é

  • Infraestrutura como código
  • Implantação contínua
  • Automação
  • Monitoramento
  • Segurança

3) Quais são as principais operações do DevOps com desenvolvimento de aplicativos e infraestrutura?

As principais operações do DevOps são

Desenvolvimento de aplicações

  • Construção de código
  • Cobertura de código
  • Teste de unidade
  • Embalagem
  • Desdobramento, desenvolvimento

A infraestrutura

  • Provisionamento
  • Configuração
  • Orquestração
  • Desdobramento, desenvolvimento

4) Explicar como o “código de infraestrutura” é processado ou executado no AWS?

Na AWS,

  • O código para infraestrutura estará em formato JSON simples
  • Este código JSON será organizado em arquivos chamados de modelos
  • Esses modelos podem ser implantados em devops AWS e, em seguida, gerenciados como pilhas
  • Mais tarde, o serviço CloudFormation fará a operação de criação, exclusão, atualização, etc. na pilha

5) Explique qual linguagem de script é mais importante para um engenheiro de DevOps?

Uma linguagem de script mais simples será melhor para um engenheiro de DevOps. Python parece ser muito popular.

6) Explique como o DevOps é útil para os desenvolvedores?

O DevOps pode ser útil para os desenvolvedores corrigirem o bug e implementar novos recursos rapidamente. Também ajuda a uma comunicação mais clara entre os membros da equipe.

7) Liste algumas ferramentas populares para DevOps?

Algumas das ferramentas populares para DevOps são

  • Jenkins
  • Nagios
  • Monit
  • ELK (Elasticsearch, Logstash, Kibana)
  • Jenkins
  • Docker
  • Ansible
  • Git

8) Mencione em que instância você usou o SSH?

Usei o SSH para fazer login em uma máquina remota e trabalhar na linha de comando. Além disso, também o usei para fazer um túnel no sistema para facilitar as comunicações criptografadas seguras entre dois hosts não confiáveis ​​em uma rede insegura.

9) Explique como você lidaria com o controle de revisão (versão)?

Minha abordagem para lidar com o controle de revisão seria postar o código no SourceForge ou GitHub para que todos possam vê-lo. Além disso, postarei a lista de verificação da última revisão para garantir que todos os problemas não resolvidos sejam resolvidos.

10) Quais são os tipos de solicitações Http?

Os tipos de solicitações Http são

  • OBTER
  • CABEÇA
  • POR
  • PUBLICAR
  • CORREÇÃO
  • EXCLUIR
  • VESTÍGIO
  • CONECTAR
  • OPÇÕES

11) Explique o que você verificaria se um servidor Linux construído de repente começar a ficar lento?

Se um servidor Linux-build de repente começar a ficar lento, você verificará as três coisas a seguir

  • Solução de problemas de nível de aplicativo
Problemas relacionados à RAM, problemas de leitura / gravação de E / S de disco, problemas relacionados ao espaço em disco, etc.
  • Resolução de problemas no nível do sistema
Verifique o arquivo de log do aplicativo OU arquivo de log do servidor de aplicativos, problemas de desempenho do sistema, Log do servidor Web - verifique os logs HTTP, tomcat lo, jboss ou WebLogic para ver se o tempo de resposta / recebimento do servidor de aplicativos é o problema de lentidão, Vazamento de memória de qualquer inscrição
  • Resolução de problemas de serviços dependentes
Problemas relacionados a antivírus, problemas relacionados a firewall, problemas de rede, problemas de tempo de resposta do servidor SMTP, etc.

12) Quais são os principais componentes do DevOps?

Os componentes mais importantes do DevOps são:

  • Integração contínua
  • Teste Contínuo
  • Entrega Contínua
  • Monitoramento Contínuo

13) Cite algumas plataformas de nuvem que são usadas para implementação de DevOps

Plataformas de computação em nuvem populares usadas para implementação de DevOps são:

  1. Nuvem do Google
  2. Amazon Web Services
  3. Microsoft Azure

14) Dê alguns benefícios de usar o sistema de controle de versão

  • O sistema de controle de versão permite que os membros da equipe trabalhem livremente em qualquer arquivo a qualquer momento.
  • Todas as versões e variantes anteriores estão compactadas dentro do VCS.
  • Um VCS distribuído como ajuda a armazenar o histórico completo do projeto, portanto, em caso de falha no servidor central, você pode usar o repositório Git local do membro da equipe.
  • Permite que você veja quais mudanças exatas são feitas no conteúdo do arquivo

15) Explique Git Bisect

Git bisect ajuda você a encontrar o commit que introduziu um bug usando a pesquisa binária.

16) Qual é a construção?

Um build é um método no qual o código-fonte é colocado em conjunto para verificar se ele funciona como uma única unidade. No processo de criação de build, o código-fonte passará por compilação, inspeção, teste e implantação.

17) O que é Puppet?

O Puppet é uma ferramenta útil de gerenciamento de projetos. Ajuda a automatizar as tarefas de administração.

18) Explique a autenticação de dois fatores

A autenticação de dois fatores é um método de segurança no qual o usuário fornece duas formas de identificação de categorias distintas.

19) Explique o termo 'Liberação Canário'.

Uma versão canário é um padrão que reduz o risco de introdução de uma nova versão do software no ambiente de produção. Isso é feito tornando-o disponível de maneira controlada para um subconjunto do usuário. Antes de disponibilizá-lo para o conjunto de usuários completo.

20) Que tipos de teste são importantes para garantir que o novo serviço esteja pronto para produção?

Você precisa realizar testes contínuos para garantir que o novo serviço esteja pronto para produção.

21) O que é Vagrant?

Um vagrant é uma ferramenta que pode criar e gerenciar ambientes virtualizados para teste e desenvolvimento de software.

22) Qual é o uso de PTR no DNS?

O registro de ponteiro, também conhecido como (PTR), é usado para pesquisa DNS reversa.

23) O que é Chef?

É uma plataforma de automação poderosa que transforma infraestrutura em código. Nesta ferramenta, você pode escrever scripts que são usados ​​para automatizar processos.

24) Quais são os pré-requisitos para a implementação do DevOps?

A seguir estão os pré-requisitos úteis para a implementação de DevOps:

  • Pelo menos um software de controle de versão
  • Comunicação adequada entre os membros da equipe
  • Teste automatizado
  • Implantação automatizada

25) Cite algumas práticas recomendadas que devem ser seguidas para o sucesso do DevOps.

Aqui, estão as melhores práticas essenciais para a implementação de DevOps:

  • A velocidade de entrega significa tempo gasto para qualquer tarefa colocá-los no ambiente de produção.
  • Rastreie quantos defeitos são encontrados nas várias
  • É importante medir o tempo real ou médio que leva para se recuperar em caso de falha no ambiente de produção.
  • O número de bugs relatados pelo cliente também afeta a qualidade do aplicativo.

26) Explique a ferramenta SubGIt

SubGit ajuda você a migrar SVN para Git. Também permite que você construa um espelho Git gravável de um repositório Subversion local ou remoto.

27) Cite algumas ferramentas importantes de monitoramento de rede

Algumas ferramentas de monitoramento de rede mais proeminentes são:

  • Splunk
  • Icinga 2
  • Wireshark
  • Nagios
  • OpenNMS

28) Se sua placa de vídeo pode rodar Unity, como você sabe?

Quando você usa um comando

/usr/lib/Linux/unity_support_test-p

ele dará saída detalhada sobre os requisitos do Unity e, se eles forem atendidos, sua placa de vídeo pode funcionar com o Unity.

29) Explique como habilitar o som de inicialização no Ubuntu?

Para habilitar o som de inicialização

  • Clique na engrenagem de controle e em Aplicativos de inicialização
  • Na janela Preferências do aplicativo de inicialização , clique em Adicionar para adicionar uma entrada
  • Em seguida, preencha as informações nas caixas de comentários como Nome, Comando e Comentário
/usr/bin/canberra-gtk-play-id= "desktop-login"-description= "play login sound"
  • Saia e faça login quando terminar

Você também pode abri-lo com a tecla de atalho Ctrl + Alt + T .

30) Qual é a maneira mais rápida de abrir um terminal Ubuntu em um diretório específico?

Para abrir um terminal Ubuntu em um diretório específico, você pode usar o atalho de teclado personalizado.

Para fazer isso, no campo de comando de um novo teclado personalizado, digite genome - terminal - - working - directory = / path / to / dir.

31) Explique como você pode obter a cor atual da tela atual na área de trabalho do Ubuntu?

Você pode abrir a imagem de fundo no Gimp (editor de imagens) e então usar a ferramenta conta-gotas para selecionar a cor em um ponto específico. Ele fornece o valor RGB da cor naquele ponto.

32) Explique como você cria lançadores em um desktop no Ubuntu?

Para criar lançadores em um desktop no Ubuntu, você pode usar

ALT + F2, em seguida, digite "gnome-desktop-item-edit -create-new ~ / desktop", ele abrirá a janela da GUI antiga e criará um inicializador em sua área de trabalho

33) Explique o que é Memcached?

Memcached é um sistema de armazenamento em cache de objetos de memória distribuída de alto desempenho, gratuito e de código aberto. O objetivo principal do Memcached é aumentar o tempo de resposta para dados que podem ser recuperados ou construídos de alguma outra fonte ou banco de dados. É usado para evitar a necessidade de operar o banco de dados SQL ou outra fonte repetidamente para buscar dados para uma solicitação simultânea.

Memcached pode ser usado para

  • Rede Social-> Cache de Perfil
  • Agregação de conteúdo-> HTML / cache de página
  • Segmentação de anúncio-> Cookie / rastreamento de perfil
  • Relacionamento-> Cache de sessão
  • E-commerce -> Sessão e cache de HTML
  • Serviços baseados em localização-> Escalonamento de consulta de banco de dados
  • Jogos e entretenimento-> Cache de sessão

Memcache ajuda em

  • Acelere os processos de inscrição
  • Ele determina o que armazenar e o que não
  • Reduza o número de solicitações de recuperação para o banco de dados
  • Corta o acesso I / O (entrada / saída) (disco rígido)

A desvantagem do Memcached é

  • Não é um armazenamento de dados persistente
  • Não é um banco de dados
  • Não é um aplicativo específico
  • Não pode armazenar em cache objetos grandes

34) Mencionou algumas características importantes do Memcached?

Recursos importantes do Memcached incluem

  • Tokens CAS: Um token CAS é anexado a um objeto recuperado de um cache. Você pode usar esse token para salvar seu objeto atualizado.
  • Callbacks: simplifica o código
  • getDelayed: reduz o tempo de atraso do seu script, que está aguardando os resultados de um servidor
  • Protocolo binário: você pode usar o protocolo binário em vez de ASCII com o cliente mais recente
  • Igbinary: Anteriormente, um cliente sempre costumava fazer a serialização do valor com dados complexos, mas com o Memcached, você pode usar a opção igbinary.

35) Explique se é possível compartilhar uma única instância de um Memcache entre vários projetos.

Sim, é possível compartilhar uma única instância do Memcache entre vários projetos. Memcache é um espaço de armazenamento de memória e você pode executar o memcache em um ou mais servidores. Você também pode configurar seu cliente para falar com um determinado conjunto de instâncias. Portanto, você pode executar dois processos Memcache diferentes no mesmo host e, ainda assim, eles são completamente independentes. A menos que você tenha particionado seus dados, será necessário saber de qual instância obter ou colocar os dados.

36) Você está tendo vários servidores Memcache, em que um dos servidores Memcache falha, e ele contém seus dados. Será que algum dia ele tentará obter os dados principais desse servidor com falha?

Os dados no servidor com falha não serão removidos, mas há uma provisão para falha automática, que você pode configurar para vários nós. O failover pode ser acionado durante qualquer soquete ou erros no nível do servidor Memcached e não durante erros padrão do cliente, como adicionar uma chave existente, etc.

37) Explique como você pode minimizar as interrupções do servidor Memcached.

  • Quando uma instância falha, várias delas caem e isso coloca uma carga maior no servidor de banco de dados quando os dados perdidos são recarregados quando um cliente faz uma solicitação. Para evitar isso, se seu código foi escrito para minimizar o estouro de cache, ele deixará um impacto mínimo
  • Outra maneira é abrir uma instância do Memcached em uma nova máquina usando o endereço IP da máquina perdida
  • O código é outra opção para minimizar as interrupções do servidor, pois dá a você a liberdade de alterar a lista de servidores do Memcached com o mínimo de trabalho
  • Definir o valor de tempo limite é outra opção que alguns clientes Memcached implementam para interrupção do servidor Memcached. Quando o servidor Memcached cair, o cliente continuará tentando enviar uma solicitação até que o tempo limite seja atingido

38) Explique como você pode atualizar o Memcached quando os dados são alterados.

Quando os dados mudam, você pode atualizar o Memcached por

  • Limpando o Cache de forma proativa: Limpando o cache quando uma inserção ou atualização é feita
  • Redefinindo o cache: é semelhante ao primeiro método, mas em vez de apenas excluir as chaves e aguardar a próxima solicitação de dados para atualizar o cache, redefina os valores após a inserção ou atualização.

39) Explique o que é o efeito Dogpile? Como você pode evitar esse efeito?

O efeito Dogpile é referido ao evento quando um cache expira e os sites são atingidos por várias solicitações feitas pelo cliente ao mesmo tempo. Este efeito pode ser evitado usando um bloqueio de semáforo. Nesse sistema, quando o valor expira, o primeiro processo adquire o bloqueio e passa a gerar novo valor.

40) Explique como o Memcached não deve ser usado?

  • O uso incorreto comum do memcached é usá-lo como um armazenamento de dados, e não como um cache
  • Nunca use o Memcached como a única fonte de informações de que você precisa para executar seu aplicativo. Os dados também devem estar sempre disponíveis por meio de outra fonte
  • Memcached é apenas um armazenamento de chave ou valor e não pode realizar uma consulta sobre os dados ou iterar sobre o conteúdo para extrair informações
  • O Memcached não oferece qualquer forma de segurança em criptografia ou autenticação

41) Quando um servidor é desligado, os dados armazenados no Memcached ainda estão disponíveis?

Os dados armazenados no Memcached não são duráveis, portanto, se um servidor for encerrado ou reiniciado, todos os dados armazenados no Memcached serão excluídos.

42) Mencione qual é a diferença entre Memcache e Memcached?

  • Memcache: é uma extensão que permite que você trabalhe por meio de interfaces práticas orientadas a objetos (OOPs) e procedurais. Ele é projetado para reduzir a carga do banco de dados em aplicativos da web dinâmicos.
  • Memcached : é uma extensão que usa a biblioteca libmemcached para fornecer API para comunicação com servidores Memcached. Ele é usado para aumentar os aplicativos da web dinâmicos, aliviando a carga do banco de dados. É a API mais recente.

43) Explique o padrão de implantação azul / verde

O padrão de cores azul / verde aborda os desafios mais importantes enfrentados durante o processo de implantação automática. Na abordagem de implantação azul / verde, você precisa garantir dois ambientes de produção idênticos. No entanto, apenas um deles está AO VIVO a qualquer momento. O ambiente LIVE é chamado de ambiente Blue.

Quando a equipe prepara a próxima versão de seu software, eles conduzem o estágio final de teste em um ambiente conhecido como Ambiente Verde. Depois de verificado, o tráfego é encaminhado para o ambiente Verde.

44) Quais são os containers?

Os contêineres são de virtualização leve. Eles oferecem isolamento entre os processos.

45) O que é reunião post mortem com referência ao DevOps?

A reunião post mortem é feita para discutir o que deu errado e quais etapas você precisa seguir para evitar falhas.

46) Qual é o método mais fácil de construir uma pequena nuvem?

VMfres é uma das opções mais eficazes para criar nuvem IaaS de VMs de caixa virtual em nenhum momento. No entanto, se você quiser PaaS leve, Dokku é uma boa opção porque o script bash pode ser PaaS fora de contêineres Dokku.

47) Cite duas ferramentas que são usadas para a rede docker.

Para a rede do docker, você pode usar o Kubernetes e o Docker swarm.

48) Cite algumas das áreas onde o DevOps é implementado

DevOps são usados ​​para produção, operações de TI, feedback de produção e seu desenvolvimento de software.

49) O que é CBD '?

O CBD ou Desenvolvimento Baseado em Componentes é uma maneira única de abordar o desenvolvimento de produtos. Neste método, os desenvolvedores sempre procuram por componentes existentes bem definidos, testados e verificados para compor e montá-los em um produto, em vez de desenvolver do zero.

50) Explique a programação de par com referência a DevOps

A programação em pares é uma prática de engenharia das Regras de Programação Extrema. Nesse método, dois programadores trabalham no mesmo sistema, no mesmo projeto / algoritmo / código.

Um programador atua como um "driver". Outro atua como um "observador" que monitora continuamente o andamento de um projeto para identificar problemas. Os papéis podem ser invertidos a qualquer momento, sem qualquer indicação prévia.

51) Explique o teste de resiliência

O teste que garante a recuperação sem perda de dados e funcionalidade após uma falha é chamado de testes de resiliência.

52) Cite três KPIs DevOps importantes

Os três KPIs DevOps mais comuns são:

  • Enquanto isso, até a recuperação de falhas
  • Frequência de implantação
  • Porcentagem de implantações com falha