Il quadro dei servizi compute Azure

Azure offre 4-5 modi principali di eseguire codice. La domanda tipica dell’esame è: “dato questo scenario, quale servizio usi?”.

Azure Virtual Machines (IaaS)

Cos’è: VM Windows o Linux tradizionali, con controllo totale su OS e software installato.

Quando usarlo:

  • Software legacy che non gira su PaaS (es. app che serve accesso a driver specifici)
  • Lift-and-shift migration di applicazioni on-premises
  • Necessità di controllo sull’OS (kernel custom, tuning particolare)

Non usarlo per: nuove app cloud-native. Ci sono opzioni più efficienti (App Service, Functions).

Azure App Service (PaaS)

Cos’è: hosting managed per web app, REST API, mobile backend. Runtime managed (.NET, Node, Python, Java, PHP).

Quando usarlo:

  • Nuova web app o API — deploy in minuti, zero server management
  • Blue/green deployments con slot
  • Autoscale automatico per traffico web

Non usarlo per: workload background-only (usa Functions), o quando serve controllo sul OS.

Azure Container Instances (ACI)

Cos’è: container Docker esecuiti senza gestire un cluster Kubernetes. Pay-per-second.

Quando usarlo:

  • Job batch/one-shot in container
  • Elaborazione asincrona (es. processing immagini in coda)
  • Development environment condivisi

Non usarlo per: orchestration multi-container complessa (usa AKS) o workload stateful lunghi (usa AKS o VM).

Azure Kubernetes Service (AKS)

Cos’è: Kubernetes managed. Microsoft gestisce control plane, tu gestisci worker node pool.

Quando usarlo:

  • Microservizi in produzione
  • Pattern cloud-native complessi con service mesh
  • Orchestration di 10+ container correlati

Non usarlo per: web app singola (troppo complesso — usa App Service).

Azure Functions (Serverless)

Cos’è: FaaS (Function as a Service). Scrivi una funzione, Azure la esegue in risposta a trigger (HTTP, timer, coda, file blob).

Quando usarlo:

  • Elaborazione eventi (file upload → resize, message in queue → invio email)
  • API leggere con traffico spot
  • Job schedulati (timer trigger)

Non usarlo per: app long-running (limite 5-10 min execution) o app stateful.

Trappole tipiche d’esame

  • “Voglio ospitare una web app scalabile senza gestire il OS”App Service, non VM.
  • “Voglio eseguire un batch job ogni notte alle 2:00”Azure Functions con timer trigger, non VM sempre accesa.
  • “Ho un cluster di 20 microservizi comunicanti”AKS, non ACI.
  • “Voglio migrare la mia app legacy Windows Server 2019 as-is”Virtual Machines (rehost/lift-and-shift), non App Service.

Prossimo step

L’unità successiva copre lo Storage — Blob, File, Queue, Table — e i tier di prezzo hot/cool/archive.