Il cloud computing è quando i servizi informatici sono forniti da un'azienda o da un luogo al di fuori del luogo in cui vengono utilizzati. È come il modo in cui l'elettricità viene inviata agli utenti: essi utilizzano semplicemente l'elettricità che viene loro inviata e non devono preoccuparsi della provenienza dell'elettricità o di come viene prodotta e portata loro. Ogni mese, pagano solo quello che hanno usato e niente di più. L'idea alla base del cloud computing è simile: l'utente può semplicemente utilizzare lo storage, la potenza di calcolo o gli ambienti di sviluppo, senza doversi preoccupare di come lavorano dietro le quinte.

La nuvola è una metafora di Internet basata su come viene descritta nei diagrammi di rete dei computer. Proprio come nel mondo reale le nuvole nascondono alla vista parti del cielo, nel mondo dell'informatica la nuvola nasconde la complessa infrastruttura che fa funzionare Internet. Si tratta di un tipo di informatica in cui le azioni legate all'informatica sono fornite "come servizio", permettendo agli utenti di accedere a questi servizi attraverso Internet ("nella nuvola"). Non devono conoscere o controllare le tecnologie che stanno dietro di loro, impedendo loro di incorrere in problemi etici e legali.

Secondo l'IEEE, il cloud computing è un concetto in cui le informazioni sono collocate su server e inviate via Internet ad altri dispositivi, come computer, laptop, palmari e sensori. Include l'idea di avere un software come servizio (SaaS), come il Web 2.0, che dipende da Internet per soddisfare le esigenze dei propri utenti. Ad esempio, Google ha realizzato diverse applicazioni per l'ufficio accessibili da un browser web. A differenza di altri software che svolgono le stesse funzioni, tra cui Microsoft Office, il software e i dati sono memorizzati sui server di Google, non sulla macchina in cui vengono utilizzati.

Come funziona il cloud

Il cloud si basa su data center che contengono server, storage e reti. Attraverso tecnologie come la virtualizzazione e la containerizzazione, le risorse fisiche vengono suddivise in risorse logiche isolabili e assegnabili ai clienti. Un livello di orchestrazione (ad esempio Kubernetes) gestisce l'avvio, lo stop e il ridimensionamento dei carichi di lavoro. I servizi cloud espongono interfacce e API che permettono a utenti e applicazioni di richiedere risorse, automatizzare processi e integrare servizi esterni.

Modelli di servizio: SaaS, PaaS, IaaS

  • SaaS (Software as a Service): l'applicazione è fornita completa e accessibile via browser o API. L'utente usa il software senza occuparsi di installazioni, aggiornamenti o infrastruttura. Esempi tipici: suite per l'ufficio online, CRM, strumenti di collaborazione.
  • PaaS (Platform as a Service): piattaforme che forniscono ambienti di sviluppo e runtime. Lo sviluppatore carica il codice e la piattaforma si occupa di eseguirlo, scalare e gestire dipendenze. Utile per chi vuole concentrarsi sullo sviluppo senza gestire macchine o middleware.
  • IaaS (Infrastructure as a Service): fornisce risorse di base come macchine virtuali, storage e rete. L'utente controlla il sistema operativo, il middleware e le applicazioni, mentre il provider gestisce l'hardware fisico e la connettività.

Modelli di distribuzione: pubblico, privato, ibrido e multicloud

  • Cloud pubblico: servizi offerti da provider esterni e condivisi tra molti clienti (es. AWS, Azure, Google Cloud).
  • Cloud privato: infrastruttura dedicata a un singolo ente, ospitata internamente o da un terzo; offre maggiore controllo e isolamento.
  • Cloud ibrido: combina risorse on-premise e cloud pubblico per bilanciare costi, controllo e scalabilità.
  • Multicloud: uso di più provider cloud per evitare vendor lock-in, ottimizzare costi o sfruttare servizi specialistici.

Vantaggi principali

  • Scalabilità: risorse aggiuntive disponibili on demand per far fronte a picchi di traffico.
  • Costi: modello pay-as-you-go che può ridurre investimenti iniziali in hardware.
  • Agilità: deployment e provisioning rapidi per sviluppo e test.
  • Manutenzione ridotta: il provider gestisce aggiornamenti hardware, patch e monitoraggio di base.
  • Affidabilità: molte piattaforme offrono ridondanza, backup e servizi di disaster recovery integrati.

Rischi e considerazioni

  • Sicurezza e privacy: occorre valutare crittografia, controllo accessi (IAM) e gestione delle chiavi; la responsabilità della sicurezza è condivisa tra provider e cliente.
  • Compliance e normativa: normative sulla protezione dei dati (es. GDPR) impongono vincoli su dove e come i dati possono essere conservati e trattati.
  • Lock-in del fornitore: dipendenza da API o servizi proprietari può rendere costoso migrare risorse.
  • Prestazioni e latenza: per applicazioni sensibili alla latenza, la posizione geografica dei data center è importante.
  • Costi nascosti: trasferimenti di dati, storage a lungo termine e servizi aggiuntivi possono aumentare la spesa se non monitorati.

Sicurezza e conformità

Le best practice includono:

  • cifratura dei dati in transito e at rest;
  • gestione rigorosa delle identità e dei permessi (principio del minimo privilegio);
  • uso di network isolation, VPC e segmentazione;
  • monitoraggio continuo, logging e strumenti di rilevamento delle intrusioni;
  • piani di backup, test regolari di disaster recovery e procedure di ripristino;
  • verifica della conformità tramite certificazioni del provider (ISO, SOC, ecc.).

Fatturazione e modelli di prezzo

I modelli comuni sono:

  • Pay-as-you-go: paghi per l'effettivo utilizzo (CPU, storage, traffico).
  • Istanza riservata o piani a lungo termine: sconti in cambio di impegni di utilizzo a lungo termine.
  • Spot/preemptible: risorse molto economiche ma soggette a interruzioni; adatte a carichi tolleranti alle interruzioni.

Casi d'uso comuni

  • Siti web e applicazioni web scalabili;
  • Backup e disaster recovery;
  • Big Data e analisi (data lake, data warehouse);
  • Machine learning e intelligenza artificiale;
  • Sviluppo e test rapidi di software;
  • Servizi IoT con raccolta e processamento di dati da sensori.

Consigli pratici per scegliere un provider

  • Valuta i requisiti di sicurezza e conformità della tua organizzazione;
  • Controlla la presenza geografica dei data center per latenza e residenza dei dati;
  • Analizza il modello di costo in base ai pattern di utilizzo previsti;
  • Verifica le offerte di supporto, SLA e strumenti di monitoraggio;
  • Pianifica una strategia di uscita e migrazione per evitare lock-in e ridurre rischi futuri.

In sintesi, il cloud computing consente di concentrare risorse e competenze sui servizi e sulle applicazioni utili al business, delegando al provider la gestione dell'infrastruttura sottostante. Tuttavia, per sfruttarlo al meglio è importante conoscere i modelli di servizio (SaaS, PaaS, IaaS), valutare rischi di sicurezza e conformità e adottare buone pratiche per controllo dei costi e resilienza.