46 Domande frequenti e risposte sull'intervista DevOps [2023]

Pubblicato: 2023-01-12

Vuoi sapere quali domande porre durante il tuo prossimo colloquio DevOps? Inizia con la nostra pratica guida.

Il termine DevOps è stato coniato nel 2007-2008 ma ora è diventato una delle carriere più popolari nell'ingegneria del software. DevOps è un cambiamento culturale che tocca ogni aspetto dello sviluppo e delle operazioni.

I due team (sviluppo e operazioni) lavorano insieme dalla pianificazione e costruzione al monitoraggio e all'iterazione. Queste sono le domande più comuni che potresti incontrare se cerchi un ruolo di ingegnere DevOps.

Che cos'è DevOps

Cos'è DevOps?

DevOps è la forma abbreviata di sviluppo e operazioni. Questa pratica di ingegneria del software riunisce i team di sviluppo e operativi per automatizzare ogni fase di un progetto. Un team DevOps si concentra sulla gestione delle risorse, la comunicazione e il lavoro di squadra.

Quali sono le diverse fasi della metodologia DevOps

  • Sviluppo continuo. Questa è la fase di pianificazione e codifica.
  • Integrazione continua. Questa è la fase in cui il team di sviluppo integra diversi componenti e garantisce che il codice non si rompa.
  • Test continui. Questa è la fase di test programmata e automatizzata.
  • Distribuzione continua. Questa fase garantisce uno sviluppo senza problemi, che non influisce sulle prestazioni dell'intera app.
  • Monitoraggio continuo. Questa fase garantisce l'efficacia complessiva dell'app.
  • Feedback continuo. Vengono analizzati i problemi e le prestazioni segnalati dagli utenti finali.
  • Operazioni continue. Consente agli sviluppatori di creare versioni migliori del prodotto e rilevare rapidamente i problemi.

Quali sono i vantaggi di DevOps?

  • Consegna del prodotto più veloce e migliore
  • Maggiore scalabilità
  • Risoluzione rapida dei problemi
  • Migliore utilizzo delle risorse

Nomina alcuni strumenti DevOps

  • Strumenti di integrazione continua come Jenkins
  • Controllo della versione come Git
  • Costruisci strumenti come Maven
  • Strumenti di gestione della configurazione come Chef
  • Piattaforme container come Docker

Assegna un nome ad alcuni KPI DevOps

  • Frequenza di distribuzione
  • Cambia volume
  • Tempo di distribuzione
  • Percentuali di implementazione fallite
  • Rilevamento del tempo
  • Tasso di fuga del difetto

Differenza tra DevOps e agile

DevOps è una cultura che favorisce la collaborazione tra tutti i membri del team coinvolti nello sviluppo e nella manutenzione del software.

Agile è una metodologia di sviluppo progettata per rendere produttivi i team e guidare i rilasci in base alle mutevoli esigenze.

Qual è il ruolo di AWS in DevOps

AWS dispone di una serie di servizi flessibili che aiutano le aziende a sviluppare applicazioni in modo affidabile e rapido. I servizi AWS semplificano la distribuzione del codice, il provisioning e la semplificazione dell'infrastruttura, l'automazione dei processi di rilascio del software e il monitoraggio delle prestazioni dell'infrastruttura.

A cosa serve SSH?

SSH (Secure Shell) è un protocollo che consente una connessione sicura tra diversi computer. SSH ha scopi diversi, come l'offerta; autenticazione forte, crittografia forte, mantenimento dell'integrità della connessione, connessione forte e sicurezza.

Cos'è l'integrazione continua?

L'integrazione continua consente agli sviluppatori di software di unire il proprio codice in un repository centrale. Il codice viene quindi sottoposto a build e test automatizzati.

Cos'è la gestione della configurazione?

È il processo di ingegneria di un sistema per stabilire e mantenere la coerenza delle prestazioni e degli attributi funzionali e fisici di un sistema/prodotto durante tutto il suo ciclo di vita.

Cos'è il test continuo?

Si tratta di test programmati e automatizzati di un'applicazione man mano che lo sviluppo procede.

Cos'è Git?

Questo è uno strumento open source e gratuito per la gestione del codice sorgente. Questo strumento è progettato per gestire progetti piccoli e grandi.

Menziona alcuni comandi Git di base

  • Clone Git
 git clone <https://name-of-the-repository-link>
  • Ramo Git
 git branch <branch-name>
  • Git verifica
 git checkout <name-of-your-branch>
  • Aggiungi
 git add <file>
  • Git commit
 git commit -m "commit message"
  • Spingi
 git push <remote> <branch-name>
  • Tirare
 git pull <remote>

Spiega la differenza tra Git merge e Git rebase

Il comando Git merge consente agli sviluppatori di unire diversi rami Git mentre i registri dei commit dei rispettivi rami rimangono intatti.

Il comando Git rebase consente agli sviluppatori di integrare le modifiche da un ramo all'altro e i registri vengono modificati una volta completato il processo.

Spiega la differenza tra Git fetch e Git pull

Git fetch dice a git di recuperare/controllare gli ultimi metadati dall'originale. Tuttavia, non esegue alcun trasferimento di file ma solo controlli.

Git pull controlla e porta le modifiche dal repository remoto al progetto locale.

Che cos'è un conflitto di unione?

I conflitti di unione si verificano quando si uniscono due rami con commit concorrenti. I conflitti di unione di solito si verificano quando diversi sviluppatori modificano la stessa riga di codice o file.

Che cos'è il controllo della versione e quali sono i diversi tipi?

Il controllo della versione (controllo del codice sorgente) è il processo di monitoraggio e gestione delle modifiche al codice software.

Questi sono i diversi tipi di controlli di versione;

  • Centralizzato : disporre di un'unica copia "centrale" del codice sorgente su un server e tutte le modifiche vengono salvate nella copia "centrale". Subversion (SVN) e Perforce sono esempi di controlli di versione centralizzati.
  • Distribuito (DVCS) : non dispone di un server centrale per archiviare tutti i file del progetto. Git e Mercurial sono esempi di DVCS.

Quali sono i vantaggi dell'utilizzo del controllo della versione?

  • Aiuta gli sviluppatori a preservare l'efficienza e l'agilità
  • Fornisce un registro completo di ogni modifica a un progetto/file
  • Migliora la tracciabilità
  • Aiuta a gestire la fusione e la ramificazione
  • Abilita la collaborazione

Cos'è la ramificazione?

Il branching si riferisce alla creazione di una versione separata/nuova del repository principale. I rami ti consentono di lavorare su varie parti del progetto senza influire sul ramo principale.

Cosa sono le strategie di branching?

Le strategie di unione sono le metodologie che i team di sviluppo software adottano durante la scrittura, l'unione e la distribuzione del codice. Tale approccio garantisce che i bug e gli errori vengano corretti in una fase di branch prima che vengano uniti al progetto principale.

Che cos'è il test di automazione e come automatizzare i test in DevOps?

Il test di automazione è una tecnica di revisione e convalida automatica del codice. I test di automazione vengono eseguiti per verificare se gli standard di qualità per la funzionalità (logica aziendale), lo stile del codice e l'esperienza utente sono stati soddisfatti.

I test di automazione vengono eseguiti utilizzando strumenti come Selenium e Katalon.

Cos'è Jenkinsfile?

Jenkinsfile è un file di testo contenente la definizione di una pipeline Jenkins. Jenkinsfile viene archiviato nel repository di controllo del codice sorgente. Alcuni dei suoi usi sono; consente un audit trail per la pipeline, consente la revisione e l'iterazione del codice sulla pipeline e fornisce un'unica fonte di verità nella pipeline.

Spiega l'architettura in Jenkins

Jenkins ha un'architettura master-slave. Ciò significa che ci sono molti "schiavi" che lavorano per un "padrone". La Jenkins Distributed Build può quindi eseguire test identici su ambienti diversi, con risultati raccolti e combinati sul nodo master per il monitoraggio.

Quali sono i migliori plugin Jenkins?

  • Plugin Blue Ocean per Jenkins
  • Mailer Plugin per Jenkins
  • Plug-in Git per Jenkins
  • Plug-in Jira per Jenkins
  • Plug-in Docker per Jenkins
  • Plugin di integrazione Maven per Jenkins
  • Plug-in Kubernetes per Jenkins
  • Plugin SonarQube per Jenkins
  • Plugin Amazon EC2 per Jenkins

Cos'è l'IDE di selenio?

Selenium IDE è uno strumento che registra le interazioni del browser per i casi di test. È possibile impostare punti di interruzione e controllare e mettere in pausa le variabili quando si verificano errori con Selenium Integrated Development Environment.

Quali sono i diversi componenti del selenio?

  • IDE di selenio
  • Selenio RC
  • Selenio WebDriver
  • Griglia di selenio

Quali sono i diversi tipi di test in Selenium?

  • Test end-to-end
  • Test di regressione
  • Test di sistema
  • Test delle prestazioni
  • Test di compatibilità

Quali sono le diverse eccezioni in Selenium?

  • ElementNotSelectableException
  • NoAlertPresentException
  • Eccezione non valida Selector
  • NoSuchSessionException
  • StaleElementReferenceException
  • NoSuchWindowException
  • NoSuchFrameException
  • NoSuchElementException
  • TimeoutException
  • ElementNotVisibleException

Cosa sono driver.close() e driver.quit() in WebDriver?

Il comando driver.close() chiude la finestra del browser in primo piano. Se è aperto un solo browser, chiude l'intera sessione del browser.

Il comando driver.quit() chiude l'intera sessione del browser con popup, schede e finestre del browser.

Cos'è un file Docker?

Dockerfile è un documento di testo con tutti i comandi che un utente può utilizzare su una riga di comando per assemblare un'immagine.

Differenze tra le immagini docker e il contenitore docker

Le immagini Docker sono modelli di sola lettura realizzati con codici sorgente, strumenti, librerie, dipendenze esterne e altri file necessari per il corretto funzionamento di qualsiasi applicazione su qualsiasi sistema operativo o piattaforma.

Un contenitore docker è una scatola che esegue i modelli di immagine docker.

Spiegare l'architettura di Docker

Docker segue un'architettura client-server e comprende Docker Client, Docker Host e Docker Registry.

Il client Docker utilizza le API e i comandi REST per comunicare con il server (docker daemon).

Il client Docker utilizza l'interfaccia a riga di comando per eseguire questi comandi

 docker build docker pull docker run
  • Docker Host fornisce un ambiente per eseguire ed eseguire le applicazioni. Costituito da demone docker, archiviazione, immagini, contenitori e reti.
  • Docker Registry gestisce e memorizza le immagini Docker.

Piattaforme cloud che supportano docker

Le piattaforme che supportano l'hosting docker sono;

  • Kamera
  • Google Cloud Run
  • Ospitalità A2
  • StackPath
  • Sloppy.io
  • Amazon ECS
  • Microsoft Azure
  • HostPresto
  • Vultr

Cos'è Nagios?

Nagios è uno strumento che monitora l'intera infrastruttura IT per garantire che i processi aziendali, i sistemi, i servizi e le applicazioni funzionino correttamente.

Come funziona Nagios?

  • Monitoraggio . Il personale IT configura Nagios per monitorare protocolli di rete, metriche di sistema, applicazioni, infrastruttura di rete, servizi e server.
  • Allerta . Nagios invia avvisi quando i componenti critici si guastano. Gli avvisi possono essere inviati tramite SMS, codice personalizzato o e-mail.
  • Risposta . Il team IT riconosce gli avvisi e agisce.
  • Rapporti . Vengono generati report che forniscono un record cronologico di notifiche, interruzioni, risposte agli avvisi ed eventi per una successiva revisione.
  • Manutenzione . I tempi di inattività programmati impediscono l'invio di avvisi durante la manutenzione.

Menziona alcuni plugin in Nagios

  • Plugin Nagios ufficiali: sviluppati e mantenuti dal team ufficiale
  • Plugin personalizzati : scritti da privati/aziende per soddisfare le esigenze individuali
  • Plugin della comunità -sviluppati dai membri della comunità Nagios

Spiegare la virtualizzazione con Nagios

Nagios offre la possibilità di monitorare varie metriche su varie piattaforme di virtualizzazione. Nagios può essere eseguito da varie piattaforme di virtualizzazione come Xen, Amazon EC2, VMware e Microsoft Virtual PC.

In che modo Nagios aiuta con il monitoraggio?

Nagios utilizza agenti come NRPE, check_mk o SNMP per raccogliere statistiche sul tuo server e inviare un avviso se le metriche superano la soglia predefinita.

Quali numeri di porta utilizza Nagios per scopi di monitoraggio?

SNMP, porte 161 e 162

Cos'è un analizzatore di rete Nagios?

L'analizzatore di rete Nagios è un software di analisi dei dati sflow che consente agli utenti di risolvere in modo proattivo comportamenti anomali, interruzioni e minacce alla sicurezza prima di interrompere le operazioni aziendali. Questo strumento di livello commerciale offre informazioni approfondite sul traffico di rete e sull'infrastruttura IT.

Variabili che influenzano l'ereditarietà e la ricorsione in Nagios

  • Nome -un modello 'nome' che può ereditare le variabili/proprietà dell'oggetto.
  • Usa- specifica il nome dell'oggetto del modello da cui si desidera ereditare variabili/proprietà.
  • Register indica se il nome dell'oggetto modello deve essere 'registrato' con Nagios.

Cos'è il burattino?

Puppet è uno strumento open source per la gestione e la distribuzione della configurazione del software.

Che cos'è un manifest di Puppet?

Puppet manifest è un file che contiene il linguaggio di configurazione Puppet che descrive come devono essere configurate le risorse.

Qual è il codice del burattino?

Il codice pupazzo è un codice dichiarativo, il che significa che lo descrivi utilizzando lo stato desiderato del tuo sistema e non i passaggi necessari per arrivarci.

Cos'è Cuoco?

Chef è uno strumento di gestione della configurazione che converte l'infrastruttura in codice. Questo strumento si concentra sulla scrittura del codice anziché sul processo manuale.

Come funziona Chef?

Il lavoro di Chef inizia quando gli amministratori di sistema o gli sviluppatori definiscono le attività da automatizzare. I libri di cucina e le ricette (piccoli programmi scritti in un linguaggio specifico del dominio) vengono quindi acquisiti e testati utilizzando vari strumenti come Test Kitchen, ChefSpec e Foodcritic.

Se i libri di cucina e le ricette funzionano come previsto, vengono quindi distribuiti al server Chef utilizzando gli strumenti della riga di comando di knife e chef. Un processo di distribuzione chef ha un server Chef, workstation e nodi. Puoi scegliere tra oltre 3000 modelli di libri di cucina e personalizzarli in base alle tue esigenze. Lo Chef si occuperà poi del resto del lavoro.

Riepilogo

Secondo Glassdoor, lo stipendio medio di un ingegnere DevOps è di $ 104281 all'anno negli Stati Uniti. Anche se DevOps è una nuova carriera, ora possiamo vedere più aziende assumere per questo ruolo e pubblicare vari corsi per fornire ai professionisti le competenze essenziali. Sopra sono riportate alcune domande che probabilmente incontrerai in un'intervista DevOps.

Puoi anche esplorare alcuni buoni corsi online per imparare DevOps.