Cos'è OpenStack?
OpenStack è una piattaforma open source che utilizza pool di risorse virtuali per creare e gestire cloud pubblici e privati. Gli strumenti che formano la piattaforma OpenStack, denominati "progetti", gestiscono i servizi base del cloud computing, ovvero elaborazione, rete, storage, identità e gestione delle immagini. È possibile includere più di dieci progetti facoltativi, in modo da realizzare esclusivi cloud distribuibili.
Nella virtualizzazione, risorse come storage, CPU e RAM vengono astratte da diversi programmi proprietari e separate da un hypervisor, prima di essere distribuite in base alle necessità. OpenStack utilizza un set coerente di interfacce di programmazione delle applicazioni (API) per ottenere un ulteriore livello di astrazione di tali risorse virtuali, in pool distinti utilizzati per supportare gli strumenti standard di cloud computing con cui amministratori e utenti interagiscono direttamente.
OpenStack è solo una piattaforma per la gestione della virtualizzazione?
Non esattamente. Le due tecnologie hanno caratteristiche simili, ma non sono la stessa cosa.
OpenStack e le piattaforme di gestione della virtualizzazione si trovano un livello sopra le risorse virtualizzate e possono individuare, segnalare e automatizzare i processi negli ambienti offerti da diversi provider.
Tuttavia, mentre le piattaforme di gestione della virtualizzazione semplificano la manipolazione delle caratteristiche e delle funzioni delle risorse virtuali, OpenStack sfrutta le risorse virtuali per eseguire una combinazione di strumenti. Questi strumenti creano un ambiente cloud conforme ai cinque criteri del cloud computing stabiliti dal National Institute of Standards and Technology: una rete, risorse suddivise in pool, un'interfaccia utente, funzionalità di provisioning e controllo/assegnazione in automatico delle risorse.
Come funziona OpenStack
OpenStack è costituito da una serie di comandi denominati script, raggruppati in pacchetti chiamati "progetti" responsabili di trasmettere le attività con le quali vengono creati gli ambienti cloud. Per creare tali ambienti, OpenStack utilizza altri due tipi di software:
- un software di virtualizzazione che astrae le risorse virtuali dall'hardware;
- un sistema operativo di base che trasporta i comandi dettati dagli script OpenStack.
Per chiarire: di per sé, OpenStack non virtualizza le risorse, ma le utilizza per creare i cloud. Inoltre, non esegue i comandi ma li inoltra al sistema operativo sottostante. Le tre tecnologie, ovvero OpenStack, virtualizzazione e il sistema operativo di base, devono essere interoperabili. Questa interdipendenza spiega perché il deployment di un numero così elevato di cloud OpenStack è basato su Linux®, inducendo RackSpace e NASA a rilasciare OpenStack come software open source.
Componenti dell'architettura OpenStack
L'architettura OpenStack è formata da numerosi progetti open source, utilizzati per configurare gli undercloud e gli overcloud di OpenStack, che vengono impiegati rispettivamente da amministratori di sistemi e utenti cloud. Gli undercloud contengono i componenti principali necessari agli amministratori per configurare e gestire gli ambienti OpenStack degli utenti finali, noti come overcloud.
In ogni sistema OpenStack sono presenti 6 servizi principali che gestiscono elaborazione, reti, storage, identità e immagini. A questi, si aggiungono oltre una dozzina di altri servizi opzionali in fase di sviluppo. I 6 servizi principali rappresentano l'infrastruttura che consente al resto dei progetti di gestire il dashboarding, l'orchestrazione, il provisioning bare metal, la messaggistica, i container e la governance.
Nova
Nova è uno strumento completo di gestione e accesso alle risorse di elaborazione OpenStack e si occupa di gestirne la pianificazione, la creazione e l'eliminazione.
Neutron
Neutron gestisce la connettività di rete tra i servizi OpenStack.
Swift
Swift è un servizio di storage di oggetti, ad elevata tolleranza d'errore, che conserva e recupera gli oggetti dati non strutturati usando un'API RESTful.
Cinder
Cinder fornisce uno storage a blocchi persistente accessibile mediante un'API self-service.
Keystone
Keystone autentica e autorizza tutti i servizi OpenStack. Rappresenta inoltre il catalogo endpoint per tutti i servizi.
Glance
Glance archivia e recupera da diverse posizioni le immagini su disco delle macchine virtuali.
Cosa posso fare con OpenStack?
Cloud privati
Le distribuzioni di cloud privato eseguite su OpenStack offrono vantaggi notevoli, rispetto ai cloud privati basati su codice personalizzato. IDC ha stimato il valore di Red Hat OpenStack Platform per i cloud privati, determinando che le aziende ottengono vantaggi annuali per 6,81 milioni di dollari.
Virtualizzazione delle funzioni di rete
L'utilizzo di OpenStack per la virtualizzazione delle funzioni di rete (NFV) prevede la separazione delle principali funzioni di rete, in modo da poterle distribuire tra gli ambienti. 451 Research ha rilevato che questo approccio potrebbe essere adottato su vasta scala; è un obiettivo per quasi tutti i provider globali di servizi di comunicazione intervistati dall'azienda specializzata.
Cloud pubblici
OpenStack è la soluzione open source più diffusa per la realizzazione di ambienti cloud pubblici. OpenStack è adatto a ogni tipo di azienda, dalle società quotate alle semplici startup, e può essere utilizzato per configurare cloud pubblici con servizi in grado di competere con i principali provider di cloud pubblici.
Container
OpenStack offre una base sicura per i cloud pubblici e privati. I container velocizzano il rilascio di applicazioni semplificando, al tempo stesso, il deployment e la gestione delle applicazioni. L'esecuzione di container su OpenStack consente di ottenere la scalabilità necessaria affinché l'intera organizzazione possa usufruire dei team compartimentali.
Perché scegliere Red Hat OpenStack
Red Hat offre una versione più stabile di OpenStack per gli ambienti enterprise, pur mantenendo la sua natura open source, il che permette di continuare a offrire il totale controllo sull'infrastruttura cloud e su tutti i sistemi sottostanti. Il codice di Red Hat® OpenStack è libero da vincoli proprietari poiché condiviso, e ciò consente di adattare il deployment a qualsiasi fornitore. Operiamo a stretto contatto con i provider cloud per garantirti il massimo delle prestazioni a prescindere dall'infrastruttura su cui esegui il deployment.
La collaborazione con Red Hat va oltre i prodotti, il supporto, la consulenza e la formazione. Red Hat aiuta la tua azienda ad adottare l'approccio open source.