Test: IBM Bluemix sperrt Cloud Foundry

Als ich im letzten Sommer das Cloud Foundry PaaS (Plattform als Service) überprüfte, konzentrierte ich mich auf die Open Source-, Pivotal- und ActiveState-Implementierungen. In diesem Test werde ich mich mit IBM Bluemix befassen, einem auf SoftLayer gehosteten PaaS mit mehreren Mandanten, das Cloud Foundry mit einer verbesserten Online-Benutzeroberfläche und Services von IBM und Dritten kombiniert.

Die markantesten Dienste auf Bluemix basieren auf Watson, einem kognitiven System, das die Verarbeitung natürlicher Sprache, die Erstellung und Bewertung von Hypothesen sowie dynamisches Lernen ermöglicht. Einige der anderen Dienste und Integrationen in Bluemix schließen Lücken in der Open Source-Version von Cloud Foundry - beispielsweise Autoscaling-, Mobile-, Big Data- und Enterprise-Integrationsdienste.

Beachten Sie, dass die Lücken geschlossen wurden, ohne den Cloud Foundry-Code zu forken. Tatsächlich hat mir Bala Rajaraman, der CTO von Bluemix, mit Bestimmtheit gesagt: "Wir werden nicht gabeln." Das Befehlszeilenprogramm für die Anwendungskonfiguration, das ich für Open Source Cloud Foundry und Pivotal CF installiert habe, ist das gleiche wie für Bluemix. Das Befehlszeilenprogramm für die bosh PaaS-Konfiguration, das ich für Open Source Cloud Foundry installiert habe, entspricht dem, was die Bluemix-Ingenieure intern verwenden. Benutzer von Bluemix müssen jedoch nie bosh lernen, da IBM mit Bluemix beabsichtigt, Benutzer vor der PaaS-Administration zu schützen. Konzentrieren Sie sich auf den Service und ermöglichen Sie Benutzern das einfache Erstellen von Apps.

Ich bin mit dieser Einstellung einverstanden. Als Entwickler empfand ich das Lernen als schwierig, und ich war der Meinung, dass das schwere Heben bei der Konfiguration eines PaaS dem Betrieb überlassen werden sollte. Für mich ist das Versprechen von PaaS und Entwicklern eine reibungslose Konfiguration und Verwaltung der Infrastruktur, um die Erstellung und Bereitstellung von Software zu unterstützen. Wenn ein Entwickler einen erheblichen Teil seiner Zeit für die betriebliche Arbeit aufwenden muss, die zum Einrichten eines PaaS erforderlich ist, wird der grundlegende Zweck eines PaaS zunichte gemacht. Gleichzeitig gefällt mir die Möglichkeit, ein Single-VM- „Microcloud“ -PaaS privat auf einem Laptop für Experimente auszuführen, weshalb ich auch den Wert von ActiveState Stackato und herunterladbaren PaaS-VM-Images sehe.

Da Bluemix auf einer unveränderten Cloud Foundry basiert, wird die gesamte Cloud Foundry-Architektur gemeinsam genutzt: Droplets, DEAs (Droplet Execution Agents), Buildpacks usw., die in einer virtuellen Maschine ausgeführt werden. Der Cloud Foundry-Teil wird in der hellblauen VM-Box unten links im Architekturdiagramm unten angezeigt (Abbildung 1).

Bluemix teilt mehr als die Cloud Foundry-Architektur: Es teilt die Cloud Foundry-Buildpacks und -Dienste, die in den anderen Cloud Foundry-Implementierungen verfügbar sind, und fügt einige eigene hinzu. Wir werden dies alles in Boilerplates aufteilen, die an anderer Stelle als Schnellstart oder App Store bezeichnet werden. Laufzeiten, anderswo als Buildpacks bekannt; und Dienstleistungen. Bluemix umfasst Services für Watson, Mobile, Devops, Web und Anwendungen, Integration, Datenmanagement, Big Data, Sicherheit, Business Analytics und IoT (das Internet der Dinge). Ich werde sie alle unten untersuchen.

Verschiedene Parteien können Bluemix-Services unterstützen: IBM, eine Community oder ein Drittunternehmen. Experimentelle Dienste sind kostenlos, instabil und können sich ändern, wenn sie nicht abwärtskompatibel sind. Daher werden sie nicht für die Produktion empfohlen. Beta-Dienste sind kostenlos, wurden jedoch noch nicht ausführlich in freier Wildbahn getestet. Alle Watson-Dienste sind derzeit als Beta klassifiziert.

Bluemix Boilerplates

Wie Sie in Abbildung 2 sehen können, bietet Bluemix derzeit 13 verschiedene „Boilerplates“ oder Schnellstartpakete an. Während die meisten davon ein IBM-Flair haben, ist das nicht unbedingt schlecht.

Einige der angebotenen Heizplatten erfordern möglicherweise eine Erläuterung. Beispielsweise bietet der Starter der Internet of Things Foundation eine Cloudant (CouchDB-kompatible) NoSQL JSON-Datenschicht und eine Node-RED-Anwendung, die auf einem SDK für die Node.js-Laufzeit gehostet wird. Node-RED ist ein Tool zum Verkabeln von Hardwaregeräten, APIs und Onlinediensten. Der Node-RED Starter ist ähnlich, wird jedoch von der Community unterstützt.

Der Java Cache Web Starter kombiniert Liberty for Java, ein leichtes WebSphere-Profil, einen DataCache-Dienst und einen Überwachungs- und Analysedienst. Auf der freien Ebene beträgt der DataCache nur 50 MB, und dem Überwachungs- und Analysedienst fehlt die tiefere Leistungsüberwachung und -diagnose.

Das Mobile Cloud-Boilerplate kombiniert Node.js, Mobile Application Security, IBM Push-Messaging und Mobile Data (mit einem Cloudant-Backend mit mehreren Mandanten). Es enthält SDKs für Android, iOS und JavaScript. Auf der kostenlosen Ebene ist es auf 2 GB Speicherplatz, 1 Million Push-Benachrichtigungen pro Monat und 375 GB Stunden pro Monat beschränkt. Der MobileFirst Services Starter ist ähnlich, enthält jedoch Push-Benachrichtigungen und Sicherheit speziell für iOS 8.

Die drei User Modeling Web-Starter koppeln den Watson User Modeling-Dienst mit einer Laufzeit und einem Beispielcode. Watson User Modeling verwendet sprachliche Analysen, um eine Reihe von Persönlichkeits- und sozialen Merkmalen aus der Art und Weise zu extrahieren, wie eine Person kommuniziert, mit dem Ziel, die Kommunikation zu personalisieren.

Vaadin ist ein Open Source-Webanwendungsframework für umfangreiche Internetanwendungen. Der Vaadin-Starter führt das Framework in Liberty für Java aus und verwendet eine DB2-Datenbank.

Bluemix-Laufzeiten, auch Buildpacks genannt

Die Auswahl der auf Bluemix angebotenen Laufzeiten umfasst die sieben in Abbildung 3 gezeigten Buildpacks sowie alle anderen Buildpacks, die für Cloud Foundry zugelassen sind. Sechs der angezeigten Laufzeiten sollten Ihnen bekannt sein. Die siebte, Sinatra, ist eine DSL (domänenspezifische Sprache), mit der Webanwendungen in Ruby schnell und mit minimalem Aufwand erstellt werden können.

Das PHP-Buildpack unterstützt PHP 5.4, 5.5 und 5.6. Nginx 1,5, 1,6 und 1,7; und Apache HTTPD 2.4. Die im PHP-Buildpack unterstützte Python-Version ist 2.6.6, was nicht wirklich aktuell ist. Das Python-Buildpack hingegen unterstützt ein Dutzend Versionen von Pypy sowie jeweils ein paar Dutzend Versionen von Python 2 und Python 3.

Zu den Community-Buildpacks für Cloud Foundry gehören Clojure-, Haskell-, Mono- und Erlang-Laufzeiten. Praktisch die einzige beliebte Linux-kompatible Anwendungsserversprache, die ich in Cloud Foundry nicht unterstützt habe, ist Perl.

Watson-Dienste

Die sieben Watson-Dienste, die derzeit in Bluemix angeboten werden (Abbildung 4), sind Konzepterweiterung, Sprachidentifikation, maschinelle Übersetzung, Nachrichtenresonanz, Frage und Antwort, Beziehungsextraktion und Benutzermodellierung. Alle sind noch in der Beta. Ich habe die Benutzermodellierung zuvor beschrieben. Ich werde den Rest hier abdecken.

Die Konzepterweiterung analysiert Text und interpretiert seine Bedeutung basierend auf der Verwendung in anderen, ähnlichen Kontexten. Zum Beispiel könnte es "The Big Apple" als "New York City" interpretieren. Es kann verwendet werden, um ein Wörterbuch verwandter Wörter und Konzepte zu erstellen, damit Euphemismen, Umgangssprachen oder andere unklare Phrasen besser verstanden und analysiert werden können. Dieser kostenlose Bluemix-Betadienst verfügt über einen vordefinierten Datensatz und eine vordefinierte Domäne, sodass er für die Produktion unbrauchbar ist.

Der Sprachidentifizierungsdienst erkennt die Sprache, in der der Text geschrieben ist. Dies hilft bei der Information über die nächsten Schritte wie Übersetzung, Voice-to-Text oder direkte Analyse. Der Dienst kann zusammen mit dem maschinellen Übersetzungsdienst verwendet werden. Heute kann der Dienst 25 Sprachen identifizieren.

Der maschinelle Übersetzungsdienst konvertiert die Texteingabe in einer Sprache in eine Zielsprache für den Benutzer. Die Übersetzung ist in Englisch, brasilianischem Portugiesisch, Spanisch, Französisch und Arabisch verfügbar.

Der Message Resonance-Dienst analysiert Entwurfsinhalte und bewertet, wie gut sie wahrscheinlich von einer bestimmten Zielgruppe empfangen werden. Diese Analyse basiert auf Inhalten, die von der Zielgruppe selbst verfasst wurden, z. B. Fans einer bestimmten Sportmannschaft oder neue Eltern. Obwohl Benutzer in zukünftigen Versionen ihre eigenen Community-Daten bereitstellen können, kann die Analyse heute nur für Personen durchgeführt werden, die in Cloud-Computing- oder Cloud-Computing-Diskussionen aktiv sind. Dies macht den Beta-Service für die Produktion in anderen Domänen als Cloud Computing unbrauchbar.

Der Frage- und Antwortdienst interpretiert und beantwortet Benutzerfragen direkt basierend auf primären Datenquellen (Broschüren, Webseiten, Handbücher, Aufzeichnungen), die ausgewählt und zu einem Datenbestand oder "Korpus" zusammengefasst wurden. Der Dienst gibt Kandidatenantworten mit zugehörigen Konfidenzniveaus und Links zu unterstützenden Beweisen zurück. Die aktuellen Daten zu Bluemix konzentrieren sich auf die Reise- und Gesundheitsbranche und machen sie für andere Bereiche unbrauchbar.

Die Beziehungsextraktion analysiert Sätze in ihre verschiedenen Komponenten und erkennt Beziehungen zwischen den Komponenten. Es kann neue Begriffe (wie die Namen von Personen in einem Newsfeed) verarbeiten, die es noch nie zuvor durch Kontextanalyse analysiert hat. Satzkomponenten umfassen Teile der Sprache (Substantiv, Verb, Adjektiv, Konjunktion) und Funktionen (Subjekte, Objekte, Prädikate). Der Dienst ordnet die Beziehungen zwischen den Komponenten zu, damit Benutzer oder Analyse-Engines die Bedeutung einzelner Sätze und Dokumente leichter verstehen können.

Der Beta-Service ist über separate APIs für Nachrichtenartikel oder andere nachrichtenbezogene Texte in Englisch oder Spanisch optimiert. Sie können es nicht für eine beliebige Domain verwenden und erwarten gute Antworten. Wie Sie in Abbildung 5 sehen können, werden selbst bei Nachrichtenartikeln nicht immer gute Antworten zurückgegeben. Sobald Sie Ihr eigenes Trainingsset bereitstellen können, können Sie den Service vermutlich auf Ihre interessierende Domäne abstimmen.

Insgesamt sehen die Beta-Watson-Dienste auf Bluemix verlockend aus, sind aber noch nicht für die Hauptsendezeit bereit. Dies steht im Einklang mit der Art und Weise, wie sie präsentiert wurden.

Mobil- und Anwendungsdienste

Wir haben bereits sechs der acht auf Bluemix verfügbaren Mobilfunkdienste besprochen. Ein weiteres Beispiel ist die mobile Qualitätssicherung, die das Testen mobiler Apps, die Validierung von Benutzern und ein optimiertes Qualitätsfeedback mit Stimmungsanalyse ermöglicht. Verteilung über Funk; automatisierte Absturzberichterstattung; In-App-Fehlerberichterstattung und Benutzer-Feedback. Und es gibt Twilio, einen Sprach-, Messaging- und VoIP-Dienst von Drittanbietern.

Es gibt 19 Web- und Anwendungsdienste in Bluemix. Das sind zu viele, um sie hier zu diskutieren, aber einige von ihnen sind erwähnenswert. RapidApps ist ein Beta-Service mit eingeschränkter Funktionalität, mit dem Sie "schnell datenorientierte Web- und mobile Apps mit visuellen Tools entwickeln können - ohne Codierung". RapidApps soll sich an Business Analysten richten. es scheint zu diesem Zeitpunkt noch lange nicht gekocht zu sein, könnte aber in Zukunft interessant sein.

Der Geschäftsregeldienst verwendet Regeln in natürlicher Sprache, die Sie in einem Regel-Designer erstellen, und führt sie aus, wenn sie von Ihrer App aufgerufen werden. Dies scheint sich auch an Geschäftsanalysten zu richten, ist aber derzeit in einem besseren Zustand als RapidApps.

Devops Dienste

Zu den acht Devops-Diensten auf BlueMix gehören fünf von IBM und drei von Dritten. Mit dem Track and Plan-Service können Sie Storys, Aufgaben und Fehler erstellen, um die Projektarbeit zu beschreiben und zu verfolgen, und agile Planungstools für das Product Backlog, Releases und Sprints verwenden. Dieser Service bietet Ihnen im Wesentlichen ein Rational Team Concert für Ihr Git- oder Jazz-Repository.

Mit dem Delivery Pipeline-Dienst können Sie Builds und Bereitstellungen automatisieren, die Testausführung testen, Build-Skripts konfigurieren und die Ausführung von Komponententests automatisieren. Mir gefällt die Art und Weise, wie diese beiden Dienste die Jazz-Oberfläche in Bluemix integrieren.

Wir haben den Monitoring and Analytics-Dienst im Kontext des Java Cache Web-Starters erörtert. Mit dem Add-On für die automatische Skalierung für Bluemix können Sie die Rechenkapazität Ihrer Anwendung automatisch erhöhen oder verringern. Mit der App-Benutzerregistrierung können Sie Ihre Ressourcenanwendung schützen oder Ihre Clientanwendung basierend auf OAuth 2.0 entwickeln. Die drei Entwicklerdienste von Drittanbietern sind BlazeMeter, Load Impact und New Relic.

Andere Dienstleistungen

Es gibt nur zwei Integrationsdienste in Bluemix, aber beide sind interessant. Mit der Cloud-Integration können Benutzer Cloud-Dienste in Unternehmenssysteme integrieren. Die Back-End-Systeme werden als REST-APIs verfügbar gemacht, die von Anwendungen verwendet werden. Mit dem experimentellen Containerservice können Sie Docker-Container auf Bluemix ausführen, wodurch Bluemix möglicherweise für fast alles geöffnet wird.

Von den 10 Datenverwaltungsdiensten auf Bluemix sind zwei für MySQL (ein Open Source, einer fehlertolerant), zwei für Postgres (dito), drei für NoSQL-Datenbanken und einer für DB2. Die verbleibenden zwei Datenverwaltungsdienste sind Object Storage (Beta, basierend auf OpenStack Swift) und DataWorks. Letzteres umfasst APIs, die Daten laden, US-Postanschriften bereinigen und Daten klassifizieren.

Scorecard Benutzerfreundlichkeit (20%) Breite der Unterstützung (20%) Management (20%) Dokumentation (15%) Installation und Einrichtung (15%) Wert (10%) Gesamtpunktzahl
IBM Bluemix 9 9 9 8 9 9 8.9