Incontriamo Salvatore Vella, Vice President Global di IBM Bluemix, a Milano, in occasione di un evento destinato alla comunità degli sviluppatori. Il manager è in Italia per far capire a studenti del Politecnico di Milano e “smanettoni” giunti da tutta Italia quali sono i benefici dello sviluppo delle applicazioni e dei microservizi cloud basati sulla piattaforma Big Blue. «Bluemix, oggi, è una soluzione end-to-end per gestire nella nuvola tutta l’infrastruttura, dalle attività computazionali alla sicurezza, dal networking allo storage, con la garanzia di un’implementazione rapida. La velocità di deployment è assicurata dalla foundation basata su DevOps che, oggi, rappresenta lo standard de facto per la costruzione di microservizi applicativi aperti, piattaforme service-rich e componenti software di qualità facilmente ricombinabili e riassemblabili. Si tratta di quello che io amo definire l’Approccio Ikea. Noi forniamo alla comunità degli sviluppatori tutto quanto serve per dar vita, in pochissimo tempo, a nuovi software usufruibili e gestibili nella nuvola facilmente scalabili».
Bluemix è un’implementazione della Open Cloud Architecture di IBM basata su Cloud Foundry, un progetto di Platform-as-a-Service (PaaS) opensource che permette di creare con facilità, fare il deployment e gestire applicazioni nella nuvola. Il risultato è un cloud flessibile e liquido, quindi, che si adatta alle singole, specifiche esigenze legate ai singoli, specifici carichi di lavoro. «La differenza tra lo sviluppo tradizionale e quello che si fonda su DevOps è essenzialmente legato alla velocità – spiega il manager –. La nostra community di sviluppatori non dovrà preoccuparsi degli aspetti legati all’installazione, interamente a carico nostro, quindi l’azienda sarà sollevata da tutte queste incombenze. Lo stesso avverrà a livello di database o di funzionalità di monitoraggio. Se per gestire le attività di coding e i task prima ci voleva un paio di mesi, oggi si parla di qualche giorno». Anche il deployment delle soluzioni è decisamente ridotto, perché fa leva su una pipeline integrata che, come dice Vella è «built into the platform», costruita sulla piattaforma. Ciò significa che l’integrazione con i database in uso e i sistemi di backend risulta facilitata, grazie a un sistema di API ampiamente testate e condivise con l’ampia comunità degli sviluppatori Bluemix.
Business analytics e cognitive computing alla portata di tutti
IBM Bluemix, chiarisce Vella, ha un ampio ventaglio di API aperte e condivise, che vanno dal linguaggio
naturale alla conversation – per il supporto agli help desk, le attività di concierge e il riconoscimento dei dati destrutturati (come fotografie e video all’interno dei documenti medici) – dallo speech-to-text al supporto semantico. «Due classi di API sono per noi fondamentali – spiega il manager IBM – quelle di Watson, la nostra piattaforma di cognitive computing, e quelle legata alle business analytics». Degne di nota sono, poi, secondo il manager, le API della sfera “emozionale”, come i personality insights, che permettono di comprendere lo stato d’animo di chi ha scritto il testo di una e-mail o un post all’interno di un blog, per comprendere meglio qual è il tono del messaggio. Questa funzionalità si rivela particolarmente utile, chiarisce Vella, per esempio nelle assicurazioni, perché può far capire qual è il grado di risk taking dei soggetti che sottoscrivono le polizze e adattare il premio di conseguenza.
«Il cloud non è il viaggio ma la meta»
Altro aspetto fondamentale che “fa gola” ad aziende e sviluppatori è quello che Vella definisce la “choice with consistency”, che permette alle aziende che si affidano a Bluemix di creare ambienti cloud realmente a misura delle proprie esigenze. Gli ambienti cloud moderni, infatti, sono un mix che supporta un ampio spettro di possibili implementazioni ibride caratterizzate da diversi aspetti di cloud infrastrutturale (IaaS, Infrastructure-as-a-Service) e PaaS (Platform-as-a-Service) integrati, accessibili da una pluralità di entry point diversi. È, questa, la “choice with consistency”, che è un modo di dire che la nuvola ibrida non è un passaggio, una transizione, ma la destinazione finale del cloud journey di un’organizzazione: «I nostri clienti, in futuro, avranno alcune applicazioni che ha senso mantenere on premise e altre che ha senso spostare e gestire nel cloud pubblico e questa decisione potrà essere rivista e variata in qualsiasi momento. Un servizio potrà essere lanciato nella nuvola pubblica e, una volta a regime, si potrà optare per un cloud pubblico dedicato, oppure fare il contrario. La libertà di scelta che offriamo è la garanzia che il cloud è la risposta giusta anche per quelle aziende che hanno esigenze particolari, come i grandi gruppi bancari o assicurativi. Sarà possibile far evolvere i sistemi legacy offrendo una facile integrazione con il back end e i database in uso abbinata a un’implementazione locale, federata, e a un provisioning locale».
Bare metal, VM e container: quali vantaggi
Molte organizzazioni negli ultimi mesi hanno potato per una strategia “cloud first”, che mette la nuvola, anziché il tradizionale on premise, come scelta d’elezione per la delivery delle nuove applicazioni. Nelle applicazioni produttive non esiste un approccio universalmente valido (Vella lo definisce «one size fits all»). Ecco perché il manager sottolinea a più riprese il fatto che IBM, per sua scelta, non ha sposato a priori un approccio particolare di deployment dei servizi cloud.
Tre sono le opzioni più popolari:
· Ambienti “bare metal”: le applicazioni sono installate, girano e vengono richiamate da una foundation rappresentata da un’infrastruttura cloud dedicata e da piattaforme OS ad hoc. Nell’approccio bare metal si utilizzano hardware specifico e configurazioni del sistema operativo dedicate. Questi ambienti possono essere implementati in una molteplicità di combinazioni di hardware, sistemi operativi, middleware e applicazioni diverse, tutte ottimizzate per funzionare al meglio con quelle specifiche risorse hardware dedicate.
· Virtual Machine (VM): le applicazioni sono installate e girano sotto il controllo di un hypervisor (un software di monitoraggio delle macchine virtuali), che astrae l’ambiente hardware dalle sue componenti fisiche (come i dischi rigidi) e include copie dedicate del sistema operativo e di tutti gli altri software necessari per far funzionare le applicazioni in questione. Le macchine virtuali condividono tra loro le stesse risorse hardware. Le applicazioni virtualizzate (VM based) supportano ambienti legati a specifiche combinazioni ottimizzate di sistemi operativi, hypervisor e hardware. L’azienda avrà la flessibilità di far girare diversi livelli di sistemi operativi o kernel su diverse macchine virtuali, sullo stesso hardware fisico.
· Container: in questo caso solo le parti essenziali dell’applicazione (i servizi cloud) sono inclusi nel container. Diversi container potranno girare sulla stessa istanza di un sistema operativo – Linux, Microsoft o Windows. I container sono usati in maniera diffusa all’interno di diversi progetti PaaS (Platform-as-a-Service) di nuova generazione come in IBM Bluemix, che impiega al suo interno il motore di runtime open source Docker.
I casi d’uso
Il deployment “bare metal” rappresenta la scelta ideale per i software che richiedono l’accesso a specifici
ambienti operativi e funzionalità hardware – come le applicazioni ad alta densità di input/output (I/O intensive), o come circuiti FPGA, in cui le funzionalità sono programmabili via software, o per le applicazioni di ottimizzazione della grafica. Le macchine virtuali (VM) permettono invece ai sistemi IT di condividere le risorse in modo più efficiente rispetto alle opzioni con hardware dedicato o al bare metal, pur mantenendo un buon livello di isolamento tra i diversi sistemi operativi. Si tratta della scelta ideale per ottimizzare le applicazioni cloud in modo che siano sufficientemente “liquide” per adattarsi a variazioni anche piuttosto repentine nella domanda di servizi e risorse IT, ma anche economicamente sostenibili. Questo approccio si rivela quello più spesso utilizzato per “reinventare in chiave cloud” le applicazioni software monolitiche del passato delle aziende, trasformandole in appliance virtuali che girano su una macchina virtuale. Infine, i container sono più semplici da gestire e rapidi da implementare rispetto alle macchine virtuali e richiedono inoltre un apporto ridotto in termini di risorse cloud e computazionali. Si tratta della scelta ideale per gli ambienti cloud ad alta densità applicativa, con microservizi pensati per avere una vita utile piuttosto breve. Molti sviluppatori di micro servizi cloud preferiscono affidarsi ai container come standard privilegiato per lo sviluppo di ambienti DevOps di nuova generazione altamente scalabili.
«Il nostro obiettivo – conclude Vella – è di supportare in tutti e tre i casi la comunità degli sviluppatori. Abbiamo sandbox per testare in ambienti protetti le applicazioni, abbiamo 16 boilerplates (container per applicazioni-tipo con il loro motore runtime e la dotazione di tutti i servizi per uno specifico dominio applicativo – ndr) che permettono di essere operativi con nuovi microservizi Java o IoT in pochissimo tempo. Abbiamo oltre 140 microservizi già preconfigurati e facilmente ricombinabili, che aiutano gli sviluppatori che operano in particolare sulle applicazioni di intelligenza artificiale e sul linguaggio naturale… Il nostro è un approccio simile a quello dell’Ikea. Noi ti forniamo tutti i microservizi e le istruzioni per assemblarli, il supporto di una community particolarmente attiva e volenterosa e tu mixi questi elementi come vuoi, per creare in pochissimo tempo i servizi che ti interessano».