dicembre 21, 2025
13 min di lettura

Domande per il Colloquio di Junior Cloud Engineer GCP: Guida Completa

interview
career-advice
job-search
entry-level
Domande per il Colloquio di Junior Cloud Engineer GCP: Guida Completa
MB

Milad Bonakdar

Autore

Padroneggia i fondamenti essenziali di GCP con domande complete per il colloquio, che coprono Compute Engine, Cloud Storage, VPC, IAM e i concetti fondamentali di Google Cloud per i ruoli di junior cloud engineer.


Introduzione

Google Cloud Platform (GCP) è una suite completa di servizi di cloud computing che offre capacità di calcolo, archiviazione, networking, big data e machine learning. Come junior cloud engineer, avrai bisogno di una conoscenza di base dei servizi GCP principali per costruire e gestire l'infrastruttura cloud.

Questa guida copre le domande essenziali per i colloqui per i junior GCP cloud engineer, concentrandosi su Compute Engine, Cloud Storage, VPC e IAM.


GCP Compute Engine

1. Cos'è Google Compute Engine e quali sono i suoi principali casi d'uso?

Risposta: Compute Engine fornisce macchine virtuali scalabili in esecuzione nei data center di Google.

Caratteristiche principali:

  • Tipi di macchine personalizzati o predefiniti
  • Dischi persistenti e SSD locali
  • VM preemptive per il risparmio sui costi
  • Migrazione live per la manutenzione
  • Bilanciamento del carico globale

Casi d'uso:

  • Web hosting
  • Application server
  • Elaborazione batch
  • Calcolo ad alte prestazioni
# Crea un'istanza VM
gcloud compute instances create my-instance \
  --zone=us-central1-a \
  --machine-type=e2-medium \
  --image-family=debian-11 \
  --image-project=debian-cloud

# Elenca le istanze
gcloud compute instances list

# SSH nell'istanza
gcloud compute ssh my-instance --zone=us-central1-a

# Ferma l'istanza
gcloud compute instances stop my-instance --zone=us-central1-a

Rarità: Molto comune Difficoltà: Facile


2. Spiega la differenza tra dischi persistenti e SSD locali.

Risposta:

CaratteristicaDisco persistenteSSD locale
DurabilitàI dati persistono indipendentementeI dati vengono persi quando la VM si ferma
PrestazioniBuoneEccellenti (bassa latenza)
DimensioneFino a 64 TBFino a 9 TB
Caso d'usoDischi di avvio, archiviazione datiCache temporanea, spazio di scratch
CostoInferioreSuperiore
SnapshotSupportatiNon supportati

Esempio:

# Crea una VM con disco persistente
gcloud compute instances create my-vm \
  --boot-disk-size=50GB \
  --boot-disk-type=pd-ssd

# Crea una VM con SSD locale
gcloud compute instances create my-vm \
  --local-ssd interface=NVME

Rarità: Comune Difficoltà: Facile-Media


GCP Cloud Storage

3. Quali sono le diverse classi di archiviazione in Cloud Storage?

Risposta: Cloud Storage offre diverse classi per diversi modelli di accesso:

ClasseCaso d'usoDisponibilitàDurata minimaCosto
StandardAccesso frequente99,95%NessunaPiù alto
Nearline< una volta al mese99,9%30 giorniInferiore
Coldline< una volta al trimestre99,9%90 giorniMolto basso
Archive< una volta all'anno99,9%365 giorniPiù basso
# Crea un bucket
gsutil mb -c STANDARD -l us-central1 gs://my-bucket

# Carica un file
gsutil cp myfile.txt gs://my-bucket/

# Elenca gli oggetti
gsutil ls gs://my-bucket/

# Scarica un file
gsutil cp gs://my-bucket/myfile.txt ./

# Cambia la classe di archiviazione
gsutil rewrite -s NEARLINE gs://my-bucket/myfile.txt

Rarità: Molto comune Difficoltà: Facile-Media


GCP VPC (Virtual Private Cloud)

4. Cos'è un VPC e quali sono i suoi componenti chiave?

Risposta: VPC è una rete virtuale che fornisce connettività per le risorse GCP.

Componenti chiave:

Loading diagram...

Componenti:

  1. Subnet: Intervalli IP regionali
  2. Regole Firewall: Controllano il traffico
  3. Rotte: Definiscono i percorsi del traffico
  4. VPC Peering: Connette i VPC
  5. Cloud VPN: Connette all'infrastruttura on-premises
# Crea un VPC
gcloud compute networks create my-vpc \
  --subnet-mode=custom

# Crea una subnet
gcloud compute networks subnets create my-subnet \
  --network=my-vpc \
  --region=us-central1 \
  --range=10.0.1.0/24

# Crea una regola firewall (consenti SSH)
gcloud compute firewall-rules create allow-ssh \
  --network=my-vpc \
  --allow=tcp:22 \
  --source-ranges=0.0.0.0/0

Rarità: Molto comune Difficoltà: Media


5. Come funzionano le regole firewall in GCP?

Risposta: Le regole firewall controllano il traffico in entrata e in uscita.

Caratteristiche:

  • Stateful (il traffico di ritorno è automaticamente consentito)
  • Applicate alla rete o a istanze specifiche
  • Basate sulla priorità (0-65535, inferiore = priorità più alta)
  • Predefinito: Consenti egress, nega ingress

Componenti della regola:

  • Direzione (ingress/egress)
  • Priorità
  • Azione (allow/deny)
  • Sorgente/destinazione
  • Protocolli e porte
# Consenti il traffico HTTP
gcloud compute firewall-rules create allow-http \
  --network=my-vpc \
  --allow=tcp:80 \
  --source-ranges=0.0.0.0/0 \
  --target-tags=web-server

# Consenti la comunicazione interna
gcloud compute firewall-rules create allow-internal \
  --network=my-vpc \
  --allow=tcp:0-65535,udp:0-65535,icmp \
  --source-ranges=10.0.0.0/8

# Nega traffico specifico
gcloud compute firewall-rules create deny-telnet \
  --network=my-vpc \
  --action=DENY \
  --rules=tcp:23 \
  --priority=1000

Rarità: Molto comune Difficoltà: Media


GCP IAM

6. Spiega i ruoli e le autorizzazioni IAM in GCP.

Risposta: IAM controlla chi può fare cosa su quali risorse.

Concetti chiave:

  • Membro: Utente, account di servizio o gruppo
  • Ruolo: Raccolta di autorizzazioni
  • Policy: Collega i membri ai ruoli

Tipi di ruolo:

  1. Primitivo: Proprietario, Editor, Visualizzatore (ampio)
  2. Predefinito: Specifico per il servizio (es. Amministratore Compute)
  3. Personalizzato: Autorizzazioni definite dall'utente
# Concedi il ruolo all'utente
gcloud projects add-iam-policy-binding my-project \
  --member=user:[email protected] \
  --role=roles/compute.instanceAdmin.v1

# Concedi il ruolo all'account di servizio
gcloud projects add-iam-policy-binding my-project \
  --member=serviceAccount:[email protected] \
  --role=roles/storage.objectViewer

# Elenca la policy IAM
gcloud projects get-iam-policy my-project

# Rimuovi il ruolo
gcloud projects remove-iam-policy-binding my-project \
  --member=user:[email protected] \
  --role=roles/compute.instanceAdmin.v1

Best practice:

  • Utilizza ruoli predefiniti quando possibile
  • Segui il principio del minimo privilegio
  • Utilizza account di servizio per le applicazioni
  • Controlla regolarmente le autorizzazioni

Rarità: Molto comune Difficoltà: Media


GCP Concetti Fondamentali

7. Cosa sono le regioni e le zone GCP?

Risposta:

Regione:

  • Posizione geografica (es. us-central1, europe-west1)
  • Contiene più zone
  • Domini di errore indipendenti
  • Scegli in base alla latenza, alla conformità, al costo

Zona:

  • Posizione isolata all'interno di una regione
  • Singolo dominio di errore
  • Distribuisci tra le zone per l'alta disponibilità
Loading diagram...

Esempio:

# Elenca le regioni
gcloud compute regions list

# Elenca le zone
gcloud compute zones list

# Crea un'istanza in una zona specifica
gcloud compute instances create my-vm \
  --zone=us-central1-a

Rarità: Molto comune Difficoltà: Facile


8. Cos'è un account di servizio e quando lo usi?

Risposta: L'Account di servizio è un account speciale per applicazioni e VM.

Caratteristiche:

  • Non per gli umani
  • Utilizzato dalle applicazioni
  • Può avere ruoli IAM
  • Può creare chiavi per l'autenticazione

Casi d'uso:

  • Istanze VM che accedono a Cloud Storage
  • Applicazioni che chiamano le API GCP
  • Pipeline CI/CD
  • Accesso tra progetti
# Crea un account di servizio
gcloud iam service-accounts create my-sa \
  --display-name="My Service Account"

# Concedi il ruolo all'account di servizio
gcloud projects add-iam-policy-binding my-project \
  --member=serviceAccount:[email protected] \
  --role=roles/storage.objectViewer

# Allega alla VM
gcloud compute instances create my-vm \
  [email protected] \
  --scopes=cloud-platform

Rarità: Comune Difficoltà: Facile-Media


Serverless e Messaggistica

9. Cos'è Cloud Pub/Sub e quando lo usi?

Risposta: Cloud Pub/Sub è un servizio di messaggistica completamente gestito per la comunicazione asincrona.

Concetti chiave:

  • Topic: Risorsa denominata a cui vengono inviati i messaggi
  • Subscription: Risorsa denominata che rappresenta il flusso di messaggi
  • Publisher: Invia messaggi ai topic
  • Subscriber: Riceve messaggi dalle subscription

Architettura:

Loading diagram...

Operazioni di base:

# Crea un topic
gcloud pubsub topics create my-topic

# Crea una subscription
gcloud pubsub subscriptions create my-subscription \
  --topic=my-topic \
  --ack-deadline=60

# Pubblica un messaggio
gcloud pubsub topics publish my-topic \
  --message="Ciao, mondo!"

# Estrai i messaggi
gcloud pubsub subscriptions pull my-subscription \
  --auto-ack \
  --limit=10

Esempio di Publisher (Python):

from google.cloud import pubsub_v1
import json

# Crea il client publisher
publisher = pubsub_v1.PublisherClient()
topic_path = publisher.topic_path('my-project', 'my-topic')

# Pubblica un messaggio
def publish_message(data):
    message_json = json.dumps(data)
    message_bytes = message_json.encode('utf-8')
    
    # Pubblica con attributi
    future = publisher.publish(
        topic_path,
        message_bytes,
        event_type='order_created',
        user_id='123'
    )
    
    print(f'ID del messaggio pubblicato: {future.result()}')

# Pubblicazione batch per efficienza
def publish_batch(messages):
    futures = []
    for message in messages:
        message_bytes = json.dumps(message).encode('utf-8')
        future = publisher.publish(topic_path, message_bytes)
        futures.append(future)
    
    # Attendi che tutti i messaggi siano pubblicati
    for future in futures:
        future.result()

Esempio di Subscriber (Python):

from google.cloud import pubsub_v1

subscriber = pubsub_v1.SubscriberClient()
subscription_path = subscriber.subscription_path('my-project', 'my-subscription')

def callback(message):
    print(f'Messaggio ricevuto: {message.data.decode("utf-8")}')
    print(f'Attributi: {message.attributes}')
    
    # Elabora il messaggio
    try:
        process_message(message.data)
        message.ack()  # Conferma l'elaborazione riuscita
    except Exception as e:
        print(f'Errore durante l'elaborazione del messaggio: {e}')
        message.nack()  # Riconoscimento negativo (riprova)

# Iscriviti
streaming_pull_future = subscriber.subscribe(subscription_path, callback=callback)

print(f'In ascolto dei messaggi su {subscription_path}...')

try:
    streaming_pull_future.result()
except KeyboardInterrupt:
    streaming_pull_future.cancel()

Tipi di Subscription:

1. Pull Subscription:

# Il subscriber estrae i messaggi su richiesta
gcloud pubsub subscriptions create pull-sub \
  --topic=my-topic

2. Push Subscription:

# Pub/Sub invia i messaggi all'endpoint HTTPS
gcloud pubsub subscriptions create push-sub \
  --topic=my-topic \
  --push-endpoint=https://myapp.example.com/webhook

Casi d'uso:

  • Architetture guidate dagli eventi
  • Comunicazione tra microservizi
  • Pipeline di elaborazione di flussi
  • Ingestione di dati IoT
  • Elaborazione asincrona delle attività

Best practice:

  • Utilizza gli attributi del messaggio per il filtraggio
  • Implementa l'elaborazione idempotente dei messaggi
  • Imposta scadenze di riconoscimento appropriate
  • Utilizza i topic di dead-letter per i messaggi non riusciti
  • Monitora il backlog della subscription

Rarità: Comune Difficoltà: Media


10. Cos'è Cloud Functions e come si distribuisce una?

Risposta: Cloud Functions è un ambiente di esecuzione serverless per la creazione di applicazioni guidate dagli eventi.

Trigger:

  • Richieste HTTP
  • Messaggi Cloud Pub/Sub
  • Eventi Cloud Storage
  • Eventi Firestore
  • Eventi Firebase

Esempio di Funzione HTTP:

# main.py
import functions_framework
from flask import jsonify

@functions_framework.http
def hello_http(request):
    """Funzione HTTP Cloud"""
    request_json = request.get_json(silent=True)
    
    if request_json and 'name' in request_json:
        name = request_json['name']
    else:
        name = 'World'
    
    return jsonify({
        'message': f'Ciao, {name}!',
        'status': 'success'
    })

Esempio di Funzione Pub/Sub:

import base64
import json
import functions_framework

@functions_framework.cloud_event
def process_pubsub(cloud_event):
    """Attivata dal messaggio Pub/Sub"""
    # Decodifica il messaggio
    message_data = base64.b64decode(cloud_event.data["message"]["data"]).decode()
    message_json = json.loads(message_data)
    
    print(f'Elaborazione del messaggio: {message_json}')
    
    # Elabora il messaggio
    result = process_data(message_json)
    
    return result

Esempio di Funzione Storage:

import functions_framework

@functions_framework.cloud_event
def process_file(cloud_event):
    """Attivata dalla creazione di oggetti Cloud Storage"""
    data = cloud_event.data
    
    bucket = data["bucket"]
    name = data["name"]
    
    print(f'File {name} caricato in {bucket}')
    
    # Elabora il file
    process_uploaded_file(bucket, name)

Distribuzione:

# Distribuisci la funzione HTTP
gcloud functions deploy hello_http \
  --runtime=python39 \
  --trigger-http \
  --allow-unauthenticated \
  --entry-point=hello_http \
  --region=us-central1

# Distribuisci la funzione Pub/Sub
gcloud functions deploy process_pubsub \
  --runtime=python39 \
  --trigger-topic=my-topic \
  --entry-point=process_pubsub \
  --region=us-central1

# Distribuisci la funzione Storage
gcloud functions deploy process_file \
  --runtime=python39 \
  --trigger-resource=my-bucket \
  --trigger-event=google.storage.object.finalize \
  --entry-point=process_file \
  --region=us-central1

# Distribuisci con variabili d'ambiente
gcloud functions deploy my_function \
  --runtime=python39 \
  --trigger-http \
  --set-env-vars DATABASE_URL=...,API_KEY=...

# Distribuisci con memoria e timeout specifici
gcloud functions deploy my_function \
  --runtime=python39 \
  --trigger-http \
  --memory=512MB \
  --timeout=300s

File di requisiti:

# requirements.txt
functions-framework==3.*
google-cloud-storage==2.*
google-cloud-pubsub==2.*
requests==2.*

Test in locale:

# Installa Functions Framework
pip install functions-framework

# Esegui in locale
functions-framework --target=hello_http --port=8080

# Testa con curl
curl -X POST http://localhost:8080 \
  -H "Content-Type: application/json" \
  -d '{"name": "Alice"}'

Monitoraggio:

# Visualizza i log
gcloud functions logs read hello_http \
  --region=us-central1 \
  --limit=50

# Visualizza i dettagli della funzione
gcloud functions describe hello_http \
  --region=us-central1

Best practice:

  • Mantieni le funzioni piccole e mirate
  • Utilizza le variabili d'ambiente per la configurazione
  • Implementa una corretta gestione degli errori
  • Imposta valori di timeout appropriati
  • Utilizza Cloud Logging per il debug
  • Riduci al minimo il tempo di cold start

Rarità: Molto comune Difficoltà: Facile-Media


CLI & Strumenti

11. Spiega i comandi e la configurazione comuni della CLI gcloud.

Risposta: La CLI gcloud è lo strumento principale per la gestione delle risorse GCP.

Configurazione iniziale:

# Installa gcloud SDK (macOS)
curl https://sdk.cloud.google.com | bash
exec -l $SHELL

# Inizializza e autentica
gcloud init

# Accedi
gcloud auth login

# Imposta il progetto predefinito
gcloud config set project my-project-id

# Imposta la regione/zona predefinita
gcloud config set compute/region us-central1
gcloud config set compute/zone us-central1-a

Gestione della configurazione:

# Elenca le configurazioni
gcloud config configurations list

# Crea una nuova configurazione
gcloud config configurations create dev-config

# Attiva la configurazione
gcloud config configurations activate dev-config

# Imposta le proprietà
gcloud config set account [email protected]
gcloud config set project dev-project

# Visualizza la configurazione corrente
gcloud config list

# Annulla l'impostazione della proprietà
gcloud config unset compute/zone

Comandi comuni per servizio:

Compute Engine:

# Elenca le istanze
gcloud compute instances list

# Crea un'istanza
gcloud compute instances create my-vm \
  --machine-type=e2-medium \
  --zone=us-central1-a

# SSH nell'istanza
gcloud compute ssh my-vm --zone=us-central1-a

# Ferma/avvia l'istanza
gcloud compute instances stop my-vm --zone=us-central1-a
gcloud compute instances start my-vm --zone=us-central1-a

# Elimina l'istanza
gcloud compute instances delete my-vm --zone=us-central1-a

Cloud Storage:

# Elenca i bucket
gsutil ls

# Crea un bucket
gsutil mb -l us-central1 gs://my-bucket

# Carica un file
gsutil cp myfile.txt gs://my-bucket/

# Scarica un file
gsutil cp gs://my-bucket/myfile.txt ./

# Sincronizza la directory
gsutil -m rsync -r ./local-dir gs://my-bucket/remote-dir

# Imposta il ciclo di vita del bucket
gsutil lifecycle set lifecycle.json gs://my-bucket

IAM:

# Elenca le policy IAM
gcloud projects get-iam-policy my-project

# Aggiungi il binding IAM
gcloud projects add-iam-policy-binding my-project \
  --member=user:[email protected] \
  --role=roles/viewer

# Crea un account di servizio
gcloud iam service-accounts create my-sa \
  --display-name="My Service Account"

# Crea e scarica la chiave
gcloud iam service-accounts keys create key.json \
  [email protected]

Kubernetes Engine:

# Elenca i cluster
gcloud container clusters list

# Ottieni le credenziali
gcloud container clusters get-credentials my-cluster \
  --zone=us-central1-a

# Crea un cluster
gcloud container clusters create my-cluster \
  --num-nodes=3 \
  --zone=us-central1-a

Flag utili:

# Formatta l'output
gcloud compute instances list --format=json
gcloud compute instances list --format=yaml
gcloud compute instances list --format="table(name,zone,status)"

# Filtra i risultati
gcloud compute instances list --filter="zone:us-central1-a"
gcloud compute instances list --filter="status=RUNNING"

# Limita i risultati
gcloud compute instances list --limit=10

# Ordina i risultati
gcloud compute instances list --sort-by=creationTimestamp

Comandi utili:

# Ottieni aiuto
gcloud help
gcloud compute instances create --help

# Visualizza le informazioni sul progetto
gcloud projects describe my-project

# Elenca le regioni/zone disponibili
gcloud compute regions list
gcloud compute zones list

# Visualizza le quote
gcloud compute project-info describe \
  --project=my-project

# Abilita l'API
gcloud services enable compute.googleapis.com

# Elenca le API abilitate
gcloud services list --enabled

Best practice:

  • Utilizza le configurazioni per diversi ambienti
  • Imposta il progetto e la regione predefiniti
  • Utilizza --format per lo scripting
  • Utilizza --filter per restringere i risultati
  • Abilita il completamento dei comandi
  • Mantieni gcloud SDK aggiornato

Rarità: Molto comune Difficoltà: Facile-Media


Conclusione

Prepararsi per un colloquio da junior GCP cloud engineer richiede la comprensione dei servizi principali e dei concetti cloud. Concentrati su:

  1. Compute Engine: Istanze VM, tipi di macchine, dischi
  2. Cloud Storage: Classi di archiviazione, bucket, ciclo di vita
  3. VPC: Networking, subnet, regole firewall
  4. IAM: Ruoli, autorizzazioni, account di servizio
  5. Concetti fondamentali: Regioni, zone, progetti

Esercitati a utilizzare la console GCP e la CLI gcloud per acquisire esperienza pratica. In bocca al lupo!

Newsletter subscription

Consigli di carriera settimanali che funzionano davvero

Ricevi le ultime idee direttamente nella tua casella di posta

Decorative doodle

Il Tuo Prossimo Colloquio Dista Solo un Curriculum

Crea un curriculum professionale e ottimizzato in pochi minuti. Non servono competenze di design—solo risultati comprovati.

Crea il mio curriculum

Condividi questo post

Batti il Tasso di Rifiuto ATS del 75%

3 curriculum su 4 non raggiungono mai un occhio umano. La nostra ottimizzazione delle parole chiave aumenta il tuo tasso di successo fino all'80%, assicurando che i reclutatori vedano effettivamente il tuo potenziale.