Panoramica
Infrastructure-as-a-Service (IaaS), o servizi di infrastruttura cloud, è una forma di cloud computing in cui l'infrastruttura IT viene fornita agli utenti finali attraverso Internet. Il servizio IaaS è comunemente associato al serverless computing.
Confronto tra IaaS, PaaS e SaaS
L'approccio IaaS è uno dei tre modelli di servizi cloud ampiamente riconosciuti, insieme a Platform-as-a-Service (PaaS) e Software-as-a-Service (SaaS), e fornisce tutti i vantaggi delle risorse di elaborazione on-premise senza il relativo overhead. Nel modello IaaS sono gli utenti a gestire le applicazioni, i dati, il sistema operativo, il middleware e i runtime.
Il provider del servizio IaaS fornisce la virtualizzazione, lo storage, la rete e i server, eliminando l'esigenza di un datacenter on-premise ed evitando all'utente tutte le attività fisiche di aggiornamento e manutenzione necessarie per tali componenti.
Nella maggior parte dei casi, l'utente del servizio IaaS può controllare completamente l'infrastruttura tramite un'interfaccia di programmazione delle applicazioni (API) o un dashboard. IaaS è il modello di cloud as-a-Service più flessibile, perché consente di adattare, effettuare l'upgrade e aggiungere le risorse, come lo storage su cloud, quando necessario, senza costringere l'utente a prevedere le esigenze future e i costi associati.
Risorse da Red Hat
Tipologie di offerte di servizi cloud "as-a-Service"
In genere con as-a-Service si indica un servizio di cloud computing gestito da un provider per conto dell'utente, che in questo modo ha la possibilità di dedicarsi alle attività strategiche, come la scrittura di codice e le relazioni con i clienti. La popolarità di queste offerte è cresciuta grazie ai loro modelli di prezzo, che sono più convenienti rispetto all'infrastruttura on premise auto-gestita. Al contempo l'ecosistema di integrazioni, partner e tecnologie disponibili, proposto dai provider di servizi cloud, continua ad ampliarsi.
Di norma le offerte IaaS prevedono che sia il cliente a occuparsi di più livelli di gestione rispetto alle opzioni PaaS e SaaS.
Con il servizio PaaS, l'hardware e la piattaforma software applicativa vengono forniti e gestiti da un provider di servizi esterno, mentre l'utente gestisce l'applicazione e i dati. Destinato principalmente a sviluppatori e programmatori, il servizio PaaS offre una piattaforma su cui l'utente può sviluppare, eseguire e gestire applicazioni senza essere costretto a creare e gestire l'infrastruttura normalmente associata a tali processi. Le piattaforme cloud sono un tipo di servizio PaaS, come quelli forniti da Amazon Web Services (AWS), Microsoft Azure, Google Cloud e IBM Cloud.
SaaS è un servizio che fornisce agli utenti un'applicazione web, gestita dal provider del servizio, in genere tramite un browser web. L'utente, che si connette all'app tramite un'API o un dashboard, si occupa degli aggiornamenti software, della correzione dei bug e di altre attività generiche di manutenzione del software. Offrendo a gruppi o team la possibilità di accedere al software come desiderato, il servizio SaaS elimina la necessità di installare le applicazioni nei computer dei singoli utenti.
Le offerte "as-a-Service" sono particolarmente interessanti per i clienti con carichi di lavoro mutevoli, dal momento che i provider di servizi possono fornire le competenze e lo sforzo necessario per gestire la scalabilità e il bilanciamento del carico.
In che modo l'approccio IaaS si integra con la virtualizzazione, l'automazione e la containerizzazione
Un provider di soluzioni IaaS è in grado di semplificare l'esperienza degli sviluppatori eliminando la necessità di configurare i server di gestione. In genere questo si basa sull'architettura di cloud computing supportata da virtualizzazione, container e automazione. Allo sviluppatore basta creare e distribuire le applicazioni perché la gestione del server non è più un suo compito.
Con la virtualizzazione, le macchine virtuali (VM) forniscono ambienti completi che funzionano come un sistema con computer virtuali dotati di CPU, memoria, interfaccia di rete e storage propri. L'approccio IaaS prevede che questi vengano creati su un sistema con hardware fisico in un data center. Un software, definito hypervisor separa l'hardware dalle risorse della macchina, eseguendone il provisioning in modo che la VM possa utilizzarle.
Dietro ai servizi di una qualsiasi offerta IaaS c'è l'automazione dell'IT che assicura il deployment ottimale e la scalabilità a 360° in base alle richieste delle macchine virtuali sottostanti e dell'altra infrastruttura. L'orchestrazione indica l'automazione di diverse attività e configurazioni all'interno di gruppi di sistemi o di macchine.
È possibile che un'offerta IaaS includa anche il supporto per la containerizzazione. Una tecnologia in cui il codice del software, con tutti i suoi componenti necessari tra cui librerie, framework e altre dipendenze, sono all'interno di pacchetti nei rispettivi container Linux®, pronti per essere distribuiti in un ambiente di elaborazione (ad esempio una VM). Rispetto alle macchine virtuali, i container non includono il proprio sistema operativo e quindi possono avere dimensioni molto più piccole.
Soluzioni IaaS specifiche possono aiutare gli sviluppatori a lavorare con i container. Una di queste soluzioni è Kubernetes, una piattaforma di orchestrazione per container open source che semplifica la gestione di applicazioni distribuite e containerizzate su larga scala. Kubernetes si occupa di automatizzare il deployment e la gestione dei container. Alcuni provider IaaS offrono Kubernetes "as-a-Service".
Cos'hanno in comune l'approccio IaaS e DevOps?
DevOps descrive un metodo di lavoro in cui lo sviluppo e le operazioni si intersecano. Punta sul ridurre il tempo necessario affinché i miglioramenti del software passino alla fase del deployment, in modo che gli utenti abbiano accesso più rapidamente alle nuove applicazioni. Gli approcci DevOps richiedono che i team di sviluppo e quelli delle operazioni comunichino spesso e collaborino come un'unica squadra.
DevOps è spesso associato alle frequenti modifiche al codice e un impiego dinamico dell'infrastruttura, il che lo rende ideale per l'approccio IaaS. DevOps si concentra sulle attività di routine automatizzate e sugli ambienti standardizzati del ciclo di vita delle applicazioni. I team DevOps realizzano spesso software basato su un'architettura di microservizi che vengono collegati fra loro attraverso le API. Tutti questi aspetti aiutano i team a lanciare il software in meno tempo concentrandosi sulla creazione di porzioni di funzionalità più piccole e quindi sfruttando strategie come la metodologia Agile per consolidare il tutto.
Riducendo la necessità di manutenzione dell'infrastruttura server e puntando su un'esperienza automatizzata e più semplice per gli sviluppatori, IaaS è in grado di supportare i flussi di lavoro DevOps.
Qual è la differenza tra IaaS e la tecnologia serverless?
L'elaborazione serverless descrive un modello di sviluppo cloud native, in cui i server non rientrano più nello sviluppo delle app, che è spesso associato all'approccio IaaS.
La tecnologia serverless si basa su un fornitore di cloud per gestire sia l'infrastruttura che la scalabilità delle app. Le app serverless vengono distribuite in container che vengono avviati on demand al momento della chiamata.
Nell'ambito delle soluzioni IaaS, in genere l'utente è ancora responsabile di aumentare la capacità del server durante i picchi di domanda e di ridurla quando non occorre più. L'infrastruttura cloud necessaria per l'esecuzione di un'applicazione rimane attiva anche quando quest'ultima non è in uso.
Con un'architettura serverless, invece, le applicazioni vengono avviate solo quando necessario. Quando un evento attiva l'esecuzione del codice, il provider di cloud pubblico assegna dinamicamente le risorse per tale codice e l'utente paga il servizio solo fino alla fine dell'esecuzione. Il modello serverless consente di affidare al provider di servizi cloud attività di routine quali gestione del sistema operativo e file system, applicazione delle patch di sicurezza, bilanciamento del carico, gestione della capacità, gestione della scalabilità, registrazione e monitoraggio.
Aspetti da considerare nella scelta di un provider di servizi IaaS
- Flessibilità: è possibile acquistare solo i componenti che servono, aggiungendoli o eliminandoli come e quando necessario.
- Costi contenuti: grazie ai costi di gestione ridotti e all'assenza di costi di manutenzione, il servizio IaaS risulta molto sostenibile. Si paga solo ciò che si usa, quando lo si usa, come con una normale bolletta a consumo.
- Controllo: l'utente ha il controllo completo della propria infrastruttura.
- Sicurezza: il provider è noto per la sua affidabilità e ha le risorse necessarie al fine di prevenire e gestire le minacce alla sicurezza? Sono disponibili protocolli documentati per il ripristino di emergenza, che garantiscono la continuità operativa?
- Sistemi multi-tenant: poiché il provider IaaS solitamente distribuisce le risorse dell'infrastruttura fra più clienti, come necessario, è fondamentale che impedisca a ciascun cliente di accedere ai dati degli altri. Dato che l'infrastruttura del provider viene condivisa fra più clienti, può crearsi uno squilibrio noto come noisy neighbor (vicino rumoroso), in cui un singolo utente può assumere il monopolio di una risorsa specifica, rallentando le prestazioni degli altri. I provider devono quindi pianificare l'allocazione delle risorse con estrema attenzione e, proprio per questo, è importante comprendere il metodo utilizzato per garantire la scalabilità dei carichi dei clienti.
- Servizio: è importante conoscere gli SLA (Service Level Agreement, Accordo sui livelli di servizio) del provider di servizi, ovvero la quantità minima di tempo e lavoro che dedica alla risoluzione dei problemi di provisioning delle risorse.
- Affidabilità: le prestazioni e la velocità dipendono soprattutto dal provider. Di conseguenza, qualsiasi problema hardware o software riscontrato dal provider si ripercuote sui runtime dell'utente.
IaaS e Red Hat
I prodotti per l'infrastruttura cloud di Red Hat ti consentono di creare e gestire un cloud IaaS e includono: Red Hat OpenStack® Platform, Red Hat Satellite, Red Hat Ceph Storage e la piattaforma di orchestrazione dei container Red Hat OpenShift.
Accelera la distribuzione dei servizi, incrementa il valore del reparto IT, riduci il costo totale di proprietà e migliora la gestibilità. Esegui il deployment dei componenti come e quando vuoi, senza rinunciare mai al supporto pluripremiato di Red Hat.
Per semplificare l'acquisto e la gestione del software enterprise, Red Hat Marketplace offre il deployment automatizzato del software certificato su qualsiasi cluster Red Hat OpenShift.
Il blog ufficiale di Red Hat
Leggi gli articoli del blog di Red Hat per scoprire novità e consigli utili sulle nostre tecnologie, e avere aggiornamenti sul nostro ecosistema di clienti, partner e community.