NEW
Font size
WorksheetsModern DevOps 2024
Total questions: 30
Worksheet time: 15mins
Usare Managed Identities da sole, senza alcun servizio aggiuntivo, per gestire tutte le configurazioni sensibili.
DevOps è un framework che separa nettamente lo sviluppo (Dev) dalle operazioni (Ops) per garantire maggiore sicurezza.
DevOps si basa sull'integrazione continua e sulla distribuzione continua (CI/CD) per accelerare il rilascio di software riducendo il rischio.
DevOps è un nuovo linguaggio di programmazione progettato per automatizzare le operazioni IT.
DevOps è un insieme di strumenti per il monitoraggio dei sistemi, indipendente dai processi aziendali.
Qual è l'obiettivo principale dell'Integrazione Continua (CI)?
Automatizzare la gestione dei server di produzione per ridurre il downtime.
Permettere ai team di sviluppo di integrare frequentemente il codice in un repository condiviso, con test automatici per rilevare errori il prima possibile.
Sostituire completamente i test manuali con l'intelligenza artificiale per trovare bug senza intervento umano.
Distribuire automaticamente il codice in produzione ogni volta che uno sviluppatore effettua un commit.
Quale comando in Git viene utilizzato per unire le modifiche di un branch in un altro?
git commit
git merge
git branch
git clone
Che cos’è Git?
Un sistema di controllo di versione distribuito che consente di tracciare le modifiche al codice e collaborare tra sviluppatori.
Un servizio di hosting per repository di codice, simile a GitHub e GitLab.
Un linguaggio di programmazione usato per scrivere script di automazione nei
Un framework per la gestione di container e orchestrazione di microservizi.
Che cos’è GitHub?
Un sistema di controllo di versione distribuito che permette di gestire il codice sorgente in locale senza bisogno di una piattaforma online.
Un servizio di hosting basato su cloud che utilizza Git per la gestione dei repository di codice, facilitando la collaborazione tra sviluppatori.
Un sistema operativo progettato specificamente per sviluppatori che lavorano con repository Git.
Un framework di sviluppo per applicazioni web basato su Git.
A cosa serve il comando git remote?
Un repository Git memorizzato in locale su un altro computer.
Un backup automatico del repository Git creato ad ogni commit.
Un collegamento a un repository Git ospitato su un server remoto o su una piattaforma come GitHub, GitLab o Bitbucket.
Un branch speciale che mantiene una copia del codice nel cloud senza sincronizzarlo con il repository locale.
Cosa significa "squashare" i commit in Git?
Combinare più commit in un unico commit, mantenendo una cronologia più pulita e leggibile.
Eliminare definitivamente i commit da un branch senza possibilità di recuperarli.
Creare una copia compressa di un branch per ridurre lo spazio occupato nel repository.
Sincronizzare automaticamente il branch locale con il branch remoto eliminando i conflitti.
Cosa significa un Fast Forward Merge in Git?
Un merge che crea sempre un nuovo commit per rappresentare la fusione tra due branch.
Un'operazione che rimuove automaticamente i commit vecchi per mantenere il repository leggero.
Un merge che può avvenire solo quando il branch di destinazione non ha nuovi commit rispetto al branch che si sta unendo, evitando la creazione di un commit di merge.
Un'opzione per forzare l’unione di due branch con cronologie divergenti, ignorando i conflitti.
Qual è la differenza principale tra git push e git pull?
git push aggiorna il repository locale con le modifiche presenti nel repository remoto, mentre git pull invia le modifiche locali al repository remoto.
git push e git pull sono due comandi equivalenti, entrambi utilizzati per sincronizzare il codice tra repository locali e remoti.
git push è usato solo per aggiornare branch remoti, mentre git pull è utilizzato solo per aggiornare i branch locali.
git push invia le modifiche locali al repository remoto, mentre git pull scarica e applica le modifiche dal repository remoto al repository locale.
Che cos’è un Feature Flag in un sistema DevOps?
Un meccanismo che permette di attivare o disattivare funzionalità nel software senza dover distribuire una nuova versione.
Un flag di configurazione che blocca automaticamente il rilascio di nuove feature fino alla prossima release ufficiale.
Un sistema di logging avanzato che registra l’uso delle nuove feature per il debug.
Un parametro che indica se una feature è stata completamente testata ed è pronta per la produzione.
Qual è lo scopo principale di GitHub Actions nelle pipeline CI/CD?
Automatizzare flussi di lavoro per il testing, il build e il deployment del codice direttamente su GitHub.
Fornire un editor di codice online per modificare file direttamente nei repository GitHub.
Sostituire completamente GitHub con un sistema di automazione alternativo per la gestione del codice sorgente.
Creare e gestire ambienti di sviluppo cloud senza bisogno di un repository GitHub.
Quale affermazione descrive correttamente la relazione tra job, steps, conditions e dependencies in un workflow di GitHub Actions?
I job sono eseguiti sequenzialmente per impostazione predefinita, e i steps all'interno di un job vengono eseguiti solo se sono state soddisfatte le condizioni globali del workflow.
I steps all'interno di un job vengono eseguiti in parallelo, mentre i job vengono eseguiti sempre in sequenza senza bisogno di dichiarare dipendenze.
Ogni job in un workflow di GitHub Actions è indipendente dagli altri, a meno che non venga specificata una dependency con needs, e le conditions possono controllare l'esecuzione di steps e job.
I job e i steps in un workflow sono eseguiti casualmente a meno che non si definisca una condizione esplicita con run-if.
Quale delle seguenti affermazioni su YAML è corretta?
YAML utilizza la sintassi a base di parentesi {} e [], simile a JSON, per definire strutture di dati.
YAML è un linguaggio di programmazione che supporta loop e condizioni direttamente nel file di configurazione.
YAML è un formato di serializzazione leggibile da esseri umani che utilizza indentazione a spazi per definire strutture di dati come liste e dizionari.
YAML richiede l’uso di punti e virgole (;) per separare le chiavi dai valori all’interno di un file.
Quale delle seguenti opzioni è vera riguardo ai trigger di GitHub Actions?
I trigger di GitHub Actions sono eseguiti solo manualmente e non possono essere attivati automaticamente.
Un workflow può essere attivato automaticamente da eventi come push, pull_request o schedule.
I workflow di GitHub Actions possono essere attivati solo quando viene creato un nuovo branch.
GitHub Actions supporta solo trigger basati su commit e non può essere avviato da eventi esterni come webhook.
Qual è lo scopo principale di Docker?
Docker è un sistema di virtualizzazione che crea macchine virtuali complete per eseguire applicazioni isolate.
Docker è una piattaforma che utilizza container leggeri per eseguire applicazioni in ambienti isolati, senza la necessità di macchine virtuali.
Docker è un linguaggio di scripting per la gestione di server cloud.
Docker è un sistema operativo progettato per l’orchestrazione di microservizi.
Come funzionano i layer in Docker?
Ogni comando in un Dockerfile crea un nuovo layer che può essere riutilizzato per ottimizzare la build dell'immagine.
I layer di Docker vengono eliminati automaticamente dopo ogni build per ridurre l’uso di spazio.
Docker utilizza un solo layer per ogni immagine, sovrascrivendo quello precedente ad ogni modifica.
I layer in Docker servono solo per separare il codice sorgente dalle dipendenze e non influiscono sulla build dell’immagine.
Qual è lo scopo dell’uso di più istruzioni FROM in un Dockerfile (multi-stage build)?
Permettere di eseguire più container contemporaneamente dallo stesso Dockerfile.
Creare un backup del container all'interno dell'immagine Docker prima del rilascio in produzione.
Consentire a Docker di eseguire il codice in parallelo per migliorare le prestazioni delle applicazioni.
Ottimizzare le immagini Docker riducendo la dimensione finale, copiando solo gli artefatti necessari da un'immagine di build a un'immagine più leggera per l'esecuzione.
Qual è la differenza principale tra un kernel e un sistema operativo (OS)?
Il kernel è l'intero sistema operativo, mentre l’OS è solo l'interfaccia utente del sistema.
Il kernel è il componente centrale di un sistema operativo che gestisce l'hardware, mentre l'OS include anche strumenti e applicazioni per l'utente.
Il kernel e l'OS sono sinonimi e non esiste alcuna differenza tra i due.
Il kernel è un software opzionale che può essere disabilitato senza compromettere il funzionamento del sistema operativo.
Qual è la differenza principale tra una Docker Image e un Docker Container?
Una Docker Image è un’istanza in esecuzione di un’applicazione, mentre un Docker Container è solo un file di configurazione.
Una Docker Image può eseguire più Docker Container, ma un Docker Container non può essere creato senza un'immagine.
Una Docker Image è un file statico e immutabile che contiene tutto il necessario per eseguire un’applicazione, mentre un Docker Container è un’istanza eseguibile di quell’immagine.
Una Docker Image è un servizio cloud per l’archiviazione di applicazioni containerizzate, mentre un Docker Container è il software scaricato dal cloud.
Che cos’è un tag in una Docker Image?
Un identificatore univoco che permette di riferirsi a una specifica versione di un’immagine Docker.
Un comando Docker utilizzato per aggiornare automaticamente un'immagine esistente nel registry.
Un sistema per rinominare un container mentre è in esecuzione.
Un meccanismo per criptare immagini Docker prima di inviarle a un registry remoto.
Qual è lo scopo principale di Docker Compose?
Creare e gestire immagini Docker senza bisogno di un Dockerfile.
Comprimere le immagini Docker per ridurre lo spazio occupato nel sistema.
Sostituire docker run con un comando più veloce per avviare singoli container.
Definire e gestire applicazioni multi-container tramite un file YAML, semplificando il deployment.
Qual è lo scopo principale di Kubernetes (K8s)?
Kubernetes è un sistema operativo progettato per eseguire container Docker su un singolo server.
Kubernetes è un linguaggio di programmazione utilizzato per sviluppare microservizi containerizzati.
Kubernetes è una piattaforma di orchestrazione che automatizza il deployment, il scaling e la gestione dei container in un cluster.
Kubernetes è un sistema di virtualizzazione che crea e gestisce macchine virtuali per eseguire container.
Qual è il ruolo principale di un Pod in Kubernetes?
Un Pod è un'unità logica che può contenere uno o più container e rappresenta l'entità base di esecuzione in Kubernetes.
Un Pod è un nodo fisico nel cluster Kubernetes che esegue container.
Un Pod è un componente di Kubernetes utilizzato per esporre le applicazioni all'esterno del cluster.
Un Pod è un repository che memorizza immagini Docker prima di distribuirle nei nodi.
Qual è lo scopo principale di un Service in Kubernetes?
Un Service in Kubernetes è un container speciale che gestisce il networking all’interno del cluster.
Un Service in Kubernetes permette di esporre i Pod e fornisce un endpoint stabile per la comunicazione tra le applicazioni.
Un Service in Kubernetes è una replica di un Pod, utilizzata per garantire alta disponibilità.
Un Service in Kubernetes è un nodo del cluster responsabile della gestione della rete e delle connessioni tra container.
Qual è lo scopo principale di un Ingress in Kubernetes?
Un Ingress è un tipo speciale di Service che espone i Pod direttamente a Internet senza necessità di un LoadBalancer.
Un Ingress è una risorsa Kubernetes che gestisce il routing del traffico HTTP/HTTPS verso i Service interni, permettendo il bilanciamento del carico e il supporto ai domini personalizzati.
Un Ingress è un nodo Kubernetes che instrada il traffico tra i container all'interno del cluster.
Un Ingress è un tipo di Volume Kubernetes utilizzato per archiviare dati statici accessibili ai Pod.
Perché le reti Docker sono importanti e a cosa servono?
Le reti Docker servono a creare macchine virtuali separate per ogni container.
Le reti Docker servono solo per assegnare indirizzi IP statici ai container.
Le reti Docker sono necessarie solo quando si esegue un singolo container in modalità standalone.
Le reti Docker permettono ai container di comunicare tra loro e con l'esterno in modo controllato e sicuro.
Qual è il ruolo principale della Partition Key in Azure Cosmos DB?
La Partition Key viene utilizzata per assegnare manualmente un ID univoco a ogni documento nel database.
La Partition Key serve solo per ordinare i documenti all'interno di una collezione senza influenzare la distribuzione dei dati.
La Partition Key determina come i dati vengono distribuiti tra le partizioni fisiche per ottimizzare le query e le performance di lettura/scrittura.
La Partition Key viene utilizzata solo quando si esegue un backup del database, senza impatto sulle operazioni di lettura e scrittura.
Qual è il vantaggio principale di usare Azure Bicep rispetto ai tradizionali ARM Templates per la gestione dell’infrastruttura su Azure?
Azure Bicep è un linguaggio di programmazione che permette di scrivere script per automatizzare il provisioning di risorse senza bisogno di dichiarare esplicitamente la configurazione.
Azure Bicep è una sintassi semplificata rispetto agli ARM Templates JSON, rendendo più leggibile e gestibile l’Infrastructure as Code su Azure.
Azure Bicep sostituisce completamente Terraform e Pulumi per il provisioning multi-cloud.
) Azure Bicep è uno strumento esclusivamente dedicato alla gestione delle risorse di rete in Azure.
Qual è il principale vantaggio dell'Infrastructure as Code (IaC) rispetto alla gestione manuale dell'infrastruttura?
IaC permette di creare e gestire infrastrutture in modo automatico, ripetibile e versionabile, riducendo gli errori manuali.
IaC elimina completamente la necessità di amministratori di sistema, poiché le infrastrutture si gestiscono da sole.
IaC è un framework di sicurezza che protegge le risorse cloud dagli attacchi informatici.
IaC funziona solo su ambienti locali e non è compatibile con il cloud.
Quale soluzione è più sicura ed efficace per gestire segreti e credenziali in un’applicazione su Azure?
Usare environment variables (variabili d’ambiente) per memorizzare chiavi API e credenziali direttamente nel codice o nelle configurazioni dell'applicazione.
Archiviare credenziali e segreti nei file di configurazione dell’applicazione per garantire accessibilità immediata.
Usare Managed Identities da sole, senza alcun servizio aggiuntivo, per gestire tutte le configurazioni sensibili.
Salvare segreti e chiavi API in Azure Key Vault, gestendo l’accesso tramite Managed Identities, evitando credenziali hardcoded.
