Il Paradigma Cloud

Il Cloud Computing è l'erogazione di risorse informatiche (server, storage, database, rete) tramite Internet ("il cloud") con tariffazione a consumo.

La metafora "Pets vs Cattle"

Nel modello on-premise tradizionale, i server erano come "animali domestici" (Pets): macchine costose, curate manualmente e configurate individualmente. Se un server si "ammalava", veniva pazientemente "curato" e ripristinato. Questo approccio limita la scalabilità ed è prono a disservizi.

Nel cloud moderno, le risorse informatiche sono considerate come un allevamento di "bestiame" (Cattle): risorse automatizzate, fungibili, numerate e standardizzate. Se un server mostra un problema, non viene curato, ma "abbattuto" e immediatamente rimpiazzato da un clone identico in modo automatico. Questo garantisce Alta Disponibilità, facilita la Scalabilità Orizzontale e riduce drasticamente i costi operativi.

Modelli di Servizio
  • IaaS (Infrastructure as a Service): Noleggi l'hardware base (server virtuali, reti, storage). Massima flessibilità ma massima responsabilità di gestione (es. aggiornare il sistema operativo). Esempio: AWS EC2.
  • PaaS (Platform as a Service): Fornisce un ambiente di sviluppo e deploy già pronto. Ti preoccupi solo di scrivere il codice e i dati; il provider gestisce l'hardware e il sistema operativo. Esempio: Heroku, AWS Elastic Beanstalk.
  • SaaS (Software as a Service): Applicazioni web finite pronte all'uso, gestite interamente dal fornitore. Esempio: Google Workspace, Office 365, Dropbox.

Servizi Core & Storage Deep Dive

Amazon Web Services (AWS) offre centinaia di servizi. Le fondamenta architetturali partono sempre dai servizi di calcolo (Compute) e dall'archiviazione del dato (Storage).

Compute (Calcolo)
  • Amazon EC2: Macchine virtuali (IaaS) configurabili per CPU e RAM. Ti danno pieno controllo sul sistema operativo.
  • Amazon EKS / ECS: Servizi specializzati per orchestrare flotte di container Docker.
  • AWS Lambda: Paradigma Serverless. Non noleggi nessun server: scrivi solo una funzione di codice e AWS la esegue solo quando viene scatenato un evento. Paghi al millisecondo di esecuzione.
Storage Deep Dive
  • Object Storage (Amazon S3): Archiviazione basata su oggetti senza gerarchia di directory (flat namespace). Ideale per file statici, backup, big data e asset web. I file sono accessibili via API HTTP/HTTPS. Offre durabilità del dato eccezionale (99.999999999%) e scalabilità virtualmente infinita.
  • Block Storage (Amazon EBS): Dischi fisici virtualizzati "attaccati" a una singola istanza EC2 tramite rete. Perfetto per database e file di sistema perché offre latenza a singola cifra di millisecondi e alte performance I/O. È strettamente legato all'istanza, anche se la persistenza può sopravvivere alla terminazione della macchina.
  • File Storage (Amazon EFS): Un file system di rete condiviso (NFS) ed elastico. Può essere montato contemporaneamente da centinaia di istanze EC2. Utile in architetture distribuite che necessitano di accesso concorrente in lettura/scrittura agli stessi file (es. CMS clusterizzati).

Database Cloud

La scelta tra database relazionali (SQL) e non relazionali (NoSQL) nel cloud implica specifici trade-off tra coerenza, latenza e capacità di scalare.

Amazon RDS e Aurora (SQL)
  • Relazionali: Garantiscono proprietà ACID e coerenza forte. Adatti per transazioni complesse e dati fortemente strutturati (es. ERP, e-commerce, banking).
  • Gestione: RDS automatizza backup, patch e repliche. Aurora è il DB relazionale proprietario AWS, compatibile con MySQL/PostgreSQL, ma riprogettato nativamente per il cloud, offrendo throughput notevolmente superiore.
  • Scalabilità: Prevalentemente verticale (aumentando RAM/CPU dell'istanza). Si scala in lettura tramite l'uso di Read Replicas.
Amazon DynamoDB (NoSQL)
  • Non Relazionali: Modello chiave-valore o a documenti, con schema dati flessibile (schemaless). Ideale per carichi enormi con pattern di accesso semplici e massivi (gaming, IoT, carrelli spesa).
  • Prestazioni e Scalabilità: Scalabilità orizzontale nativa, invisibile all'utente. Assicura latenze costanti a singola cifra di millisecondo per qualsiasi volume di dati. Modello Serverless: si paga on-demand o per capacità provisionata in base all'uso.
  • Trade-off: Progettato per scalabilità estrema a scapito del supporto a query analitiche complesse e JOIN nativi (che in DynamoDB non esistono o sono complessi da emulare).

Networking, Sicurezza e Crittografia

L'isolamento di rete e la crittografia dei dati sono i pilastri della sicurezza nel cloud (Security in the Cloud).

Amazon VPC (Virtual Private Cloud)

Una porzione logicamente isolata del cloud AWS dedicata unicamente a te. È il tuo data center virtuale definito via software.

  • Subnet Pubbliche: Porzioni di rete con accesso a Internet (tramite Internet Gateway). Ospitano risorse pubbliche come i Load Balancer o i server Web.
  • Subnet Private: Porzioni di rete isolate dal mondo esterno. I server qui dentro non hanno IP pubblico. Ospitano Database e Backend, proteggendoli da attacchi diretti da Internet.
Networking Firewall: Security Groups vs Network ACL
  • Security Groups (SG): Firewall a livello di istanza. Sono Stateful: se una richiesta in ingresso è permessa, il traffico di ritorno è automaticamente autorizzato (non serve una regola d'uscita esplicita). Supportano solo regole di tipo Allow.
  • Network ACL (NACL): Firewall a livello di subnet. Sono Stateless: ogni connessione è valutata in ingresso e in uscita indipendentemente. Il traffico di ritorno deve essere permesso esplicitamente da una regola. Supportano regole di Allow e di Deny (utili per bloccare specifici IP o range CIDR malevoli).
Crittografia Avanzata: KMS vs CloudHSM
  • AWS KMS (Key Management Service): Servizio gestito per creare e controllare le chiavi crittografiche (Customer Master Keys). È integrato nativamente con i servizi AWS (S3, EBS, RDS) ed è la soluzione standard per crittografare i dati at rest. L'infrastruttura sottostante è multi-tenant.
  • AWS CloudHSM: Hardware Security Module dedicato e fisicamente residente nel cloud (single-tenant). Il cliente ha accesso e controllo esclusivo sull'hardware e sulle chiavi. Viene richiesto per aderire a standard di sicurezza e compliance governativi o finanziari molto rigidi (come FIPS 140-2 Level 3 o le normative europee eIDAS).

Infrastructure as Code & Automazione AI

Configurare server manualmente porta inevitabilmente a errori umani. L'automazione è essenziale per la scalabilità e l'affidabilità.

Infrastructure as Code: Terraform vs AWS CDK

L'IaC permette di gestire le risorse del cloud tramite file di testo sottoposti a versioning (Git). Permette di tracciare le modifiche (es. "chi ha aperto il firewall?") e di replicare interi ambienti di produzione in pochi minuti.

  • Terraform (HashiCorp): Tool open-source agnostico. Utilizza un linguaggio dichiarativo (HCL). Definisci "cosa" vuoi (es. un DB con 20GB) e Terraform capisce "come" crearlo interfacciandosi con le API di AWS o di altri provider.
  • AWS CDK (Cloud Development Kit): Framework proprietario AWS che permette di definire l'infrastruttura cloud utilizzando linguaggi di programmazione generici (TypeScript, Python, Java). Il codice viene poi "sintetizzato" internamente in un template CloudFormation. Fornisce costrutti ad alto livello orientati agli sviluppatori.
Cloud TuringBots

L'evoluzione dell'automazione è guidata dall'Intelligenza Artificiale Generativa, attraverso agenti spesso definiti TuringBots.

  • Generazione e Scaffolding: LLM specializzati (es. Amazon Q Developer, GitHub Copilot) possono scrivere rapidamente interi moduli Terraform o template CloudFormation partendo da richieste espresse in linguaggio naturale (es. "Crea un'architettura Serverless per processare immagini").
  • Ottimizzazione: Analizzano l'infrastruttura suggerendo ottimizzazioni dei costi e l'adozione di best practice (es. identificando Security Group troppo aperti verso Internet).
  • Troubleshooting: Riducono drasticamente i tempi di indagine sugli errori, correggendo problemi complessi o conflitti di permission IAM in pochi secondi analizzando i log degli errori.
06 · Strumenti & DevOps 08 · Evoluzione & Riuso