OpenStack e Virtualizzazione: principali differenze

OpenStack logo 2016

Sebbene Rackspace non disponga delle stesse quote di mercato AWS o di altre compagnie, resta un brand molto importante nel panorama IT. L’azienda è infatti legata alla nascita del progetto OpenStack, piattaforma cloud computing open source tra le più popolari e utilizzate al mondo.

Walter Bentley (Technical Marketing Engineer presso Rackspace) ha recentemente parlato  delle differenze tra l’apprezzata tecnologia della virtualizzazione ed OpenStack, sfatando alcuni miti circolanti intorno alla piattaforma ed elencando i casi di utilizzo più comuni. Vediamo nel dettaglio come ha articolato il post.

La prima parte dell’intervento introduce ai concetti base del discorso. La virtualizzazione viene descritta come una soluzione per partizionare un server fisico in numerosi server logici. Grazie a questo espediente è possibile eseguire simultaneamente più sistemi operativi in un singolo sistema. Ogni server logico è indipendente dal server fisico ed in grado di disporre del proprio OS ed applicazioni. Le principali qualità della virtualizzazione sono la ridondanza e l’alta disponibilità. Per quanto riguarda invece l’incremento di prestazioni, l’unico modo per ottenerle è intervenire sull’hardware del server fisico (CPU,RAM) in modo che l’hypervisor disponga di maggiori risorse. E’ per queste ragioni che si parla di scalabilità verticale (scaling up).

Con il cloud computing il “focus” passa dal consumo di risorse hardware al consumo di risorse condivise. OpenStack è come già detto la piattaforma di riferimento per progettare ambienti cloud privati e pubblici in cui le risorse sono disponibili su richiesta (on demand) e rapidamente ridimensionabili in base alle esigenze. Per approfondire ulteriormente i vantaggi del cloud potete consultare questo nostro precedente post. A fronte della maggiore flessibilità garantita dal cloud e da OpenStack, gli utilizzatori devono “pagare” il prezzo di una maggiore complessità generale dovuta anche alla relativa “novità” del progetto (nato nel 2011) per il quale non esiste una paragonabile quantità di materiale e conoscenze maturate come per la virtualizzazione – sulla scena da alcuni decenni ormai. Come sottolinea Bentley, devono essere gli stessi utilizzatori a dire alla piattaforma “cosa fare”. 

 

Casi di utilizzo

OpenStack non è un hypervisor ma un gestore di hypervisor. Solo raggiungendo un elevato grado di automazione dei processi, aggiunge, è possibile trarre il masso dei vantaggi offerti. Scegliere questa architettura, prosegue Walter, significa abbracciare la filosofia DevOps (per approfondire) che mira alla creazione di un ambiente in cui le operazioni di progettazione, test e rilascio del software avvengono in modo più affidabile e sicuro. A tutti coloro che nutrono ancora perplessità sul cloud o non sanno se OpenStack sia la soluzione adatta per il proprio business, l’ingegnere elenca una serie di ambiti in cui l’utilizzo della piattaforma cloud è consigliato (a patto di avere le conoscenze necessarie per progettarla e gestirla):

  • per l’esecuzione di una piattaforma ecommerce “customer facing” che necessità di scalabilità;
  • esecuzione di applicazioni distribuite multi-tier (workload);
  • esecuzione di strumenti di sviluppo open source come parte di una serie di processi che hanno l’obietivo di velocizzare/ottimizzare le fasi del “ciclo di vita” di un software, dal concept fino al deploy – continuous delivery pipeline;
  • per un approccio agile nello sviluppo di applicazioni;
  • per garantire scalabilità alle customer facing API (in base al carico di lavoro);
  • per effettuare la migrazione di vecchie applicazioni in una piattaforma cloud;
  • per il deploy di applicazioni greenfield nel corso di un processo di trasformazione del reparto IT.

OpenStack: alcuni miti da sfatare

Nella parte finale dell’intervento, Walter passa in rassegna alcuni luoghi comuni su OpenStack, molti dei quali fanno riferimento a funzionalità messe a disposizione da piattaforme di virutalizzazione – aggiunge.

  • OpenStack non supporta le macchine virtuali o la migrazione delle VM
    Risposta: project Nova offre gli strumenti per migrare o spostare istanze da un host. L’hypervisor che si consiglia di utilizzare è KVM. Tutte le operazioni sono gestite dal componente “Nova Scheduler” presente in Nova.
  • OpenStack non offre alcuna funzionalità per abilitare l’utilizzo equo delle risorse in un ambiente cloud
    Risposta: la piattaforma consente di effettuare la migrazione delle istanze ma non si tratta di una procedura automatica. Se non si desidera effettuarla manualmente bisogna lavorare sull’automazione dell’operazione. Le applicazioni pensate per essere eseguite nel cloud non sono inoltre interessate da eventuali perdite di nodi e/o istanze.
  • Tutte le soluzioni storage OpenStack non sono distribuite
    Risposta:
    il progetto Cinder consente di definire backend multipli per volumi block storage. Ogni punto di backend può puntare ad un dispositivo di storage condiviso o all’ephemeral storage locale (tipologia di storage che funge da supporto per lo storage persistente; all’ephemeral storage sono destinati dati per i quali non è richiesta la “persistenza”).
  • OpenStack non è in grado di monitorare lo stato dei componenti come un hypervisor
    Risposta: ogni componente è trattato come se fosse un servizio del quale la piattaforma conosce lo “stato di salute”. Nel caso in cui un’istanza o un nodo vada offline, OpenStack lo classifica come “non disponibile”. Le richieste saranno gestite da altre risorse.
  • OpenStack non offre alcune funzione per il recupero dei dati
    Risposta: in parte vero. I componenti Cinder e Swift permettono in ogni caso di integrare nella piattaforma varie periferiche esterne di storage. Per lo storage dei dati importanti non bisogna affidarsi all’ephemeral storage ma ad una soluzione storage condiviso (NetApp etc.) che garantisce elevata disponibilità.
  • La perdita di un nodo causa automaticamente il non funzionamento di un’applicazione (fail)
    Risposta: Lo scheduler Nova si occupa di gestire la distribuzione delle istanze tra i vari nodi, bilanciando le risorse disponibili. 
    Availability zonesServerGroupAntiAffinityFilter possono aiutare l’utente a raggiungere tale obiettivo.

Fonte: 1