Scarica il pdf
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 software che del team di distribuzione (operazioni). Si concentra sulla fornitura di prodotti software più velocemente e sulla riduzione del tasso di fallimento dei rilasci.
2) Menzionare quali sono gli aspetti chiave o il principio alla base di DevOps?
L'aspetto o il principio chiave alla base di DevOps è
- Infrastruttura come codice
- Distribuzione continua
- Automazione
- Monitoraggio
- 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
- Code building
- Copertura del codice
- Test di unità
- Confezione
- Distribuzione
Infrastruttura
- Approvvigionamento
- Configurazione
- Orchestrazione
- Distribuzione
4) Spiegare come viene elaborato o eseguito il "codice dell'infrastruttura" in AWS?
In AWS,
- Il codice per l'infrastruttura sarà in un semplice formato JSON
- Questo codice JSON sarà organizzato in file chiamati modelli
- Questi modelli possono essere distribuiti su devops AWS e quindi gestiti come stack
- Successivamente 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.
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 per una comunicazione più chiara tra i membri del team.
7) Elenca alcuni strumenti popolari per DevOps?
Alcuni degli strumenti popolari per DevOps sono
- Jenkins
- Nagios
- Monit
- ELK (Elasticsearch, Logstash, Kibana)
- Jenkins
- Docker
- Ansible
- Idiota
8) Indica in quale istanza hai utilizzato SSH?
Ho usato SSH per accedere a una macchina remota e lavorare sulla riga di comando. Oltre a questo, l'ho anche usato per eseguire il tunneling nel sistema al fine di facilitare comunicazioni crittografate sicure tra due host non attendibili su una rete non sicura.
9) Spiega come gestiresti il controllo di revisione (versione)?
Il mio approccio alla gestione del controllo di revisione consiste nel pubblicare il codice su SourceForge o GitHub in modo che tutti possano visualizzarlo. Inoltre, pubblicherò l'elenco di controllo dell'ultima revisione per assicurarmi che eventuali problemi irrisolti vengano risolti.
10) Quali sono i tipi di richieste Http?
I tipi di richieste HTTP sono
- OTTENERE
- CAPO
- METTERE
- INVIARE
- PATCH
- ELIMINA
- TRACCIA
- COLLEGARE
- OPZIONI
11) Spiega cosa controlleresti se un server di build Linux inizia improvvisamente a rallentare?
Se un server di build Linux inizia improvvisamente a rallentare, controllerai le tre cose seguenti
| Problemi relativi alla RAM, problemi di lettura / scrittura di I / O del disco, problemi relativi allo spazio su disco, ecc. |
| Controlla il file di registro dell'applicazione OPPURE il file di registro del server delle applicazioni, i problemi di prestazioni del sistema, il registro del server Web: controlla i registri HTTP, tomcat lo, jboss o WebLogic per vedere se il tempo di risposta / ricezione del server delle applicazioni è il problema di lentezza, perdita di memoria di qualsiasi applicazione |
| Problemi relativi all'antivirus, problemi relativi al firewall, problemi di rete, problemi di tempo di risposta del server SMTP, ecc. |
12) Quali sono i componenti chiave di DevOps?
I componenti più importanti di DevOps sono:
- Integrazione continua
- Test continuo
- Consegna continua
- Monitoraggio continuo
13) Assegna un nome ad alcune piattaforme cloud utilizzate per l'implementazione DevOps
Le popolari piattaforme di cloud computing utilizzate per l'implementazione di DevOps sono:
- Google Cloud
- Amazon Web Services
- Microsoft Azure
14) Fornire alcuni vantaggi dell'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 le varianti passate sono strettamente imballate all'interno del VCS.
- Un VCS distribuito 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 tuo team.
- Consente di vedere quali modifiche esatte vengono apportate al contenuto del file
15) Spiega Git Bisect
Git bisect ti aiuta a trovare il commit che ha introdotto un bug usando la ricerca binaria.
16) Qual è la build?
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?
Puppet è un utile strumento di gestione dei progetti. Ti aiuta ad automatizzare le attività di amministrazione.
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 Release".
Una versione canary è un modello che riduce il rischio di introdurre una nuova versione del software nell'ambiente di produzione. Viene fatto rendendolo disponibile in modo controllato a un sottoinsieme dell'utente. Prima di renderlo disponibile al set completo dell'utente.
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.
21) Cos'è Vagrant?
Un vagabondo è uno strumento in grado di creare e gestire ambienti virtualizzati per testare e sviluppare software.
22) Qual è l'uso del 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 della versione
- Comunicazione adeguata tra i membri del team
- Test automatizzati
- Distribuzione automatizzata
25) Indica 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 il tempo impiegato da qualsiasi attività per introdurli nell'ambiente di produzione.
- Tieni traccia di quanti difetti si trovano 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) Spiega lo strumento SubGIt
SubGit ti aiuta a migrare SVN a 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 strumenti di monitoraggio della rete più importanti sono:
- Splunk
- Icinga 2
- Wireshark
- Nagios
- OpenNMS
28) Se la tua scheda video può eseguire Unity, come lo sai?
Quando usi un comando
/usr/lib/Linux/unity_support_test-p
fornirà un output dettagliato sui requisiti di Unity e, se vengono 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 su Applicazioni di avvio
- Nella finestra Preferenze applicazione di avvio , fare clic su Aggiungi per aggiungere una voce
- Quindi inserisci le informazioni nelle caselle di commento come Nome, Comando e Commento
/usr/bin/canberra-gtk-play-id= "desktop-login"-description= "play login sound"
- Esci e poi accedi una volta che hai finito
È anche possibile aprire con tasto di scelta rapida Ctrl + Alt + T .
30) Qual è il modo più veloce per aprire un terminale Ubuntu in una determinata directory?
Per aprire un terminale Ubuntu in una determinata directory, puoi utilizzare la scorciatoia da tastiera personalizzata.
Per farlo, 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 desktop di Ubuntu?
È possibile 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 crei i lanciatori su un desktop in Ubuntu?
Per creare lanciatori 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) Spiega cos'è Memcached?
Memcached è un sistema di caching di oggetti di memoria distribuito, gratuito e open source, ad alte prestazioni. L'obiettivo principale di Memcached è migliorare il tempo di risposta per i dati che possono essere altrimenti recuperati o costruiti da qualche altra fonte o database. Viene utilizzato per evitare la necessità di utilizzare ripetutamente il database SQL o un'altra origine per recuperare i dati per una richiesta simultanea.
Memcached può essere utilizzato per
- Social network-> Caching del profilo
- Content Aggregation-> HTML / Page Caching
- Targeting dell'annuncio-> Cookie / tracciamento del profilo
- Relazione-> Memorizzazione nella cache della sessione
- E-commerce -> Sessione e cache HTML
- Servizi basati sulla posizione-> Ridimensionamento delle query del database
- Giochi e intrattenimento-> Memorizzazione nella cache della sessione
Memcache aiuta
- Accelera i processi applicativi
- Determina cosa memorizzare e cosa no
- Riduci il numero di richieste di recupero al database
- Riduce l'accesso I / O (Input / Output) (disco rigido)
Lo svantaggio di Memcached è
- Non è un archivio dati persistente
- Non un database
- Non è un'applicazione specifica
- Non può memorizzare nella cache oggetti di grandi dimensioni
34) Menzionate alcune caratteristiche importanti di Memcached?
Le caratteristiche importanti di Memcached includono
- Token CAS: un token CAS è collegato a un oggetto recuperato da una cache. Puoi usare quel token per salvare il tuo oggetto aggiornato.
- Richiamate: semplifica il codice
- getDelayed: riduce il tempo di ritardo dello script che attende il ritorno dei risultati da un server
- Protocollo binario: è possibile utilizzare il protocollo binario invece di ASCII con il client più recente
- Igbinary: in precedenza, un client era sempre solito fare la serializzazione del valore con dati complessi, ma con Memcached è possibile utilizzare l'opzione igbinary.
35) Spiegare se è possibile condividere una singola istanza di un 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. Quindi, 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 si guasta e contiene i tuoi dati, proverà mai a ottenere i dati chiave da quel server guasto?
I dati nel server guasto non verranno rimossi, ma esiste una disposizione per il guasto automatico, che puoi configurare per più nodi. Il failover può essere attivato durante qualsiasi socket o errori a livello di server Memcached e non durante errori client standard come l'aggiunta di una chiave esistente, ecc.
37) Spiega come puoi ridurre al minimo le interruzioni del server Memcached?
- Quando un'istanza fallisce, molte di esse si interrompono e questo metterà un carico maggiore sul server del database quando i dati persi vengono ricaricati quando un client effettua una richiesta. Per evitare ciò, se il tuo codice è stato scritto per ridurre al minimo la fuga precipitosa della cache, avrà un impatto minimo
- Un altro modo è aprire 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 in quanto 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 da
- 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 piuttosto che eliminare semplicemente le chiavi e attendere la successiva richiesta dei dati per aggiornare la cache, reimpostare 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 quando una cache scade ei siti Web vengono colpiti dalle più richieste effettuate dal client contemporaneamente. Questo effetto può essere prevenuto utilizzando un blocco del semaforo. In questo sistema, quando il valore scade, il primo processo acquisisce il blocco e inizia a generare nuovo valore.
40) Spiega come non dovrebbe essere usato Memcached?
- L'uso improprio di Memcached è quello di usarlo 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 tramite un'altra fonte
- Memcached è solo un archivio di chiavi o valori e non può eseguire una query sui dati o iterare sui contenuti per estrarre le informazioni
- Memcached non offre alcuna forma di sicurezza né nella crittografia né nell'autenticazione
41) Quando un server viene chiuso, i dati memorizzati in Memcached sono ancora disponibili?
I dati memorizzati in Memcached non sono durevoli, quindi se un server viene spento o riavviato, tutti i dati memorizzati in Memcached vengono eliminati.
42) Indica qual è la differenza tra Memcache e Memcached?
- Memcache: è un'estensione che ti consente di lavorare attraverso pratiche interfacce orientate agli oggetti (OOP) e procedurali. È progettato per ridurre il carico del database nelle applicazioni Web dinamiche.
- Memcached : è un'estensione che utilizza la libreria libmemcached per fornire API per la comunicazione con i server Memcached. Viene utilizzato per aumentare le applicazioni web dinamiche alleviando il carico del database. È l'ultima API.
43) Spiegare il modello di distribuzione blu / verde
Il motivo di colorazione blu / verde affronta le sfide più importanti affrontate durante il processo di distribuzione automatica. Nell'approccio di distribuzione blu / verde, è necessario garantire due ambienti di produzione identici. Tuttavia, solo uno di loro è LIVE in un dato momento. L'ambiente LIVE è chiamato ambiente blu.
Quando il team prepara la versione successiva del software, conduce la fase finale di test in un ambiente noto come ambiente verde. Una volta verificato, il traffico viene indirizzato all'ambiente Green.
44) Quali 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?
L'incontro post mortem viene fatto per discutere cosa è andato storto e quali misure è necessario intraprendere per evitare errori.
46) Qual è il metodo più semplice per creare una piccola nuvola?
VMfres è una delle opzioni più efficaci per creare cloud IaaS dalle VM di Virtual Box in pochissimo tempo. Tuttavia, se vuoi PaaS leggero, Dokku è una buona opzione perché lo script bash può essere PaaS fuori dai contenitori Dokku.
47) Nomina due strumenti che vengono utilizzati per il networking docker.
Per la rete docker, puoi utilizzare Kubernetes e Docker swarm.
48) Nomina alcune delle aree in cui DevOps è implementato
DevOps viene utilizzato 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 per avvicinarsi allo sviluppo del prodotto. In 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 la programmazione in coppia con riferimento a DevOps
La programmazione in coppia è una pratica ingegneristica delle regole di programmazione estreme. In questo metodo, due programmatori lavorano sullo stesso sistema, sullo stesso design / algoritmo / codice.
Un programmatore agisce come un "driver". Altro funge da "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 recupero in caso di guasto
- Frequenza di distribuzione
- Percentuale di distribuzioni non riuscite