Le 50 principali domande e risposte alle interviste DevOps (PDF)

Ecco le domande e le risposte al colloquio DevOps rivolte ai candidati più freschi ed esperti per ottenere il lavoro dei loro sogni.

 

Domande e risposte sull'intervista DevOps per le matricole

1) Spiegare cos'è DevOps?

È un termine emergente nel campo IT, che non è altro che una pratica che enfatizza la collaborazione e la comunicazione sia degli sviluppatori di software che del team di distribuzione (operazioni). Si concentra sulla fornitura di prodotti software più rapidamente e sulla riduzione del tasso di fallimento dei rilasci.

👉 Download gratuito del PDF: domande e risposte sull'intervista DevOps >>


2) Menzionare quali sono gli aspetti chiave o i principi alla base di DevOps?

L'aspetto chiave o il principio alla base di DevOps è

  • Infrastruttura come codice
  • Distribuzione continua
  • Automazione
  • Controllo
  • Sicurezza

3) Quali sono le operazioni principali di DevOps con lo sviluppo di applicazioni e con l'infrastruttura?

Le operazioni principali di DevOps sono

Sviluppo di applicazioni

  • Costruzione del codice
  • Copertura del codice
  • Test unitari
  • Packaging
  • Distribuzione

Infrastruttura

  • vettovagliamento
  • Configurazione
  • Orchestrazione
  • Distribuzione

4) Spiegare come viene elaborato o eseguito il "codice dell'infrastruttura" in AWS?

Nell'AWS,

  • Il codice per l'infrastruttura sarà in semplice formato JSON
  • Questo codice JSON sarà organizzato in file chiamati modelli
  • Questi modelli possono essere distribuiti su AWS Devops e quindi gestiti come stack
  • Later il servizio CloudFormation eseguirà l'operazione di creazione, eliminazione, aggiornamento, ecc. nello stack

5) Spiegare quale linguaggio di scripting è più importante per un ingegnere DevOps?

Un linguaggio di scripting più semplice sarà migliore per un ingegnere DevOps. Python sembra essere molto popolare.

Domande sull'intervista DevOps


6) Spiegare in che modo DevOps è utile agli sviluppatori?

DevOps può essere utile agli sviluppatori per correggere il bug e implementare rapidamente nuove funzionalità. Aiuta anche a una comunicazione più chiara tra i membri del team.


7) Elenca alcuni strumenti popolari per DevOps?

Alcuni degli strumenti più diffusi per DevOps sono

  • Jenkins
  • Nagios
  • Monit
  • ELK (Ricerca elastica, Logstash, Kibana)
  • Jenkins
  • docker
  • ansible
  • Idiota

8) Menziona in quale occasione hai utilizzato SSH?

Ho utilizzato SSH per accedere a un computer remoto e lavorare sulla riga di comando. Oltre a ciò, l'ho utilizzato anche per creare un tunnel nel sistema per facilitare le comunicazioni crittografate sicure tra due host non affidabili su una rete non sicura.


9) Spiega come gestiresti il ​​controllo di revisione (versione)?

Il mio approccio alla gestione del controllo delle revisioni sarebbe quello di pubblicare il codice su SourceForge o GitHub in modo che tutti possano visualizzarlo. Inoltre, pubblicherò la lista di controllo dell'ultima revisione per assicurarmi che eventuali problemi irrisolti vengano risolti.


10) Quali sono le tipologie di richieste HTTP?

I tipi di richieste HTTP sono

  • GET
  • TESTA
  • PUT
  • POST
  • PATCH
  • DELETE
  • TRACCIA
  • COLLEGARE
  • VERSIONI

11) Spiega cosa controlleresti se un server di build Linux inizia improvvisamente a rallentare?

Se un server Linux-build-server inizia improvvisamente a rallentare, dovresti controllare le seguenti tre cose

Risoluzione dei problemi a livello di applicazione Problemi relativi alla RAM, problemi di lettura/scrittura I/O del disco, problemi relativi allo spazio su disco, ecc.
Risoluzione dei problemi a livello di sistema Controllare il file di registro dell'applicazione O il file di registro del server delle applicazioni, problemi di prestazioni del sistema, registro del server Web: controllare i registri HTTP, Tomcat lo, jboss o WebLogic per verificare se il tempo di risposta/ricezione del server delle applicazioni è il problema di lentezza, perdita di memoria di qualsiasi applicazione
Risoluzione dei problemi dei servizi dipendenti Problemi relativi all'antivirus, problemi relativi al firewall, problemi di rete, problemi relativi ai tempi di risposta del server SMTP, ecc.

12) Quali sono i componenti chiave di DevOps?

Eccone alcuni importanti Fasi del ciclo di vita DevOps:

SQL

  • Sviluppo continuo
  • Integrazione continua
  • Test continui
  • Distribuzione Continua
  • Monitoraggio continuo
  • Feedback continuo
  • Educazione Operazioni

13) Nomina alcune piattaforme cloud utilizzate per l'implementazione DevOps

Le piattaforme di cloud computing più popolari utilizzate per l'implementazione DevOps sono:

  1. Google Cloud
  2. Amazon Servizi web
  3. Microsoft Azure

14) Fornire alcuni vantaggi derivanti dall'utilizzo del sistema di controllo della versione

  • Il sistema di controllo della versione consente ai membri del team di lavorare liberamente su qualsiasi file in qualsiasi momento.
  • Tutte le versioni e varianti passate sono racchiuse all'interno del VCS.
  • Un VCS distribuito come ti aiuta a memorizzare la cronologia completa del progetto, quindi in caso di guasto nel server centrale puoi utilizzare il repository Git locale del membro del team.
  • Ti consente di vedere quali modifiche esatte sono state apportate al contenuto del file

15) Spiega Git Bisect

Git bisect ti aiuta a trovare il commit che ha introdotto un bug utilizzando la ricerca binaria.


16) Cos'è la costruzione?

Una build è un metodo in cui il codice sorgente viene messo insieme per verificare se funziona come una singola unità. Nel processo di creazione della build, il codice sorgente sarà sottoposto a compilazione, ispezione, test e distribuzione.


17) Cos'è Puppet?

Fantoccio è un utile strumento di gestione del progetto. Ti aiuta ad automatizzare le attività amministrative.


18) Spiegare l'autenticazione a due fattori

L'autenticazione a due fattori è un metodo di sicurezza in cui l'utente fornisce due modi di identificazione da categorie separate.


19) Spiega il termine 'Canary Pubblicazione'.

Una versione canary è un modello che riduce il rischio di introdurre una nuova versione software nell'ambiente di produzione. Si realizza rendendola disponibile in modo controllato a un sottoinsieme di utenti. Prima di renderla disponibile all'intero set di utenti.


20) Quali tipi di test sono importanti per garantire che il nuovo servizio sia pronto per la produzione?

È necessario condurre test continui per garantire che il nuovo servizio sia pronto per la produzione.


Domande e risposte sull'intervista DevOps per esperti

21) Cos'è Vagrant?

Un vagabondo è uno strumento in grado di creare e gestire ambienti virtualizzati per testare e sviluppare software.


22) A cosa serve il PTR nel DNS?

Il record del puntatore noto anche come (PTR) viene utilizzato per la ricerca DNS inversa.


23) Cos'è lo Chef?

È una potente piattaforma di automazione che trasforma l'infrastruttura in codice. In questo strumento è possibile utilizzare script di scrittura utilizzati per automatizzare i processi.


24) Quali sono i prerequisiti per l'implementazione di DevOps?

Di seguito sono riportati i prerequisiti utili per l'implementazione DevOps:

  • Almeno un software di controllo versione
  • Comunicazione corretta tra i membri del team
  • Test automatizzato
  • Distribuzione automatizzata

25) Indicare alcune best practice da seguire per il successo di DevOps.

Di seguito sono riportate le best practice essenziali per l'implementazione di DevOps:

  • La velocità di consegna significa tempo impiegato da qualsiasi attività per inserirli nell'ambiente di produzione.
  • Tieni traccia di quanti difetti si riscontrano nei vari
  • È importante misurare il tempo effettivo o medio necessario per il ripristino in caso di guasto nell'ambiente di produzione.
  • Anche il numero di bug segnalati dal cliente influisce sulla qualità dell'applicazione.

26) Spiegare lo strumento SubGIt

SubGit ti aiuta a migrare SVN su Git. Consente inoltre di creare un mirror Git scrivibile di un repository Subversion locale o remoto.


27) Nomina alcuni importanti strumenti di monitoraggio della rete

Alcuni degli strumenti di monitoraggio della rete più importanti sono:

  • Splunk
  • Icinga 2
  • Wireshark
  • Nagios
  • ApriNMS

28) Se la tua scheda video può funzionare Unity come fai a saperlo?

Quando usi un comando

/usr/lib/Linux/unity_support_test-p

fornirà un output dettagliato su Unitye, se sono soddisfatti, la scheda video può eseguire Unity.


29) Spiega come abilitare il suono di avvio in Ubuntu?

Per abilitare il suono di avvio

  • Fare clic sull'ingranaggio di controllo, quindi fare clic su Applicazioni di avvio
  • Nel Preferenze dell'applicazione di avvio finestra, fare clic Aggiungi per aggiungere una voce
  • Quindi compila le informazioni nelle caselle dei commenti come Nome, Comando e Commento
/usr/bin/canberra-gtk-play—id= "desktop-login"—description= "play login sound"
  • Esci e poi accedi una volta terminato

Puoi anche aprirlo con il tasto di scelta rapida Ctrl+Alt+T.


30) Qual è il modo più rapido per aprire un file Ubuntu terminale in una directory particolare?

Per aprire un Ubuntu terminale in una directory particolare, è possibile utilizzare una scorciatoia da tastiera personalizzata.

Per fare ciò, nel campo di comando di una nuova tastiera personalizzata, digita genome – terminal – – working – directory = /path/to/dir.


31) Spiega come puoi ottenere il colore corrente della schermata corrente sul Ubuntu scrivania?

Puoi aprire l'immagine di sfondo in The Gimp (editor di immagini) e quindi utilizzare lo strumento contagocce per selezionare il colore su un punto specifico. Ti dà il valore RGB del colore in quel punto.


32) Spiega come si creano i launcher su un desktop in Ubuntu?

Per creare launcher su un desktop in Ubuntu Puoi usare

ALT+F2 quindi digita "gnome-desktop-item-edit –create-new~/desktop", avvierà la vecchia finestra di dialogo della GUI e creerà un launcher sul desktop


33) Spiegare cos'è Memcached?

Memcached è un sistema di caching di oggetti di memoria distribuita, gratuito e open source, ad alte prestazioni. L'obiettivo principale di Memcached è di migliorare il tempo di risposta per i dati che altrimenti possono essere recuperati o costruiti da qualche altra fonte o database. Viene utilizzato per evitare la necessità di operare database SQL o un'altra fonte ripetutamente per recuperare dati per una richiesta simultanea.

Memcached può essere utilizzato per

  • Social network->Memoria nella cache del profilo
  • Aggregazione dei contenuti-> HTML/memorizzazione della pagina nella cache
  • Targeting degli annunci->Tracciamento cookie/profilo
  • Relazione->Memoria nella cache della sessione
  • E-commerce -> Sessione e caching HTML
  • Servizi basati sulla posizione-> Ridimensionamento delle query del database
  • Giochi e intrattenimento->Caching delle sessioni

Memcache aiuta

  • Velocizzare i processi di candidatura
  • Determina cosa conservare e cosa no
  • Ridurre il numero di richieste di recupero nel database
  • Riduce l'accesso I/O (Input/Output) (disco rigido)

Lo svantaggio di Memcached è

  • Non è un archivio dati persistente
  • Non una banca dati
  • Non è un'applicazione specifica
  • Non può memorizzare nella cache oggetti di grandi dimensioni

34) Citare alcune caratteristiche importanti di Memcached?

Le funzionalità importanti di Memcached includono

  • Gettoni CAS: Un token CAS è collegato a un oggetto recuperato da una cache. Puoi utilizzare quel token per salvare l'oggetto aggiornato.
  • Richiamate: Semplifica il codice
  • ottenereRitardato: Riduce il tempo di ritardo dello script che attende il ritorno dei risultati da un server
  • Protocollo binario: È possibile utilizzare il protocollo binario anziché ASCII con il client più recente
  • Igbinario: In precedenza, un client eseguiva sempre la serializzazione del valore con dati complessi, ma con Memcached è possibile utilizzare l'opzione igbinary.

Domande e risposte per interviste DevOps per oltre 5 esperienze

35) Spiegare se è possibile condividere una singola istanza di una Memcache tra più progetti?

Sì, è possibile condividere una singola istanza di Memcache tra più progetti. Memcache è uno spazio di archiviazione della memoria ed è possibile eseguire memcache su uno o più server. Puoi anche configurare il tuo client per parlare con un particolare insieme di istanze. Pertanto, puoi eseguire due diversi processi Memcache sullo stesso host e tuttavia sono completamente indipendenti. A meno che, se hai partizionato i tuoi dati, diventa necessario sapere da quale istanza ottenere o inserire i dati.


36) Hai più server Memcache, in cui uno dei server memcache fallisce e ha i tuoi dati, proverà mai a ottenere i dati chiave da quel server guasto?

I dati nel server guasto non verranno rimossi, ma è disponibile una disposizione per il guasto automatico, che puoi configurare per più nodi. Il failover può essere attivato durante qualsiasi errore a livello di socket o server Memcached e non durante errori client standard come l'aggiunta di una chiave esistente, ecc.


37) Spiegare come è possibile ridurre al minimo le interruzioni del server Memcached?

  • Quando un'istanza fallisce, molte di esse si interrompono e ciò comporterà un carico maggiore sul server del database quando i dati persi vengono ricaricati quando un client effettua una richiesta. Per evitare ciò, se il codice è stato scritto per ridurre al minimo la fuga di cache, lascerà un impatto minimo
  • Un altro modo è visualizzare un'istanza di Memcached su una nuova macchina utilizzando l'indirizzo IP della macchina persa
  • Il codice è un'altra opzione per ridurre al minimo le interruzioni del server poiché ti dà la libertà di modificare l'elenco dei server Memcached con un lavoro minimo
  • L'impostazione del valore di timeout è un'altra opzione che alcuni client Memcached implementano per l'interruzione del server Memcached. Quando il tuo server Memcached non funziona, il client continuerà a provare a inviare una richiesta fino al raggiungimento del limite di timeout

38) Spiega come puoi aggiornare Memcached quando i dati cambiano?

Quando i dati cambiano puoi aggiornare Memcached tramite

  • Svuotare la cache in modo proattivo: Svuotare la cache quando viene effettuato un inserimento o un aggiornamento
  • Reimpostazione della cache: È simile al primo metodo ma invece di limitarsi a eliminare le chiavi e attendere la successiva richiesta di dati per aggiornare la cache, reimposta i valori dopo l'inserimento o l'aggiornamento.

39) Spiega cos'è l'effetto Dogpile? Come puoi prevenire questo effetto?

L'effetto Dogpile si riferisce all'evento in cui una cache scade e i siti Web vengono colpiti da più richieste effettuate dal client contemporaneamente. Questo effetto può essere prevenuto utilizzando un blocco semaforico. In questo sistema, quando il valore scade, il primo processo acquisisce il blocco e inizia a generare un nuovo valore.


40) Spiegare come non dovrebbe essere utilizzato Memcached?

  • L'uso improprio comune di Memcached è utilizzarlo come archivio dati e non come cache
  • Non utilizzare mai Memcached come unica fonte delle informazioni necessarie per eseguire l'applicazione. I dati dovrebbero essere sempre disponibili anche attraverso un'altra fonte
  • Memcached è solo un archivio di chiavi o valori e non può eseguire una query sui dati o scorrere i contenuti per estrarre informazioni
  • Memcached non offre alcuna forma di sicurezza né nella crittografia né nell'autenticazione

41) Quando un server viene spento, i dati archiviati in Memcached sono ancora disponibili?

I dati archiviati in Memcached non sono durevoli, quindi se un server viene spento o riavviato, tutti i dati archiviati in Memcached vengono eliminati.


42) Menzionare quale è la differenza tra Memcache e Memcached?

  • Memoria cache: È un'estensione che ti consente di lavorare attraverso comode interfacce procedurali e orientate agli oggetti (OOP). È progettato per ridurre il carico del database nelle applicazioni Web dinamiche.
  • Memoria: È un'estensione che utilizza la libmemcached libreria per fornire API per la comunicazione con i server Memcached. Viene utilizzato per aumentare le applicazioni Web dinamiche alleviando il carico del database. È l'API più recente.

43) Spiegare il modello di distribuzione blu/verde

Il modello di colorazione Blu/Verde affronta le sfide più importanti affrontate durante il processo di distribuzione automatica. Nell'approccio Blue/Green Deployment, è necessario garantire due ambienti di produzione identici. Tuttavia, solo uno di essi è LIVE in un dato momento. L'ambiente LIVE è chiamato ambiente Blu.

Quando il team prepara la prossima release del software, esegue la fase finale di test in un ambiente noto come Green environment. Una volta verificato, il traffico viene instradato verso l'ambiente Green.


44) Cosa sono i contenitori?

I contenitori provengono da una virtualizzazione leggera. Offrono isolamento tra i processi.


45) Cos'è l'incontro post mortem con riferimento a DevOps?

Viene effettuato un incontro post mortem per discutere cosa è andato storto e quali misure è necessario intraprendere per evitare fallimenti.


46) Qual è il metodo più semplice per costruire una piccola nuvola?

VMfres è una delle opzioni più efficaci per realizzare cloud IaaS da virtuale Box VM in pochissimo tempo. Tuttavia, se desideri un PaaS leggero, Dokku è una buona opzione perché lo script bash può essere PaaS dai contenitori Dokku.


47) Nomina due strumenti utilizzati per la rete docker.

Per la rete Docker è possibile utilizzare Kubernetes e Docker Swarm.


48) Indicare alcune delle aree in cui sono implementati DevOps

I DevOps vengono utilizzati per la produzione, le operazioni IT, il feedback sulla produzione e lo sviluppo del software.


49) Cos'è il CBD'?

Il CBD o lo sviluppo basato su componenti è un modo unico di affrontare lo sviluppo del prodotto. Con questo metodo, gli sviluppatori cercano sempre componenti esistenti ben definiti, testati e verificati per comporli e assemblarli in un prodotto invece di svilupparli da zero.


50) Spiegare il Pair Programming con riferimento a DevOps

La programmazione in coppia è una pratica ingegneristica di Extreme Programming Rules. In questo metodo, due programmatori lavorano sullo stesso sistema, sullo stesso progetto/algoritmo/codice.

Un programmatore funge da “driver”. Altri agiscono come un “osservatore” che monitora continuamente lo stato di avanzamento di un progetto per identificare i problemi. I ruoli possono essere invertiti in qualsiasi momento senza alcun preavviso.


51) Spiegare il test di resilienza

Il test che garantisce il ripristino senza perdita di dati e funzionalità dopo un errore è chiamato test di resilienza.


52) Nomina tre importanti KPI DevOps

I tre KPI DevOps più comuni sono:

  • Nel frattempo al ripristino del fallimento
  • Frequenza di distribuzione
  • Percentuale di distribuzioni non riuscite

Queste domande del colloquio ti aiuteranno anche nel tuo viva(orale)