Bilan: IBM Bluemix agrandit Cloud Foundry

Lorsque j'ai examiné le Cloud Foundry PaaS (plateforme en tant que service) l'été dernier, je me suis concentré sur les implémentations open source, Pivotal et ActiveState. Dans cette revue, je vais examiner IBM Bluemix, un PaaS multi-locataire hébergé sur SoftLayer, qui combine Cloud Foundry avec une interface utilisateur en ligne améliorée et des services d'IBM et de tiers.

Les services les plus distinctifs de Bluemix sont basés sur Watson, un système cognitif qui fournit le traitement du langage naturel, la génération et l'évaluation d'hypothèses et l'apprentissage dynamique. Plusieurs des autres services et intégrations de Bluemix comblent les lacunes de la version open source de Cloud Foundry - par exemple, l'autoscaling, les services mobiles, de big data et d'intégration d'entreprise.

Notez que les lacunes ont été comblées sans forcer le code Cloud Foundry. En fait, Bala Rajaraman, le CTO de Bluemix, m'a dit sans ambages: «Nous ne ferons pas de fourchette». Le programme de ligne de commande de configuration d'application cf que j'ai installé pour Cloud Foundry et Pivotal CF open source est le même que celui de Bluemix. Le programme de ligne de commande de configuration bosh PaaS que j'ai installé pour Cloud Foundry open source est le même que ce que les ingénieurs de Bluemix utilisent en interne - mais les utilisateurs de Bluemix n'auront jamais besoin d'apprendre bosh, car l'intention d'IBM avec Bluemix est de protéger les utilisateurs de l'administration PaaS, Concentrez-vous sur le service et permettez aux utilisateurs de créer simplement des applications.

J'approuve cette attitude. En tant que développeur, j'ai trouvé l'apprentissage bosh difficile, et j'ai senti que le gros du travail dans la configuration d'un PaaS devait être laissé aux opérations. Pour moi, la promesse du PaaS et des devops est une configuration et une gestion à faible friction de l'infrastructure afin de faciliter la construction et le déploiement de logiciels. Faire passer une partie importante de son temps à un développeur sur la cruauté opérationnelle nécessaire pour mettre en place un PaaS va à l'encontre de l'objectif fondamental d'avoir un PaaS. En même temps, j'aime la possibilité d'exécuter un PaaS «microcloud» à une seule VM en privé sur un ordinateur portable pour des expériences, c'est pourquoi je vois également la valeur d'ActiveState Stackato et des images de VM PaaS téléchargeables.

Étant donné que Bluemix est basé sur Cloud Foundry non modifié, il partage toute l'architecture de Cloud Foundry: Droplets, DEA (Droplet Execution Agents), buildpacks, etc., s'exécutant dans une machine virtuelle. La partie Cloud Foundry est affichée dans la case VM bleu clair en bas à gauche du diagramme d'architecture ci-dessous (Figure 1).

Bluemix partage plus que l'architecture Cloud Foundry: il partage les buildpacks et les services de Cloud Foundry disponibles sur les autres implémentations Cloud Foundry, tout en ajoutant certains des siens. Nous allons décomposer tout cela en passe-partout, connus ailleurs sous le nom de démarrage rapide ou de magasin d'applications; runtimes, connus ailleurs sous le nom de buildpacks; Et services. Bluemix comprend des services pour Watson, mobile, devops, Web et applications, intégration, gestion des données, big data, sécurité, analyse commerciale et IoT (Internet des objets). Je vais tous les examiner ci-dessous.

Diverses parties peuvent prendre en charge les services Bluemix: IBM, une communauté ou une société tierce. Les services expérimentaux sont gratuits, instables et sujets à des modifications qui peuvent ne pas être rétrocompatibles. Ainsi, ils ne sont pas recommandés pour la production. Les services bêta sont gratuits, mais n'ont pas été largement testés dans la nature. Tous les services Watson sont actuellement classés en version bêta.

Passe-partout Bluemix

Comme vous pouvez le voir sur la figure 2, Bluemix propose actuellement 13 «passe-partout» ou packages de démarrage rapide différents. Bien que la plupart d'entre eux aient une saveur IBM, ce n'est pas nécessairement mauvais.

Certains des passe-partout proposés peuvent nécessiter des explications. Par exemple, l'Internet of Things Foundation Starter fournit une couche de données NoSQL JSON Cloudant (compatible CouchDB) et une application Node-RED hébergée sur un SDK pour le runtime Node.js. Node-RED est un outil permettant de connecter des périphériques matériels, des API et des services en ligne. Le Node-RED Starter est similaire, mais pris en charge par la communauté.

Java Cache Web Starter combine Liberty pour Java, un profil WebSphere léger, un service DataCache et un service de surveillance et d'analyse. Au niveau gratuit, le DataCache ne fait que 50 Mo et le service de surveillance et d'analyse ne dispose pas d'une surveillance et d'un diagnostic plus approfondis des performances.

Le standard Mobile Cloud combine Node.js, Mobile Application Security, la messagerie IBM Push et Mobile Data (avec un back-end Cloudant mutualisé). Il comprend des SDK pour Android, iOS et JavaScript. Au niveau gratuit, il est limité à 2 Go de stockage, 1 million de notifications push par mois et 375 Go-heures par mois. Le MobileFirst Services Starter est similaire, mais comprend des notifications push et une sécurité spécifiquement pour iOS 8.

Les trois démarreurs Web de modélisation utilisateur associent le service Watson User Modeling à un moteur d'exécution et à un exemple de code. Watson User Modeling utilise l'analyse linguistique pour extraire un ensemble de traits de personnalité et de traits sociaux de la façon dont une personne communique, dans le but de personnaliser les communications.

Vaadin est un framework d'application Web open source pour les applications Internet riches. Le démarreur Vaadin exécute le framework dans Liberty pour Java et utilise une base de données DB2.

Runtimes Bluemix, aka buildpacks

La sélection des environnements d'exécution proposés sur Bluemix comprend les sept buildpacks nommés illustrés à la figure 3, ainsi que tout autre buildpack approuvé pour Cloud Foundry. Six des runtimes affichés devraient vous être familiers; le septième, Sinatra, est un DSL (langage spécifique au domaine) permettant de créer des applications Web en Ruby rapidement et avec un minimum d'effort.

Le buildpack PHP prend en charge PHP 5.4, 5.5 et 5.6; Nginx 1,5, 1,6 et 1,7; et Apache HTTPD 2.4. La version Python prise en charge dans le buildpack PHP est la 2.6.6, ce qui n'est pas vraiment à jour. Le buildpack Python, quant à lui, prend en charge une douzaine de versions de Pypy, ainsi que deux douzaines de versions chacune de Python 2 et Python 3.

Les buildpacks de la communauté pour Cloud Foundry incluent les environnements d'exécution Clojure, Haskell, Mono et Erlang. Le seul langage de serveur d'applications compatible Linux que je n'ai pas trouvé pris en charge sur Cloud Foundry est Perl.

Services Watson

Les sept services Watson actuellement proposés dans Bluemix (Figure 4) sont l'expansion de concept, l'identification du langage, la traduction automatique, la résonance des messages, les questions et réponses, l'extraction de relations et la modélisation utilisateur. Tous sont encore en version bêta. J'ai décrit la modélisation utilisateur plus tôt. Je couvrirai le reste ici.

Concept Expansion analyse le texte et interprète sa signification en fonction de son utilisation dans d'autres contextes similaires. Par exemple, il pourrait interpréter «The Big Apple» comme signifiant «New York City». Il peut être utilisé pour créer un dictionnaire de mots et de concepts apparentés afin que les euphémismes, les expressions familières ou les expressions peu claires puissent être mieux comprises et analysées. Ce service bêta gratuit de Bluemix a un ensemble de données et un domaine prédéfinis, il est donc inutile pour la production.

Le service d'identification de la langue détecte la langue dans laquelle le texte est écrit. Cela aide à informer les prochaines étapes telles que la traduction, la voix en texte ou l'analyse directe. Le service peut être utilisé en tandem avec le service de traduction automatique. Aujourd'hui, le service peut identifier 25 langues.

Le service de traduction automatique convertit la saisie de texte dans une langue en une langue de destination pour l'utilisateur. La traduction est disponible en anglais, portugais brésilien, espagnol, français et arabe.

Le service Message Resonance analyse le contenu du projet et évalue dans quelle mesure il est susceptible d'être reçu par un public cible spécifique. Cette analyse est basée sur le contenu qui a été écrit par le public cible lui-même, comme les fans d'une équipe sportive spécifique ou les nouveaux parents. Bien que les versions futures permettront aux utilisateurs de fournir leurs propres données communautaires, aujourd'hui, l'analyse ne peut être effectuée que contre des personnes actives dans le cloud computing ou les discussions sur le cloud computing; cela rend le service bêta inutile pour la production dans des domaines autres que le cloud computing.

Le service de questions et réponses interprète et répond aux questions des utilisateurs directement en fonction des sources de données primaires (brochures, pages Web, manuels, enregistrements) qui ont été sélectionnées et rassemblées dans un ensemble de données ou «corpus». Le service renvoie les réponses des candidats avec les niveaux de confiance associés et des liens vers des preuves à l'appui. Les données actuelles sur Bluemix se concentrent sur les industries du voyage et des soins de santé, ce qui les rend inutiles pour d'autres domaines.

L'extraction de relations analyse les phrases en leurs divers composants et détecte les relations entre les composants. Il peut traiter de nouveaux termes (tels que les noms de personnes dans un fil d'actualité) qu'il n'a jamais analysé auparavant par une analyse contextuelle. Les composants de la phrase comprennent des parties du discours (nom, verbe, adjectif, conjonction) et des fonctions (sujets, objets, prédicats). Le service cartographie les relations entre les composants afin que les utilisateurs ou les moteurs d'analyse puissent comprendre plus facilement la signification des phrases et des documents individuels.

Le service bêta est optimisé pour les articles de presse ou tout autre texte lié à l'actualité en anglais ou en espagnol, via des API distinctes; vous ne pouvez pas l'utiliser pour un domaine arbitraire et vous attendre à obtenir de bonnes réponses. Comme vous pouvez le voir sur la figure 5, il ne renvoie pas toujours de bonnes réponses, même pour les articles de presse; vraisemblablement, une fois que vous pourrez fournir votre propre ensemble de formation, vous serez en mesure d'adapter le service à votre domaine d'intérêt.

Dans l'ensemble, les services bêta Watson sur Bluemix semblent alléchants, mais ils ne sont pas encore prêts pour les heures de grande écoute. Cela correspond à la manière dont ils ont été présentés.

Services mobiles et applicatifs

Nous avons déjà discuté de six des huit services mobiles disponibles sur Bluemix. Un autre est l'assurance qualité mobile, qui permet de tester les applications mobiles, de valider les utilisateurs et de rationaliser les commentaires sur la qualité avec une analyse des sentiments; distribution de construction en direct; rapports de crash automatisés; et rapports de bogues dans l'application et commentaires des utilisateurs. Et il y a Twilio, un service tiers de voix, de messagerie et de VoIP.

Il existe 19 services Web et applicatifs dans Bluemix. C'est trop pour en discuter ici, mais quelques-uns d'entre eux méritent d'être mentionnés. RapidApps est un service bêta à fonctionnalités limitées qui prétend vous permettre de «développer rapidement des applications Web et mobiles centrées sur les données à l'aide d'outils visuels, sans codage». RapidApps est censé être destiné aux analystes commerciaux; il semble être loin d'être cuit à ce stade, mais pourrait être intéressant à l'avenir.

Le service de règles métier prend les règles de langage naturel que vous créez dans un concepteur de règles et les exécute lorsqu'elles sont appelées par votre application. Cela semble également être destiné aux analystes commerciaux, mais il est en meilleur état que RapidApps à ce stade.

Services Devops

Les huit services devops sur BlueMix incluent cinq d'IBM et trois de tiers. Le service Track and Plan vous permet de créer des histoires, des tâches et des défauts pour décrire et suivre le travail du projet, ainsi que d'utiliser des outils de planification agiles pour le backlog produit, les versions et les sprints. Ce service vous donne essentiellement Rational Team Concert pour votre référentiel Git ou Jazz.

Le service Delivery Pipeline vous permet d'automatiser les builds et les déploiements, l'exécution des tests, la configuration des scripts de build et l'automatisation de l'exécution des tests unitaires. J'aime la façon dont ces deux services intègrent l'interface Jazz avec Bluemix.

Nous avons discuté du service de surveillance et d'analyse dans le contexte du démarreur Web Java Cache. Le module complémentaire Auto-Scaling for Bluemix vous permet d'augmenter ou de réduire automatiquement la capacité de calcul de votre application. Le registre des utilisateurs de l'application vous permet de protéger votre application de ressources ou de développer votre application client basée sur OAuth 2.0. Les trois services devops tiers sont BlazeMeter, Load Impact et New Relic.

Autres services

Il n'y a que deux services d'intégration dans Bluemix, mais ils sont tous les deux intéressants. L'intégration dans le cloud permet aux utilisateurs d'intégrer des services cloud aux systèmes d'enregistrement de l'entreprise; il expose les systèmes dorsaux en tant qu'API REST à utiliser par les applications. Le service de conteneurs expérimental vous permet d'exécuter des conteneurs Docker sur Bluemix, ce qui ouvre potentiellement Bluemix à presque tout.

Sur les 10 services de gestion de données sur Bluemix, deux sont pour MySQL (un open source, un tolérant aux pannes), deux pour Postgres (idem), trois pour les bases de données NoSQL et un pour DB2. Les deux autres services de gestion de données sont Object Storage (bêta, basé sur OpenStack Swift) et DataWorks; ce dernier comprend des API qui chargent des données, nettoient les adresses postales américaines et classifient les données.

fiche d'évaluation Facilité d'utilisation (20%) Ampleur du soutien (20%) Gestion (20%) Documentation (15%) Installation et configuration (15%) Valeur (10%) Score global
IBM Bluemix 9 9 9 8 9 9 8,9