OpenStack è la piattaforma di cloud computing opensource nata da un progetto supervisionato da NASA e Rackspace nel 2010 – due anni dopo venne istituita una fondazione non-profit (OpenStack Foundation). Ad oggi, facendo riferimento ad alcuni dati resi noti nel corso del summit svoltosi a Tokyo nell’ottobre 2015, è possibile affermare che si tratta della piattaforma più popolare del mercato con circa 50 compagnie che contribuiscono mensilmente allo sviluppo del progetto e 4000 sviluppatori attivi in tutto il mondo – Cloudstack, soluzione alternativa che più si avvicina ad OpenStack, resta a quota 327.
Nella prima parte della nostra breve guida introduttiva, prendendo spunto da un’intervista pubblicata dal portale Opensource.com, inzieremo a parlare di OpenStack e dei suoi componenti principali, senza addentrarci troppo in questioni tecniche (necessiterebbero di un intero sito dedicato).
Che cos’è OpenStack ed a chi si rivolge
Come anticipato in apertura, si tratta di una piattaforma cloud scritta in Python e pensata per la gestione dei pool di computazione, dello storage e delle risorse di rete attraverso CLI (command line interface o interfaccia a riga di comando) o interfaccia web. Il sistema operativo al quale si appoggia OpenStack è Linux con le sue numerose varianti (RHEL di RedHat, SUSE, Ubuntu etc.).
Come infrastruttura, OpenStack consente di creare degli ambienti nei quali è possibile variare in tempo reale le risorse allocate, che non restano quindi limitate ad una singola location: Big Data, servizi web in generale, NFV (Network Function Virtualization) per provider sono alcuni degli ambiti in cui viene impiegata la piattaforma opensource.
Componenti chiave di OpenStack e relative funzionalità
La piattaforma si aggiorna due volte all’anno: ciascuna release non è indicata da un numero, bensì da un nome specifico (es: la prima versione del 2016 sarà Mitaka). I componenti chiave dell’infrastruttura riguardano i processi computazionali, lo storage ed il networking e sono quindi definibili come il “cuore” del progetto:
- Computazione
Nova: mette a disposizione VM (macchine virtuali) in tempo reale (on demand).
- Storage
Swift: mette a disposizione un sistema di storage scalabile che supporta l’object storage (una specifica architettura storage che gestisce i dati come “oggetti”)
- Networking
Neutron: mette a disposizone una serie di API, plugin e software di autorizzazione ed autenticazione per l’orchestrazione e l’interoperabilità di dispositivi di rete in ambienti IaaS.
I restanti componenti sono collocabili invece nella categoria “shared services” della quale parleremo nella prossima puntata.