top 35 puppet interview questions
Puppet è uno strumento di gestione della configurazione open source. In questo tutorial abbiamo fornito le domande e le risposte dell'intervista a Puppet più frequenti:
Nell'attuale ambiente di sviluppo agile, gli sviluppatori integrano il loro codice più volte in un giorno e lavorano ore extra per svolgere le loro attività.
I team operativi lavorano insieme agli sviluppatori di applicazioni per integrare il loro codice utilizzando strumenti di controllo della versione, revisione del codice per mantenere la coerenza di progettazione e implementazione tra più sviluppatori, distribuire varie build per i test. Oltre a questo, devono mantenere sistemi e server in uno stato funzionante.
Vari sistemi e server quando vengono eseguiti continuamente diventano soggetti a malfunzionamenti. Nelle grandi organizzazioni con un'enorme base di clienti, la manutenzione dell'infrastruttura diventa un compito arduo.
Nel caso di infrastrutture appena installate o per mantenere quelle esistenti in buono stato, DevOps installa strumenti di configurazione come Puppet che imposta automaticamente la configurazione predefinita per le nuove macchine e ripristina la configurazione delle infrastrutture guaste mantenendole in stato di esecuzione.
Cosa imparerai:
Che cos'è lo strumento software Puppet
Puppet è uno strumento di gestione della configurazione open source che automatizza e gestisce la configurazione del server. Il suo codice scritto in Domain-Specific Language (DSL) è dichiarativo, in cui viene descritto lo stato desiderato dei nostri sistemi. Questo strumento automatizza l'aggiornamento dello stato di questi sistemi come descritto con l'aiuto del burattinaio e del loro agente.
In caso di errore del server, il codice aiuta il server a tornare ai precedenti stati di lavoro. Inoltre, lo strumento distribuisce i server su richiesta e impone loro la sicurezza.
Con questo strumento di gestione della configurazione, è possibile gestire NTP (Network Time Protocol), i privilegi Sudo per identificare gli utenti con privilegi di accesso elevati, oltre a questo server dei nomi DNS (Domain Name System) e anche il firewall.
Domande più frequenti per l'intervista alle marionette
D # 1) Spiega Puppet Enterprise.
Risposta: Puppet enterprise è uno strumento di configurazione o detto come un codice automatizzato in cui le informazioni sull'infrastruttura come il software e le relative impostazioni sono già definite per il sistema e il server in modo che possano essere installati, l'ambiente può essere configurato quando viene installata una nuova infrastruttura e viene eseguita la verifica periodica per garantire che questi sistemi e server rimangano nello stato desiderato.
D # 2) Descrivi l'architettura Puppet.
Risposta: Puppet segue un approccio di programmazione dichiarativa in cui il codice specifica cosa fare, ma non informa i passaggi su come farlo.
In base alla distribuzione basata su pull, i nodi dell'agente verificano a intervalli regolari di 30 minuti con un nodo master eventuali modifiche nell'agente. In caso di richiesta di modifica, l'agente estrae il codice specifico dal master ed esegue le azioni richieste sul nodo dell'agente.
- L'agente invia i fatti, ovvero il suo stato nella coppia di dati chiave / valore, al master. Lo stato include il sistema operativo del sistema, il tempo di attività, ovvero l'ora in cui il sistema è operativo, l'indirizzo IP, ovvero la macchina fisica o virtuale.
- Utilizzando le informazioni sui fatti, il master compila un catalogo che descrive come deve essere configurato l'agente. Catalog, un documento che spiega lo stato desiderato per le risorse dell'agente, il master gestisce sull'agente.
- L'agente risponde al master con informazioni sul completamento della configurazione, che possono essere visualizzate nella dashboard di Puppet.
D # 3) Spiega il funzionamento di Puppet.
Risposta: È spiegato come segue:
Le entità richieste per l'esecuzione includono Puppet Master e Puppet Agent.
L'agente o i nodi sono daemon in esecuzione sui server client. Questi server necessitano di alcune configurazioni o di essere gestiti tramite Puppet. Questo agente verifica le configurazioni a intervalli regolari con il master per qualsiasi modifica. Master è costituito da tutte le configurazioni memorizzate per diversi host e viene eseguito come daemon sul server master. L'agente e il master sono collegati tramite Secure Sockets Layer (SSL).
Il nodo collega il master, il master analizza quale configurazione e come può essere applicata al nodo. Dopo l'analisi, il master raccoglie risorse e configurazioni, compila e crea un catalogo e lo invia all'agente del nodo. Dopo aver applicato la configurazione, l'agente invia il report di configurazione applicato al server master.
D # 4) Descrivi il modulo Puppet.
Risposta: I moduli sono elementi costitutivi di base del pupazzo in una struttura di directory che contiene classi, attività, funzioni, fornitori di risorse e relativi tipi e plug-in come fatti o tipi personalizzati. È obbligatorio che i moduli siano installati nel percorso del modulo pupazzo. Questi moduli vengono utilizzati per gestire attività come l'installazione o la configurazione del software sul sistema o sul server.
Clic Qui per i moduli già pronti disponibili.
Q # 5) Cos'è Catalog in Puppet?
Risposta: Il catalogo è un documento con i dettagli sullo stato di ogni master risorse che gestisce sul nodo. Il Master compila un catalogo e lo rimanda all'agente. Contiene dati forniti dall'agente al nodo, dati esterni e dettagli relativi ai manifesti del pupazzo.
D # 6) Definisci le classi in Puppet.
Risposta: Le classi sono blocchi di codice, richiamati dai loro nomi, presenti nei moduli. Le classi vengono utilizzate per la funzionalità di tutti i pacchetti, servizi e file di configurazione necessari per eseguire un'applicazione. Questi possono essere aggiunti al catalogo del nodo in due modi possibili, ad esempio dichiarando queste classi nei manifesti o assegnandole da un classificatore di nodi esterno.
Le classi possono essere dichiarate in manifest nei due modi seguenti:
Utilizzando includere nome_classe O utilizzando classe { 'nome della classe' : }
tecniche di elicitazione dei requisiti nell'ingegneria del software
La struttura della classe Puppet è spiegata nella figura seguente:
D # 7) Cos'è Manifest in Puppet?
Risposta: Tutti i programmi Puppet scritti in linguaggio di programmazione Ruby e salvati con un'estensione di .pp, e sono costruiti con l'intenzione di creare e gestire qualsiasi macchina host in target sono chiamati Manifest.
Contiene File (il pupazzo seleziona e sposta questi file in una posizione di destinazione), Modelli (utilizzato per creare file di configurazione sul nodo), Nodi (le definizioni relative al nodo client sono descritte in nodi), Risorse , e Classi.
D # 8) Descrivi in dettaglio Facter in Puppet.
Risposta: Facter è una libreria multipiattaforma per la creazione di profili di sistema che rileva e riporta le informazioni di sistema per nodo note come fatti presenti come variabili con valori nel formato chiave-valore nei manifesti.
Facter e Facts sono disponibili nel codice Puppet come variabili globali, possono essere utilizzati nel codice senza alcun riferimento in qualsiasi punto, in qualsiasi punto del codice. Facter è una libreria che identifica i dettagli dei fatti che possono contenere il sistema operativo utilizzato, chiavi SSH, indirizzo IP, verifica per macchina virtuale o meno, indirizzi MAC, ecc.
I vari tipi di fatti utilizzati sono spiegati di seguito:
- Fatti principali: Si tratta di informazioni su risorse come cloud, dischi, memoria, sistema operativo, percorso, processori e partizioni. Possiamo utilizzare il seguente comando per visualizzare l'elenco completo dei fatti e i valori corrispondenti in formato chiave-valore.
- $ eseguire fatti marionette
- Fatti personalizzati: Usando export FACTER {fact’s_name} possiamo aggiungere fatti personalizzati al nodo. Questi dati sono personalizzati per soddisfare requisiti specifici di DevOps.
- Fatti esterni: Per applicare i fatti nella fase di provisioning, possiamo utilizzare fatti esterni, applicare metadati alle macchine virtuali in AWS, i fornitori di cloud OpenStack.
Q # 9) Cosa intendi per Puppet Kick?
Risposta: Puppet Kick deprecato nella versione corrente è un'utilità che attiva l'agente dal master. Secondo i manuali di Ubuntu, 'puppet kick' è uno script da eseguire come root per accedere ai certificati Secure Sockets Layer (SSL), connettere un insieme di macchine che eseguono l'agente e attivarle per eseguire le loro configurazioni.
Inoltre, questo comando cerca anche nel protocollo LDAP (Lightweight Directory Access Protocol), per gli host che corrispondono a quella configurazione, si connette a ciascuno di essi e si attiva per eseguire la loro configurazione. Per avviare il lavoro, l'agente deve identificare e rilevare le connessioni in entrata e deve avere accesso all'autorizzazione per eseguire gli endpoint.
D # 10) Descrivi le funzionalità di MCollective in Puppet.
Risposta: MCollective o Marionette Collective è un framework per la creazione di coordinamento, gestione e disposizione automatizzati di infrastrutture complesse, ad esempio sistemi e server noti come orchestrazione. Le attività amministrative sui cluster di server possono essere eseguite automaticamente utilizzando MCollective.
I loro componenti sono server, client e middleware. Utilizzando i comandi MCollective possiamo interrogare il valore dei fatti, avviare e arrestare i servizi, avviare lo strumento di configurazione stesso, nonché interrogare e aggiornare il software.
D # 11) Che cosa ha di speciale il design model-driven di Puppet?
Risposta: In precedenza gli amministratori di sistema seguivano una serie di passaggi per configurare e gestire l'infrastruttura, che comprende più gruppi di sistemi e server. In un approccio di progettazione basato sul modello, Puppet, che è un codice automatizzato scritto in Ruby, contiene tutti i dettagli di configurazione che vengono compilati in un catalogo.
Questo catalogo viene inviato a ogni nodo e condivide le risorse, i valori e le loro relazioni, la modifica richiesta della configurazione viene apportata ai sistemi guasti per ripristinarli allo stato di funzionamento normale.
D # 12) Fornisci alcuni casi d'uso per Puppet.
Risposta: Puppet viene utilizzato per gestire e standardizzare la distribuzione dell'infrastruttura.
Requisiti: Startup Company ha spostato la sua infrastruttura su fornitori di servizi cloud come il server web Amazon o i servizi Google Cloud. L'utente finale è responsabile della creazione, standardizzazione e manutenzione di sistemi e server su piattaforme, applicazioni e servizi diversi e desidera installare e utilizzare Puppet per facilitare il proprio compito.
Scenario 1: Gli amministratori utilizzano strumenti per standardizzare i loro server e sistemi, come la creazione di un file manifest con passaggi scritti nel codice di configurazione per costruire il loro nuovo server.
Per esempio,
- Installazione del sistema operativo, diciamo Linux.
- Verifica dello spazio su disco di Linux utilizzando il software File light o DUC.
- Installazione di Java.
- Installazione di Tomcat.
- Installazione di SQL Server come RDBMS.
- Installazione di patch per un'applicazione da creare e testare per il tirocinante di sviluppo software.
Scenario 2: Creazione del file, che elenca tutti i passaggi precedenti nel file manifest, che può essere eseguito utilizzando il comando pupazzo per eseguire i passaggi indicati automaticamente nel file manifest. In questo modo viene seguita la standardizzazione dei passaggi durante la distribuzione del nuovo sistema utilizzando manifest e comando.
Scenario 3: Il manifest creato verrà utilizzato per costruire il server Cloud tramite l'API in modo che tutte le attività manuali possano essere eseguite automaticamente.
D # 13) Spiega i comandi 'etckeeper-commit-post' e 'etckeeper-commit-pre'.
Risposta: Di seguito è riportata la differenza tra entrambi i comandi
- etckeeper-commit-post è un comando scritto nel file di configurazione, che può essere eseguito dopo aver eseguito il push della configurazione sull'agente.
- etckeeper-commit-pre è un comando scritto nel file di configurazione, che può essere eseguito prima di inviare la configurazione all'agente.
D # 14) Elencare i caratteri consentiti in un nome di classe, un nome di modulo e identificatori?
Risposta: Di seguito sono riportati i caratteri accettabili durante la dichiarazione del nome della classe e del nome del modulo:
- Deve iniziare con una lettera minuscola.
- Può includere lettere minuscole, cifre e trattini bassi.
- Operatore di risoluzione dell'ambito, ovvero '::' è un separatore dello spazio dei nomi nella definizione del nome della classe.
Con Nome variabile, i caratteri accettati sono i seguenti:
- Può iniziare con lettere maiuscole e minuscole.
- Può contenere numeri e trattini bassi ('_').
- Se il primo carattere è un trattino basso, la variabile può essere accessibile solo dal proprio ambito locale.
- Le variabili fanno distinzione tra maiuscole e minuscole.
D # 15) Cosa aspettarsi se non firmi un Contratto di licenza del collaboratore?
Risposta: È una condizione obbligatoria per firmare un contratto di licenza per collaboratori (CLA) per i contributori di codice a Puppet o Facter, senza il quale il loro codice non può essere accettato. Per trovare e scaricare il codice Puppet o Facter scritto in Ruby, l'utente deve accedere al proprio account GitHub e firmare un accordo.
D # 16) Spiega l'importanza e la posizione di codedir in Puppet?
Risposta: codedir viene utilizzato dal Master e applica il comando, ma non dall'agente. È la directory principale per dati e codice che utilizza un ambiente contenente manifesti e moduli, directory globale dei moduli e dati e configurazione Hiera.
Questa codedir si trova nelle seguenti directory locali
In caso di Windows: C: ProgramData PuppetLabs puppet ecc
Mentre per Linux: / etc / dir / PuppetLabs / code
Q # 17) Descrivi Hiera.
Risposta: Hiera è un sistema di ricerca per i dati di configurazione in formato chiave-valore. Aiuta a recuperare i dati dal codice Puppet. Questo codice utilizza questo sistema per chiamate di ricerca di parametri esplicite per le classi da un catalogo. Questo sistema utilizza i fatti di Puppet per identificare le fonti di dati. È 5thversione supporta file di dati nei formati JSON, YAML e EYAML.
Cerca i dati di configurazione in tre livelli di configurazione indipendenti a partire dal livello globale, quindi ambiente e infine modulo di configurazione.
D # 18) Descrivi le risorse virtuali in Puppet.
Risposta: Durante l'installazione di Puppet, si verifica un errore di dichiarazione della risorsa duplicata nel caso in cui la stessa risorsa venga utilizzata più di una volta. Questo strumento risolve questo problema introducendo una risorsa virtuale. La dichiarazione della risorsa virtuale rende la sua risorsa disponibile ai collezionisti e ne realizza la funzione. Inoltre gestisce lo stato quando la risorsa viene realizzata.
Puoi trovare risorse virtuali non realizzate contrassegnate come inattive incluse nel catalogo. Le risorse virtuali vengono applicate per la gestione delle risorse le cui condizioni multiple tra le classi sono soddisfatte e per i set di risorse sovrapposti da più classi.
domande di intervista al selenio per 3 anni di esperienza
D # 19) Descrivi il percorso del modulo.
Risposta: Servizio principale e con il comando di applicazione del pupazzo in cui i manifesti di Puppet vengono applicati localmente, caricare il loro contenuto dai moduli (installati nel percorso del modulo del pupazzo) da una o più directory. È l'elenco ordinato delle directory cercate per i moduli da Puppet. Queste directory dall'elenco modulepath sono separate da un carattere separatore.
In Linux, è due punti (:) e in Windows, è punto e virgola (;).
D # 20) Fornire dettagli sul percorso del modulo di base.
Risposta: L'elenco delle directory dei moduli globali è il percorso del modulo di base per l'applicazione con tutti gli ambienti, configurato con l'impostazione del percorso del modulo di base, con il valore predefinito come di seguito:
In caso di Linux: $ codedir / modules: / opt / puppetlabs / puppet / modules
In caso di Windows: $ codedir moduli
D # 21) Descrivi la directory Cache in Puppet.
Risposta: Puppet durante le normali operazioni, memorizza i dati generati in una directory cache chiamata vardir. Questi dati possono essere estratti per l'analisi. In caso di agente e applica comando, La directory della cache può essere trovata in una delle seguenti posizioni:
In caso di Windows, lo è C: programed PuppetLabs puppet cache
Mentre in Linux lo è / opt / puppetlabs / puppet / cache , in alternativa, utilizzando l'opzione –vardir sulla riga di comando, verrà specificata la posizione della directory della cache del pupazzo. Possiamo cambiare la posizione dei file e delle directory vardir, modificando le impostazioni di puppet.conf.
D # 22) Spiega gli 'ambienti' in Puppet.
Risposta: L'ambiente è una distribuzione logica che separa i moduli e si manifesta in sezioni o cartelle separate per i nodi al fine di ottenere bit di codice a seconda del nodo dell'ambiente a cui appartiene, è impostato staticamente in puppet.conf. È una funzionalità per suddividere la configurazione dell'infrastruttura in ambienti L'amministratore può utilizzare un unico master per servire più configurazioni isolate.
D # 23) Descrivi le risorse in Puppet.
Risposta: Puppet Resources utilizza la creazione, la progettazione e la gestione di infrastrutture di sistema o server. Questo strumento dispone di più tipi di risorse per creare e definire nuove risorse per definire l'architettura del sistema. Il blocco di codice Puppet nel file manifest (dichiarazione di risorsa) viene creato utilizzando DML (Declarative Modeling Language).
Contiene Tipo di risorsa, parametro di risorsa, attributi, e Valori.
D # 24) Spiega i tipi di risorse in Puppet.
Risposta: I componenti del sistema gestito da Puppet vengono analizzati con l'aiuto dei tipi di risorse. Pochi tipi di risorse comuni sono gruppo, pacchetto, utente, file e servizio.
Esistono due tipi di risorse, tipi incorporati e tipi personalizzati. Alcuni dei tipi di risorse incorporati sono gruppo, pacchetto, utente, file e servizio. Puoi trovare tipi personalizzati distribuiti in moduli pupazzo a cui fa riferimento forge.puppet.com.
D # 25) Spiega la definizione del nodo in Puppet.
Risposta: La definizione o istruzione del nodo è un blocco di codice pupazzo che corrisponde al catalogo del nodo. Consente l'assegnazione di una configurazione specifica al nodo interessato.
La loro sintassi è simile a quella delle definizioni di classe con la parola chiave del nodo, il nome della definizione del nodo, la parentesi graffa di apertura, una combinazione di dichiarazioni di classe e risorsa, raccoglitori, variabili, istruzioni condizionali, funzioni e relazioni di concatenamento, infine una parentesi graffa di chiusura.
D # 26) Descrivi le funzioni in Puppet.
Risposta: Le funzioni Puppet sono plug-in utilizzati durante la compilazione del catalogo. La chiamata di funzione tramite manifest fa sì che la funzione venga eseguita e restituisca valore e modifica il catalogo come effetto collaterale.
domande e risposte dell'intervista html per le matricole
Si possono creare le proprie funzioni che accettano argomenti tramite parametri per trasformare dati e costruire valori. Si tratta di plug-in o espressioni chiamate per risolvere il problema e possono essere incorporati o personalizzati.
D # 27) Fornisci esempi per configurare i sistemi usando Puppet
Risposta: Di seguito sono elencati alcuni esempi del sistema configurato con il pupazzo:
- Gestisci servizio NTP: Network Time Protocol (NTP) è i servizi più essenziali che possono essere gestiti e configurati utilizzando Puppet, per sincronizzare l'ora su tutti i nodi.
- Gestisci i privilegi di Sudo: Il comando Sudo sui tuoi agenti identificherà gli utenti del sistema con privilegi di accesso elevati.
- Gestisci un file del server dei nomi DNS: Il server dei nomi che mappa gli indirizzi IP compresi dai computer con URL leggibili dall'uomo può essere gestito utilizzando questo strumento di configurazione.
- Gestisci le regole del firewall: Varie regole e policy come le porte delle applicazioni (TCP / UDP), le porte di rete, l'indirizzo IP e le istruzioni di accesso negato possono essere progettate con il firewall, con le policy del firewall dello strumento che possono essere gestite.
D # 28) Descrivi il manifesto principale o del sito in un pupazzo.
Risposta: L'agente invia lo stato delle risorse chiamato fatti al master, in base alle informazioni ricevute. Master compilerà il catalogo sotto forma di un singolo file manifest, noto come manifesto principale o del sito. Il master utilizza il file manifest principale, un singolo o una directory di file .pp, configurato dall'ambiente del nodo corrente, che con l'aiuto dell'impostazione manifest in environment.conf, determina il manifest principale.
D # 29) Cosa intendi per applicazione delle marionette?
Risposta: Puppet apply è un comando di esecuzione autonomo per l'applicazione a singoli manifest. Questo codice quando applicato a modulepath tramite riga di comando o file di configurazione, agisce come catalog. 'Puppet apply' è un codice della riga di comando per applicare una configurazione.
D # 30) Elenca le aziende che utilizzano Puppet.
Risposta: Poche organizzazioni multinazionali che utilizzano Puppet nella gestione e configurazione dell'infrastruttura sono:
- KPN - Azienda olandese di telecomunicazioni fisse e mobili, Paesi Bassi
- CERN - Organizzazione europea per la ricerca nucleare
- Aegon UK - fornitore di servizi finanziari
- NYSE - Borsa di New York
- ICE - Intercontinental Exchange
- ANZ Bank
- Cisco
- Splunk
D # 31) Spiega quali preparativi pre-installazione ti serviranno prima di installare Puppet Open Source.
Risposta: Ci sono alcuni preparativi e requisiti prima di installare Puppet Open Source
- Selezione del server come master.
- Convalida che i server e la rete siano pronti e preparati per l'installazione con le seguenti istruzioni:
- Selezione del tipo di distribuzione per il server selezionato. Possiamo usare Docker compose basato su stack-puppet ware o, nel caso tu abbia già Docker, quindi clonare il file repo.
- eseguire il comando docker-compose up
- Installazione di agenti
- Una volta configurato Puppet Server, è necessario installare il pacchetto dell'agente sulla macchina del nodo su cui è necessario lo strumento di gestione della configurazione.
- In base al tuo sistema operativo, devi selezionare Linux, OS X e Microsoft Windows.
- Puoi utilizzare NTP e sudoer per automatizzare il codice Puppet per la progettazione della configurazione.
D # 32) Spiega Puppet Enterprise.
Risposta: Puppet Enterprise è scalabile tra vari team, sistemi, on-premise o su server cloud, implementando policy di conformità e sicurezza insieme alla configurazione per l'infrastruttura di migrazione on-premise e cloud senza tempi di inattività.
Genera anche report sullo stato del codice che vengono compilati, e informazioni su chi e quali modifiche sono state apportate a un codice di infrastruttura, attiva controlli di analisi a intervalli regolari sull'infrastruttura per valutare qualsiasi impatto prima di qualsiasi incidenza.
D # 33) Descrivi Puppet Remediate.
Risposta: Esegue la scansione dell'infrastruttura e produce dati sulle vulnerabilità in formati tracciabili e verificabili per dare priorità alle loro risoluzioni. Remediate bilancia gli strumenti che valutano le vulnerabilità e assegna priorità alle attività che richiedono una risoluzione immediata, partecipa a tali attività eseguendo attività predefinite come la gestione di pacchetti, servizi o l'esecuzione dello script della shell e risolve i problemi immediatamente.
D # 34) Spiega il funzionamento di Puppet Relay.
Risposta: Puppet Relay monitora la tua infrastruttura ed esegue script di automazione che non solo attivano avvisi in caso di incidenti utilizzando API, strumenti DevOps disponibili collegando sistemi on-premise o connessi al cloud, ma ripristina l'istanza utilizzando i dettagli di configurazione predefiniti presenti nei cataloghi dal manifest e infine informano il team dell'istanza.
Q # 35) Cos'è Bolt?
Risposta: Bolt automatizza il coordinamento, la gestione e la configurazione dei sistemi informatici e dei servizi correlati elaborati manualmente in precedenza e mantiene l'intera infrastruttura di un'organizzazione.
Conclusione
Puppet è uno strumento di gestione della configurazione automatizzato per l'infrastruttura in-premise e virtuale che segue il modello client-server, in cui una macchina è master e altre macchine agiscono come agente o nodi. Il suo scopo principale è gestire le risorse sul server della tua infrastruttura. La risorsa è un codice che gestisce le caratteristiche del server come un account utente o un contenuto software.
Questo strumento di gestione della configurazione ci consente di esprimere la configurazione del server nel codice per gestire automaticamente la tua infrastruttura.
Siamo sicuri che questo tutorial sulle domande dell'intervista a Puppet ti aiuterà a prepararti per la tua prossima intervista.
Lettura consigliata
- Domande e risposte dell'intervista
- ETL Testing Interview Domande e risposte
- Alcune domande e risposte sui test manuali complicati
- 35+ Top Domande e risposte per l'intervista di Apache Tomcat
- Top 35 domande e risposte ai colloqui di Struts frequenti
- 35+ domande e risposte ai colloqui di Microsoft Excel più comuni
- Top 35 domande e risposte di interviste su Android
- TOP 35 domande e risposte per i colloqui HTML5