This post is also available in: Inglese

Reading Time: 9 minutes

Ravello Systems (nome curioso che fa pensare al paese campano e magari deriva proprio da lì) è un’azienda israeliana-americana nata nel 2011 con un’idea apperentemente folle di rivoluzionare il public cloud, almeno per quanto riguarda quello di tipo IaaS (idea valutata non così folle dagli investitori che hanno già finanziato in 3 diverse tornate).

Ravello Smart Labs è un ambiente di public cloud IaaS che permette di eseguire VM in ambienti VMware o KVM per finalità di sviluppo, test, training o demo… il tutto in ambiente nested (ossia un ambiente virtualizzato dentro un altro ambiente virtualizzato).

Infatti Ravello, a sua volta, utilizza le piattaforme IaaS di AWS e Google come “hardware” sul quale creare la sua piattaforma, permettendo quindi sfruttare servizi e datacenter di questi fornitori di servizi e di fornire pure servizi aggiuntivi, il tutto con costi ragionevolmente contenuti e grande flessibilità.

Inoltre, rispetto a quanto offerto da AWS o Google, la gestione di questo IaaS è tutta orientata attorno al concetto di “applications” (che nel mondo VMware è praticamente il concetto di vApp), ossia un raggruppamento di VM con alcuni servizi comuni, come ad esempio la rete di interconnessione.

L’interfaccia di gestione di Ravello è decisamente semplice (anzi si potrebbe quasi dire spartana dato che ha pochi sfronzoli) ma efficace, visto che fornisce la maggior parte delle funzionalità richieste per un servizi cloud di tipo IaaS.

Ravello-UI

Molto potente la parte di design visuale delle VM che compongono la application (tramite la canvas area) con tanto di possibilità di raggruppare le varie VM, con rettangoli colorati che svolgono non solo una funzione estetica, ma anche funzionale visto che ogni gruppo può essere accesso o spento in modo coordinato. Ma anche la parte di design visuale della rete è molto potente con strumenti come firewall, NAT, DHCP Server, DNS relay, utili per crearsi e gestirsi i servizi richiesti.

La gestione dei “template” la si ha tramite la library che è il vero e proprio cuore per tutti gli oggetti non in esecuzione… di fatto è la parte di gestione degli oggetti di storage, come le immagini (sia intese come immagini di VM, che ISO di CD e DVD). Non solo… una volta composta l’application con le varie VM, si può scegliere di salvare o i singoli dischi virtuali o le singole VM o l’intera application nella parte di library o sotto forma di image (per i dischi virtuali), VM (concettualmente dei template pronti all’uso) o persino dei blueprint, dei veri e propri oggetti che  possono essere usati come snapshot o template delle vostre application.

Ma l’aspetto più potente in assoluto della library è la possibilità di condividere blueprint, VM o image (manca per ora una vera e propria gestione di team o gruppi ma immagino verrà presto aggiunta) permettendo così di usufruire di oggetti già pronti all’uso, con tanto magari di preconfigurazione. Partendo da uno di questi è possibile studiarlo e magari migliorarlo e ricondividerlo! Potrebbe diventare un potente strumento di collaboration di infrastrutture.

L’application invece è, come già detto, una o più VM costruite partendo da oggetti della library che può essere istanziata ed eseguita un datacenter a vostra scelta (tra quelli usati da Ravello). Oppure, ancora meglio, potete semplicemente scegliere di ottimizzarla per i costi o per le prestazioni e a tutto il resto ci penserà poi Ravello.

ISO e immagini di dischi virtuali possono essere importanti usando uno strumento apposito. Ma con lo stesso è possibile importare anche delle VM o sotto forma di OVA/OVF, oppure direttamente da un ambiente vSphere, caricate su Ravello e poi essere eseguite as-is senza alcuna modifica! Questo grazie all’ambiente di virtualizzazione nested che permette di eseguire VM pensate per vSphere o KVM direttamente su VM di Amazon o Google!

Bisogna risalire al background delle persone di Ravello per capire come questo sia possibile. Del team che compone l’azienda, molti hanno contribuito alla progettazione e all’ascesa di KVM (qualcuno si ricorda ancora dell’azienda israeliana Qumranet prima che venisse inglobata da RedHat?). Le stesse persone ora in Ravello hanno realizzato HVX, una piattaforma di virtualizzazione in grado di funzionare su un qualunque cloud IaaS (anche se per ora è limitato a Amazon AWS e Google Compute Engine) ed in grado di eseguire nativamente VM VMware o KVM.

Di fatto HVM è composto da queste tre componenti tecnologiche:

Il tutto gestito da un management layer (che fornisce sia un’interfaccia web oriented, ma anche delle API per l’automazione), il tutto sotto forma di soluzione SaaS. Ravello-ArchitectureQuesta piattaforma di virtualizzazione nested, inoltre, supporta anche le istruzioni Intel VT virtualizzate… Cosa vuol dire? Che non solo potete eseguire nativamente VM VMware o KVM, ma potete anche eseguire hypervisor nested (per ora solo ESXi)… il tutto su Google o Amazon!

Per maggiori informazioni rimando all’annuncio ufficiale (in inglese): VMware ESXi on AWS or Google Cloud – Public Beta.

Questa funzione che era in beta privata da un po’ di tempo è ora stata annunciata pubblicamente ed è decisamente una grande notizia visto che ambienti lab o demo potrebbero proprio richiedere ambienti di virtualizzazione completi.

Ovviamente il tutto si paga in termini di prestazioni e non ci si deve aspettare chissà cosa. Per assurdo le prestazioni, sia nel caso di VM proveninenti da VMware, che di interi ESXi virtualizzati (è possibile eseguire anche ESXi 6.0), sono più che accettabili. Del resto il target di questa soluzione non prevede sistemi in produzione o disaster recovery o altre casistemiche business critical.

Per quanto riguarda la parte di rete è sicuramente ricca di strumenti e funzionalità (DHCP, DNS, firewall, NAT, routing), ma potrebbe essere migliorata aggiungendo funzionalità di connettività migliori verso l’esterno o magari funzioni di VPN native o di supporto direttto a VXLAN.

Lo stoge invece è già molto ricco ed è impressionante come si riesca ad astrarre funzionalità di storage relativamente differenti e trasformarle in uno storage a blocchi per l’utilizzo normale delle varie VM, con tanto di funzioni di snapshot, caching e deduplica.

Certo, anche in questo caso ci sono possibili migliorie, come ad esempio la possibilità di avere un accesso nativo a livello file (per avere datastore condivisi o semplicemente per condividere file). Questo in realtà è risolvibile creando una propria VM che svolga la funzionalità di file server.

Più interessante ed utile per i lab potrebbe essere invece una funzione per condividere live un’immagine tra VM, in modo da creare dischi condivisi per un cluster di VM. Ad esempio per VMware ESXi sarebbe un modo fantastico e veloce per crearsi uno storage condiviso.

Dal punto di vista dei lab e delle demo, invece è veramente utilissima la funzione di timer per decidere la “vita” di un’application: scaduto il tempo questa sarà spenta (ossia saranno spente tutte le VM che la compongono), ma non viene cancellata. Rimane disponibile per essere istanziata ancora in un secondo tempo. Il vantaggio è che con questo modo non rischiate di spendere cifre eccessive se vi dimenticate qualcosa in esecuzione (lo spazio di memorizzazione statico costa talmente poco che può non essere in grosso problema).

A proposito di costi… qualcuno potrebbe chiedersi chi deve pagare Amazon o Google… ci pensa Ravello… voi comprate un servizio da quest’ultimo e non vedete di costi reali sui cloud provider (ed in fondo manco vi interessano). Potete scegliere se ottimizzare la vostra applicazione per i costi, in questo caso Ravello cercherà il meglio possibile. Al momento le scelte possibili sono limitate, ma al crescere dei cloud supportati questo potrebbe persino diventare un potente strumento di cloud broker.

A titolo di curiosità, quando avevo parlato con i responsabilit tecnici del prodotto, avevo chiesto come mai solo Amazon e Google e non anche Microsoft Azure e/o VMware vCloud Air… Fermo restando che non escludono in futuro di aggiungere altri cloud provider, mi aspettavo che la risposta fosse legata al prezzo. Ma quanto pare la motivazione di fondo (che magari non esclude anche un discorso economico) pare sia legata alla maturità delle API: dai loro test solo Amazon e Googe avevano API robuste e scalabili, che potevano reggere centinaia e migliaia di chiamate in poco tempo e rispondere sempre in modo predicibile. Questo non vuol dire che Amazon o vCloud non siano stabili o maturi, ma evidentemente l’implementazione di Google e Amazon per quanto riguarda le API è (per ora) un passo avanti.

Il mio consiglio è di provarlo. Richiedere la trial impiega pochissimo tempo e si è subito operativi, certo, con un budget di risorse limitate, ma sufficiente per fare qualche test e vedere l’ambiente. E c’è da sperare che la parte di community attorno a questo prodotto possa crescere per migliorare i blueprint disponibili pubblicamente, a quel punto diventerebbe uno strumento molto potente per crearsi in pochi minuti un lab dedicato sul qualche “giocare”.

Considerando che è possibile creare VM con ESXi 5.x o persino il 6.0 gli unici limiti sono l’immaginazione e il portafoglio (ma ogni application ha ben chiaro quale è il costo orario). Volete ad esempio provare il nuovo vMotion cross-vCenter ma non avete 250Mbs di banda geografica (in Italia in effetti non è che sia poi così comune)? Con questo strumento è possibile crearsi due application in due datacenter diversi e sbizzarrirsi con le prove!

Share

Virtualization, Cloud and Storage Architect. Tech Field delegate. VMUG IT Co-Founder and board member. VMware VMTN Moderator and vExpert 2010-24. Dell TechCenter Rockstar 2014-15. Microsoft MVP 2014-16. Veeam Vanguard 2015-23. Nutanix NTC 2014-20. Several certifications including: VCDX-DCV, VCP-DCV/DT/Cloud, VCAP-DCA/DCD/CIA/CID/DTA/DTD, MCSA, MCSE, MCITP, CCA, NPP.