46 de întrebări și răspunsuri frecvente la interviu DevOps [2023]

Publicat: 2023-01-12

Vrei să știi ce întrebări să pui la următorul interviu DevOps? Începeți cu ghidul nostru la îndemână.

Termenul DevOps a fost inventat în 2007-2008, dar acum a devenit una dintre cele mai populare cariere în ingineria software. DevOps este o schimbare culturală care atinge fiecare aspect al dezvoltării și operațiunilor.

Cele două echipe (dezvoltare și operațiuni) lucrează împreună de la planificare și construcție până la monitorizare și iterare. Acestea sunt cele mai frecvente întrebări pe care probabil că le veți întâlni dacă căutați un rol de inginer DevOps.

Ce-este-DevOps

Ce este DevOps?

DevOps este forma scurtă de dezvoltare și operațiuni. Această practică de inginerie software reunește echipele de dezvoltare și operare pentru a automatiza fiecare etapă a unui proiect. O echipă DevOps se concentrează pe managementul resurselor, comunicare și lucru în echipă.

Care sunt diferitele faze ale metodologiei DevOps

  • Dezvoltare continuă. Aceasta este faza de planificare și codare.
  • Integrare continuă. Aceasta este faza în care echipa de dezvoltare integrează diferite componente și se asigură că codul nu se rupe.
  • Testare continuă. Aceasta este faza de testare preprogramată și automatizată.
  • Desfăşurare continuă. Această fază asigură o dezvoltare fără probleme, care nu afectează performanța întregii aplicații.
  • Monitorizare continuă. Această fază asigură eficacitatea generală a aplicației.
  • Feedback continuu. Problemele și performanța, așa cum sunt raportate de utilizatorii finali, sunt analizate.
  • Operații continue. Permite dezvoltatorilor să creeze versiuni mai bune ale produsului și să detecteze rapid problemele.

Care sunt beneficiile DevOps?

  • Livrare mai rapidă și mai bună a produselor
  • Scalabilitate mai mare
  • Rezolvarea rapidă a problemelor
  • O mai bună utilizare a resurselor

Denumiți câteva instrumente DevOps

  • Instrumente de integrare continuă, cum ar fi Jenkins
  • Controlul versiunilor, cum ar fi Git
  • Construiește instrumente precum Maven
  • Instrumente de management al configurației, cum ar fi Chef
  • Platforme de containere, cum ar fi Docker

Numiți niște KPI DevOps

  • Frecvența de desfășurare
  • Schimbați volumul
  • Timp de desfășurare
  • Rate de implementare eșuate
  • Detectarea timpului
  • Rata de evadare a defectelor

Diferența dintre DevOps și agil

DevOps este o cultură care încurajează colaborarea între toți membrii echipei implicați în dezvoltarea și întreținerea software-ului.

Agile este o metodologie de dezvoltare concepută pentru a face echipele productive și pentru a conduce versiuni bazate pe nevoile în schimbare.

Care este rolul AWS în DevOps

AWS are un set de servicii flexibile care ajută companiile să dezvolte aplicații în mod fiabil și rapid. Serviciile AWS simplifică implementarea codului, furnizarea și simplificarea infrastructurii, automatizarea proceselor de lansare a software-ului și monitorizarea performanței infrastructurii.

La ce folosește SSH?

SSH (Secure Shell) este un protocol care permite o conexiune sigură între diferite computere. SSH servește diferite scopuri, cum ar fi oferta; autentificare puternică, criptare puternică, menținerea integrității conexiunii, conexiune puternică și securitate.

Ce este integrarea continuă?

Integrarea continuă permite dezvoltatorilor de software să-și îmbine codul într-un depozit central. Codul este apoi preluat prin versiuni și teste automate.

Ce este managementul configurației?

Este un proces de inginerie al unui sistem de stabilire și menținere a coerenței performanței unui sistem/produs și a atributelor funcționale și fizice pe tot parcursul ciclului său de viață.

Ce este testarea continuă?

Aceasta este testarea preprogramată și automată a unei aplicații pe măsură ce dezvoltarea continuă.

Ce este Git?

Acesta este un instrument open-source și gratuit pentru gestionarea codului sursă. Acest instrument este conceput pentru a gestiona proiecte mici și mari.

Menționați câteva comenzi Git de bază

  • Clona Git
 git clone <https://name-of-the-repository-link>
  • ramură 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>

Explicați diferența dintre Git merge și Git rebase

Comanda Git merge permite dezvoltatorilor să îmbine diferite ramuri Git, în timp ce jurnalele de comitere ale ramurilor respective rămân intacte.

Comanda Git rebase permite dezvoltatorilor să integreze modificări de la o ramură la alta, iar jurnalele sunt modificate odată ce procesul este finalizat.

Explicați diferența dintre Git fetch și Git pull

Git fetch îi spune lui git să preia/verifice cele mai recente metadate din original. Cu toate acestea, nu face niciun transfer de fișiere, ci doar verifică.

Git pull verifică și aduce modificări din depozitul de la distanță în proiectul local.

Ce este un conflict de fuziune?

Conflictele de îmbinare apar atunci când îmbinați două ramuri cu comiteri concurente. Conflictele de îmbinare apar de obicei atunci când diferiți dezvoltatori modifică aceeași linie de cod sau fișier.

Ce este controlul versiunilor și care sunt diferitele tipuri?

Controlul versiunilor (controlul sursei) este procesul de urmărire și gestionare a modificărilor aduse codului software.

Acestea sunt diferitele tipuri de controale de versiune;

  • Centralizat – aveți o singură copie „centrală” a codului sursă pe un server și toate modificările sunt trimise la copia „centrală”. Subversion (SVN) și Perforce sunt exemple de controale centralizate ale versiunilor.
  • Distribuit (DVCS) - nu au un server central pentru a stoca toate fișierele proiectului. Git și Mercurial sunt exemple de DVCS.

Care sunt beneficiile utilizării controlului versiunilor?

  • Ajută dezvoltatorii să păstreze eficiența și agilitatea
  • Oferă un jurnal complet al fiecărei modificări aduse unui proiect/fișier
  • Îmbunătățiți trasabilitatea
  • Ajută la gestionarea fuziunii și ramificării
  • Permite colaborarea

Ce este ramificarea?

Ramificarea se referă la crearea unei versiuni separate/noui a depozitului principal. Ramurile vă permit să lucrați la diferite părți ale proiectului fără a afecta ramura principală.

Care sunt strategiile de ramificare?

Strategiile de fuzionare sunt metodologiile pe care echipele de dezvoltare software le adoptă atunci când scriu, îmbină și implementează cod. O astfel de abordare asigură că erorile și greșelile sunt remediate într-o etapă de ramură înainte de a fi îmbinate cu proiectul principal.

Ce este testarea automatizată și cum se automatizează testarea în DevOps?

Testarea automată este o tehnică de revizuire și validare automată a codului. Testarea automatizării este efectuată pentru a verifica dacă standardele de calitate pentru funcționalitate (logica de afaceri), stilul de cod și experiența utilizatorului au fost îndeplinite.

Testarea automatizării se face folosind instrumente precum Selenium și Katalon.

Ce este Jenkinsfile?

Jenkinsfile este un fișier text care conține definiția unei conducte Jenkins. Jenkinsfile este verificat în depozitul de control sursă. Unele dintre utilizările sale sunt; permite o pistă de audit pentru conductă, permite revizuirea codului și iterația pe conductă și oferă o singură sursă de adevăr în conductă.

Explicați arhitectura în Jenkins

Jenkins are o arhitectură master-slave. Aceasta înseamnă că sunt mulți „sclavi” care lucrează pentru un „stăpân”. Jenkins Distributed Build poate rula astfel teste identice pe diferite medii, cu rezultate colectate și combinate pe nodul principal pentru monitorizare.

Care sunt cele mai bune pluginuri Jenkins?

  • Plugin Blue Ocean pentru Jenkins
  • Plugin Mailer pentru Jenkins
  • Plugin Git pentru Jenkins
  • Plugin Jira pentru Jenkins
  • Plugin Docker pentru Jenkins
  • Plugin de integrare Maven pentru Jenkins
  • Plugin Kubernetes pentru Jenkins
  • Plugin SonarQube pentru Jenkins
  • Plugin Amazon EC2 pentru Jenkins

Ce este Selenium IDE?

Selenium IDE este un instrument care înregistrează interacțiunile browserului pentru cazurile de testare. Puteți seta puncte de întrerupere și puteți verifica și întrerupe variabilele atunci când apar erori cu Selenium Integrated Development Environment.

Care sunt diferitele componente ale seleniului?

  • Selenium IDE
  • Seleniu RC
  • Selenium WebDriver
  • Grila de seleniu

Care sunt diferitele tipuri de testare în seleniu?

  • Testare de la capăt la capăt
  • Testare de regresie
  • Testarea sistemului
  • Test de performanta
  • Testare de compatibilitate

Care sunt diferitele excepții în Selenium?

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

Ce sunt driver.close() și driver.quit() în WebDriver?

Comanda driver.close() închide fereastra browserului la focus. Dacă este deschis un singur browser, acesta închide întreaga sesiune de browser.

Comanda driver.quit() închide întreaga sesiune de browser cu ferestre pop-up, file și ferestre ale browserului.

Ce este un Dockerfile?

Dockerfile este un document text cu toate comenzile pe care un utilizator le poate folosi pe o linie de comandă pentru a asambla o imagine.

Diferențele dintre imaginile docker și containerul docker

Imaginile Docker sunt șabloane numai pentru citire, create cu coduri sursă, instrumente, biblioteci, dependențe externe și alte fișiere necesare pentru ca orice aplicație să ruleze cu succes pe orice sistem de operare sau platformă.

Un container docker este o cutie care rulează șabloane de imagine docker.

Explicați arhitectura Docker

Docker urmează o arhitectură Client-Server și cuprinde Docker Client, Docker Host și Docker Registry.

Docker Client folosește API-uri și comenzi REST pentru a comunica cu Server (Docker Daemon).

Docker Client folosește CLI pentru a rula aceste comenzi

 docker build docker pull docker run
  • Docker Host oferă un mediu pentru a executa și rula aplicații. Format din docker daemon, stocare, imagini, containere și rețele.
  • Docker Registry gestionează și stochează imaginile Docker.

Platforme cloud care acceptă docker

Platformele care acceptă găzduirea docker sunt;

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

Ce este Nagios?

Nagios este un instrument care monitorizează întreaga infrastructură IT pentru a se asigura că procesele, sistemele, serviciile și aplicațiile de afaceri funcționează corect.

Cum funcționează Nagios?

  • Monitorizare . Personalul IT configurează Nagios pentru a monitoriza protocoalele de rețea, valorile sistemului, aplicațiile, infrastructura de rețea, serviciile și serverele.
  • Alertarea . Nagios trimite alerte atunci când componentele critice eșuează. Alertele pot fi prin SMS, cod personalizat sau e-mail.
  • Răspuns . Echipa IT recunoaște alertele și acționează.
  • Rapoarte . Sunt generate rapoarte care oferă o înregistrare istorică a notificărilor, întreruperilor, răspunsurilor la alertă și evenimentelor pentru revizuire ulterioară.
  • Întreținere . Timpul de nefuncționare programat împiedică trimiterea alertelor în timpul întreținerii.

Menționați câteva pluginuri în Nagios

  • Pluginuri oficiale Nagios - dezvoltate și întreținute de echipa oficială
  • Pluginuri personalizate -scrise de persoane/afaceri pentru a se potrivi nevoilor individuale
  • Pluginuri comunitare - dezvoltate de membrii comunității Nagios

Explicați virtualizarea cu Nagios

Nagios oferă capacitatea de a monitoriza diverse metrici pe diverse platforme de virtualizare. Nagios poate rula de pe diverse platforme de virtualizare, cum ar fi Xen, Amazon EC2, VMware și Microsoft Virtual PC.

Cum ajută Nagios la monitorizare?

Nagios folosește agenți precum NRPE, check_mk sau SNMP pentru a colecta statistici pe serverul dvs. și pentru a trimite o alertă dacă valorile sunt peste pragul predefinit.

Ce numere de porturi folosește Nagios în scopuri de monitorizare?

SNMP, porturile 161 și 162

Ce este un analizor de rețea Nagios?

Analizorul de rețea Nagios este un software de analiză a datelor sflow care permite utilizatorilor să rezolve în mod proactiv comportamentele anormale, întreruperile și amenințările de securitate înainte de a întrerupe operațiunile de afaceri. Acest instrument de calitate comercială oferă o perspectivă extinsă asupra traficului de rețea și a infrastructurii IT.

Variabile care afectează moștenirea și recursiunea în Nagios

  • Nume - un șablon „nume” care poate moșteni variabilele/proprietățile obiectului.
  • Utilizați- specificați numele obiectului șablonului de la care doriți să moșteniți variabile/proprietăți.
  • Register indică dacă numele obiectului șablon ar trebui să fie „înregistrat” la Nagios.

Ce este Puppet?

Puppet este un instrument open-source pentru gestionarea și implementarea configurației software.

Ce este un manifest Puppet?

Puppet manifest este un fișier care conține limbajul de configurare Puppet care descrie modul în care trebuie configurate resursele.

Ce este codul Puppet?

Codul marionetă este un cod declarativ, ceea ce înseamnă că îl descrii folosind starea dorită a sistemului și nu pașii necesari pentru a ajunge acolo.

Ce este Chef?

Chef este un instrument de gestionare a configurației care convertește infrastructura în cod. Acest instrument se concentrează pe scrierea codului în loc de procesul manual.

Cum lucrează Chef?

Munca bucătarului începe atunci când administratorii de sistem sau dezvoltatorii definesc sarcinile care urmează să fie automatizate. Cărțile de bucate și rețetele (programe mici scrise într-un limbaj specific domeniului) sunt apoi capturate și testate folosind diverse instrumente precum Test Kitchen, ChefSpec și Foodcritic.

Dacă cărțile de bucate și rețetele funcționează conform așteptărilor, acestea sunt apoi implementate pe serverul Chef folosind instrumente de linie de comandă pentru cuțit și bucătar. Un proces de implementare Chef are un server Chef, stații de lucru și noduri. Puteți alege dintre peste 3000 de șabloane de cărți de bucate și le puteți personaliza în funcție de nevoile dvs. Bucătarul se va ocupa apoi de restul lucrărilor.

rezumat

Potrivit Glassdoor, salariul mediu al unui inginer DevOps este de 104281 USD pe an în SUA. Chiar dacă DevOps este o nouă carieră, acum putem vedea mai multe companii care angajează pentru acest rol și publică diferite cursuri pentru a dota profesioniștii cu abilitățile esențiale. Mai sus sunt câteva întrebări pe care probabil le veți întâlni într-un interviu DevOps.

De asemenea, puteți explora câteva cursuri online bune pentru a învăța DevOps.