Introduzione ad OpenStack – 2

OpenStack

Nel post di ieri abbiamo inziato a parlare di OpenStack e dei componenti alla base dell’apprezzata piattaforma cloud opensource: Nova (computazione e VM), Swift (storage), Neutron (networking). Tra gli shared services, accennando ai quali avevamo concluso la prima puntata di questo breve ciclo, ricordiamo invece:

  • Glancerepository e catalogo per le immagini degli hard disk, delle “copie virtuali” che possono essere usate come template quando si effettua il deploy di una nuova istanza.
  • Keystone: si occupa di gestire le procedure di autenticazione ed autorizzazione ed è costituito essenzialmente da una lista, più o meno lunga, di utenti con i relativi servizi ai quali possono accedere nell’ambiente cloud.
  • Horizon: un’interfaccia modulare e via web per i servizi OpenStack (classica dashboard). Si tratta probabilmente di uno dei pochi componenti “visibili” dell’infrastruttura. Sebbene ciascun servizio sia accessibile via API, la dashboard offre un’utile panoramica sullo stato dell’infrastruttura e dei servizi permettendo, all’occorrenza, di intervenire.
  • Magnum: per la gestione ed il deploy dei container, ulteriore alternativa ai classici hypervisor.

Differenze rispetto agli hypervisor e gestione dei container

OpenStack offre agli utilizzatori un’infrastruttura self-service ed “elastica” che si presta a gestire insiemi di risorse (pool) computazionali, storage e networking. A differenza dei classici strumenti di virtualizzazione, che in sintesi astraggono le risorse dall’hardware fisico, OpenStack può gestire sia risorse fisiche che virtuali. 

Con l’implementazione di Magnum nella piattaforma, che ricordiamo essere una sorta di “cantiere aperto” al quale fanno riferimento decine e decine di progetti, i container sono entrati ufficialmente nell’ecosistema OpenStack. Appositi COE (Conteiner Orchestration Engine) consentono il deploy di vari container Docker come una singola unità. Attualmente i COE supportati sono Docker Swarm, Kubernetes ed Apache Mesos. Uno degli utilizzi più comuni della tecnologia rilanciata dalla startup Docker riguarda la suddivisione di un’applicazione in più parti (micro-servizi) implementati come container, al fine di ottenere una maggiore scalabilità ed high availability.

In chiusura è possibile affermare che OpenStack, sebbene non rappresenti la soluzione universale per ogni task nel cloud, è in grado di offrire un’infrastruttura ricca e facilmente adattabile alle necessità del cloud architect di turno: una sorta di set costruzioni lego da riadattare in base al deploy da effettuare, con la massima libertà per quanto riguarda sia l’aggiunta che l’eliminazione di risorse e funzionalità.