Recensione: IBM Bluemix aumenta il volume di Cloud Foundry

Quando ho esaminato il Cloud Foundry PaaS (platform as a service) la scorsa estate, mi sono concentrato sulle implementazioni open source, Pivotal e ActiveState. In questa recensione, esaminerò IBM Bluemix, un PaaS multi-tenant ospitato su SoftLayer, che combina Cloud Foundry con un'interfaccia utente online migliorata e servizi di IBM e di terze parti.

I servizi più distintivi su Bluemix sono basati su Watson, un sistema cognitivo che fornisce elaborazione del linguaggio naturale, generazione e valutazione di ipotesi e apprendimento dinamico. Molti degli altri servizi e integrazioni in Bluemix colmano le lacune nella versione open source di Cloud Foundry, ad esempio, scalabilità automatica, dispositivi mobili, big data e servizi di integrazione aziendale.

Tieni presente che le lacune sono state colmate senza biforcare il codice Cloud Foundry. In effetti, Bala Rajaraman, CTO di Bluemix, mi ha detto apertamente: "Non faremo il fork". Il programma da riga di comando per la configurazione dell'applicazione cf che ho installato per Cloud Foundry e Pivotal CF open source è lo stesso di Bluemix. Il programma da riga di comando di configurazione bosh PaaS che ho installato per il Cloud Foundry open source è lo stesso di quello che gli ingegneri Bluemix usano internamente, ma gli utenti di Bluemix non avranno mai bisogno di imparare bosh, poiché l'intenzione di IBM con Bluemix è di proteggere gli utenti dall'amministrazione PaaS concentrarsi sul servizio e consentire agli utenti di creare semplicemente app.

Approvo questo atteggiamento. In qualità di sviluppatore, ho trovato difficile imparare a usare e ho sentito che il lavoro pesante nella configurazione di un PaaS dovrebbe essere lasciato alle operazioni. Per me, la promessa di PaaS e devops è la configurazione e la gestione dell'infrastruttura a basso attrito per aiutare a realizzare e distribuire il software. Fare in modo che uno sviluppatore spenda una parte significativa del suo tempo sul cruft operativo necessario per impostare un PaaS sconfigge lo scopo fondamentale di avere un PaaS. Allo stesso tempo, mi piace la possibilità di eseguire privatamente una singola VM "microcloud" PaaS su un laptop per esperimenti, motivo per cui vedo anche il valore di ActiveState Stackato e delle immagini scaricabili di VM PaaS.

Poiché Bluemix è basato su Cloud Foundry non modificato, condivide tutta l'architettura di Cloud Foundry: Droplet, DEA (Droplet Execution Agents), buildpack e così via, in esecuzione su una macchina virtuale. La parte di Cloud Foundry è mostrata nel riquadro azzurro della VM in basso a sinistra del diagramma dell'architettura di seguito (Figura 1).

Bluemix condivide più dell'architettura Cloud Foundry: condivide i buildpack e i servizi di Cloud Foundry disponibili sulle altre implementazioni di Cloud Foundry, aggiungendone alcuni propri. Suddivideremo tutto questo in boilerplates, noto altrove come avvio rapido o app store; runtime, noto altrove come buildpacks; e servizi. Bluemix include servizi per Watson, mobile, devops, Web e applicazioni, integrazione, gestione dei dati, big data, sicurezza, analisi aziendale e IoT (Internet of things). Li esaminerò tutti di seguito.

Diverse parti possono supportare i servizi Bluemix: IBM, una comunità o una società di terze parti. I servizi sperimentali sono gratuiti, instabili e soggetti a modifiche che potrebbero non essere compatibili con le versioni precedenti. Pertanto, non sono consigliati per la produzione. I servizi beta sono gratuiti, ma non sono stati ampiamente testati in natura. Tutti i servizi Watson sono attualmente classificati come beta.

Bluemix boilerplates

Come puoi vedere nella Figura 2, Bluemix attualmente offre 13 diversi "boilerplate" o pacchetti di avvio rapido. Sebbene la maggior parte di questi abbia un sapore IBM, non è necessariamente un male.

Alcuni dei boilerplates offerti potrebbero richiedere alcune spiegazioni. Ad esempio, Internet of Things Foundation Starter fornisce un livello dati JSON NoSQL Cloudant (compatibile con CouchDB) e un'applicazione Node-RED ospitata su un SDK per il runtime Node.js. Node-RED è uno strumento per collegare tra loro dispositivi hardware, API e servizi online. Lo starter Node-RED è simile, ma supportato dalla community.

Java Cache Web Starter combina Liberty per Java, un profilo WebSphere leggero, un servizio DataCache e un servizio di monitoraggio e analisi. A livello gratuito, DataCache è solo 50 MB e il servizio di monitoraggio e analisi non dispone del monitoraggio e della diagnostica delle prestazioni più approfonditi.

Il boilerplate Mobile Cloud combina Node.js, Mobile Application Security, messaggistica IBM Push e Mobile Data (con un back-end Cloudant multi-tenant). Include SDK per Android, iOS e JavaScript. A livello gratuito, è limitato a 2 GB di spazio di archiviazione, 1 milione di notifiche push al mese e 375 GB di ore al mese. MobileFirst Services Starter è simile, ma include notifiche push e sicurezza specifiche per iOS 8.

I tre starter Web User Modeling accoppiano il servizio Watson User Modeling con un runtime e un codice di esempio. Watson User Modeling utilizza l'analisi linguistica per estrarre un insieme di personalità e tratti sociali dal modo in cui una persona comunica, con l'obiettivo di personalizzare le comunicazioni.

Vaadin è un framework per applicazioni Web open source per applicazioni Internet avanzate. Lo starter Vaadin esegue il framework in Liberty per Java e utilizza un database DB2.

Runtime Bluemix, alias buildpack

La selezione di runtime offerti su Bluemix include i sette buildpack indicati nella Figura 3, più qualsiasi altro buildpack approvato per Cloud Foundry. Sei dei tempi di esecuzione mostrati dovrebbero esserti familiari; il settimo, Sinatra, è un DSL (linguaggio specifico del dominio) per creare applicazioni Web in Ruby rapidamente e con il minimo sforzo.

Il buildpack PHP supporta PHP 5.4, 5.5 e 5.6; Nginx 1.5, 1.6 e 1.7; e Apache HTTPD 2.4. La versione di Python supportata nel buildpack PHP è 2.6.6, che non è realmente attuale. Il buildpack di Python, d'altra parte, supporta una dozzina di versioni di Pypy, oltre a un paio di dozzine di versioni ciascuna di Python 2 e Python 3.

I buildpack della community per Cloud Foundry includono i runtime Clojure, Haskell, Mono ed Erlang. Praticamente l'unico linguaggio popolare del server delle applicazioni compatibile con Linux che non ho trovato supportato su Cloud Foundry è Perl.

Servizi Watson

I sette servizi Watson attualmente offerti in Bluemix (Figura 4) sono Espansione del concetto, Identificazione della lingua, Traduzione automatica, Risonanza dei messaggi, Domanda e risposta, Estrazione delle relazioni e Modellazione dell'utente. Tutti sono ancora in beta. Ho descritto in precedenza la modellazione utente. Coprirò il resto qui.

Concept Expansion analizza il testo e ne interpreta il significato in base all'utilizzo in altri contesti simili. Ad esempio, potrebbe interpretare "La Grande Mela" nel senso di "New York City". Può essere utilizzato per creare un dizionario di parole e concetti correlati in modo che eufemismi, colloquialismi o frasi altrimenti poco chiare possano essere meglio compresi e analizzati. Questo servizio beta di Bluemix gratuito ha un set di dati e un dominio predefiniti, quindi è inutile per la produzione.

Il servizio di identificazione della lingua rileva la lingua in cui è scritto il testo. Questo aiuta a informare i passaggi successivi come la traduzione, la voce in testo o l'analisi diretta. Il servizio può essere utilizzato in tandem con il servizio di traduzione automatica. Oggi il servizio può identificare 25 lingue.

Il servizio di traduzione automatica converte l'input di testo in una lingua in una lingua di destinazione per l'utente. La traduzione è disponibile in inglese, portoghese brasiliano, spagnolo, francese e arabo.

Il servizio Message Resonance analizza la bozza del contenuto e valuta la probabilità che venga ricevuto da uno specifico pubblico di destinazione. Questa analisi si basa sui contenuti scritti dallo stesso pubblico di destinazione, come i fan di una specifica squadra sportiva o i nuovi genitori. Sebbene le versioni future consentiranno agli utenti di fornire i propri dati della comunità, oggi l'analisi può essere effettuata solo contro le persone attive nel cloud computing o nelle discussioni sul cloud computing; questo rende il servizio beta inutile per la produzione in domini diversi dal cloud computing.

Il servizio Domande e risposte interpreta e risponde alle domande degli utenti direttamente sulla base di fonti di dati primarie (brochure, pagine Web, manuali, record) che sono state selezionate e raccolte in un corpo di dati o "corpus". Il servizio restituisce le risposte dei candidati con i livelli di fiducia associati e i collegamenti alle prove di supporto. I dati attuali su Bluemix si concentrano sui settori dei viaggi e dell'assistenza sanitaria, rendendoli inutili per altri domini.

L'estrazione delle relazioni analizza le frasi nei loro vari componenti e rileva le relazioni tra i componenti. Può elaborare nuovi termini (come i nomi di persone in un feed di notizie) che non ha mai analizzato prima attraverso l'analisi contestuale. I componenti della frase includono parti del discorso (sostantivo, verbo, aggettivo, congiunzione) e funzioni (soggetti, oggetti, predicati). Il servizio mappa le relazioni tra i componenti in modo che gli utenti oi motori di analisi possano comprendere più facilmente il significato di singole frasi e documenti.

Il servizio beta è ottimizzato per articoli di notizie o altro testo relativo a notizie in inglese o spagnolo, tramite API separate; non puoi usarlo per un dominio arbitrario e aspettarti di ottenere buone risposte. Come puoi vedere nella Figura 5, non sempre restituisce buone risposte anche per gli articoli di notizie; presumibilmente, una volta che avrai fornito il tuo set di addestramento, sarai in grado di adattare il servizio al tuo dominio di interesse.

Nel complesso, i servizi beta di Watson su Bluemix sembrano allettanti, ma non sono ancora pronti per la prima serata. Questo è coerente con il modo in cui sono stati presentati.

Servizi mobili e applicativi

Abbiamo già discusso di sei degli otto servizi mobili disponibili su Bluemix. Un altro è Mobile Quality Assurance, che consente il test delle app mobili, la convalida degli utenti e un feedback di qualità ottimizzato con l'analisi del sentiment; distribuzione di build over-the-air; segnalazione automatica degli arresti anomali; e segnalazione di bug in-app e feedback degli utenti. E c'è Twilio, un servizio vocale, di messaggistica e VoIP di terze parti.

Ci sono 19 servizi Web e applicativi in ​​Bluemix. Sono troppi per discuterne qui, ma un paio di questi meritano di essere menzionati. RapidApps è un servizio beta con funzionalità limitate che afferma di consentire di "sviluppare rapidamente app Web e mobili incentrate sui dati utilizzando strumenti visivi, senza codifica". RapidApps dovrebbe essere rivolto agli analisti aziendali; sembra essere tutt'altro che cotto a questo punto, ma potrebbe essere interessante in futuro.

Il servizio Business Rules accetta le regole del linguaggio naturale che crei in un Rule Designer e le esegue quando viene richiamato dalla tua app. Anche questo sembra essere rivolto agli analisti aziendali, ma a questo punto è in condizioni migliori rispetto a RapidApps.

Servizi Devops

Gli otto servizi devops su BlueMix includono cinque di IBM e tre di terze parti. Il servizio Track and Plan consente di creare storie, attività e difetti per descrivere e tenere traccia del lavoro del progetto, nonché utilizzare strumenti di pianificazione agili per il backlog del prodotto, i rilasci e gli sprint. Questo servizio essenzialmente fornisce Rational Team Concert per il tuo repository Git o Jazz.

Il servizio Delivery Pipeline consente di automatizzare build e distribuzioni, eseguire test, configurare script di build e automatizzare l'esecuzione di unit test. Mi piace il modo in cui questi due servizi integrano l'interfaccia Jazz con Bluemix.

Abbiamo discusso del servizio di monitoraggio e analisi nel contesto dello starter Web Java Cache. Il componente aggiuntivo Auto-Scaling for Bluemix consente di aumentare o diminuire automaticamente la capacità di elaborazione dell'applicazione. L'App User Registry consente di proteggere la tua applicazione di risorse o di sviluppare la tua applicazione client basata su OAuth 2.0. I tre servizi devops di terze parti sono BlazeMeter, Load Impact e New Relic.

Altri servizi

Ci sono solo due servizi di integrazione in Bluemix, ma sono entrambi interessanti. Cloud Integration consente agli utenti di integrare i servizi cloud con i sistemi di registrazione aziendali; espone i sistemi di back-end come API REST da utilizzare nelle applicazioni. Il servizio contenitori sperimentale ti consente di eseguire contenitori Docker su Bluemix, che potenzialmente apre Bluemix quasi tutto.

Dei 10 servizi di gestione dei dati su Bluemix, due sono per MySQL (uno open source, uno a tolleranza di errore), due per Postgres (idem), tre per database NoSQL e uno per DB2. I restanti due servizi di gestione dei dati sono Object Storage (beta, basato su OpenStack Swift) e DataWorks; quest'ultimo include API che caricano i dati, puliscono gli indirizzi postali degli Stati Uniti e classificano i dati.

Scorecard Facilità di utilizzo (20%) Ampiezza del supporto (20%) Gestione (20%) Documentazione (15%) Installazione e configurazione (15%) Valore (10%) Punteggio totale
IBM Bluemix 9 9 9 8 9 9 8.9