Blaupause · 2015-06-24 · IBMs Platform as a Service: Bluemix Blaupause Michael P. Wagner Auf...

4
Sonderdruck aus Ausgabe 04/15 © by Heise Medien GmbH & Co. KG, Hannover x MAGAZIN FÜR PROFESSIONELLE INFORMATIONSTECHNIK A usgangspunkt sind „Born in the Cloud“-Applikationen, die Ent- wickler mit IBMs Bluemix weiter ausbauen können. Die Platform as a Ser- vice (PaaS) stellt die erforderliche In- frastruktur, diverse Laufzeitumgebungen und eine Reihe unterstützender Services zur Verfügung. Anhand vieler Beispiele fällt es leicht, sich zu orientieren und den Ausbau von Anwendungen in der Umge- bung mit einem beliebigen Entwicklungs- werkzeug voranzutreiben. Das System mechanisiert den entstandenen Code und überträgt ihn in die Bluemix-Cloud. Dort kann der Entwickler ihn mit den vorkon- figurierten Services automatisiert in eine lauffähige Applikation verwandeln. IBM wirbt damit, dass Entwickler mit Bluemix in kürzester Zeit Cloud-Anwen- dungen erstellen können. In einem Pra- xistest dauerte es tatsächlich nur wenige Minuten, eine einfache Webanwendung (siehe Kastentext „Instant Apps“) für die Cloud zu präparieren. Der komplette Zyklus vom Ändern des Anwendungs- codes über den Zusammenbau der Aus- führungskomponenten bis zum Einrich- ten der fertigen Applikation verlief nahezu ebenso schnell, bis zu einer ersten selbst geschriebenen Anwendung dauerte es nur wenige Minuten länger. Das Weiterent- wickeln fällt genauso leicht wie das kon- ventionelle Erstellen von Webanwendun- gen. Die größte Schwierigkeit liegt darin, in der Fülle der Beispiele die geeignete Kombination der Services und Optionen zu finden, wobei die Menge der Angebo- te durchaus verwirren kann. Das Verwenden der Bluemix-Cloud setzt kein spezielles Werkzeug zum Ent- wickeln einer Anwendung voraus, es lässt sich mit wenigen Kommandozeilenbe- fehlen einrichten. Die gesamten Arbei- ten können vollständig im Web erfolgen, wenn man etwa die rein browserbasierte Plattform „JazzHub“ von IBM verwendet, die sich leicht mit der Cloud-Umgebung Bluemix kombinieren lässt. Alternativ können Entwickler integrierte Frame- works wie Eclipse verwenden, indem sie ein passendes Plug-in installieren. Cloud-Anwendungen im Eigenbau Der direkte Weg zu einer Bluemix-An- wendung folgt immer dem gleichen Schema. Am Anfang steht die Wahl einer Ausführungsumgebung, in der die Pro- grammlogik der Anwendung die Fäden der Komponenten zusammenhält. Services erweitern den Funktionsumfang und stel- len Hilfsmittel zum Verwalten bereit. 64 iX 4/2015 REVIEW | CLOUD-ANWENDUNG IBMs Platform as a Service: Bluemix Blaupause Michael P. Wagner Auf Grundlage der quelloffenen Cloud Foundry bietet IBM unter dem Namen Bluemix eine Plattform in der Cloud an, gedacht zum Weiterentwickeln von Web-, Cloud- und Mobile- Anwendungen. Man soll dort vorkonfigurierte Services mit wenigen Klicks zu modularen Anwendungsumgebungen zusammenstellen können. -TRACT Mit Bluemix hat IBM eine Umgebung geschaffen, in der Entwickler ihre Software zur Cloud-Reife führen können. Das Bluemix-Framework enthält die frei verfügbare und browsergestützte Ent- wicklungsplattform JazzHub. Beim Verwenden ihrer Werkzeuge haben die Programmierer freie Wahl. Andere Entwicklungsumgebungen wie Eclipse lassen sich per Plug-in integrieren.

Transcript of Blaupause · 2015-06-24 · IBMs Platform as a Service: Bluemix Blaupause Michael P. Wagner Auf...

SonderdruckausAusgabe 04/15© by Heise Medien GmbH & Co. KG, Hannover

x MAGAZIN FÜR PROFESSIONELLEINFORMATIONSTECHNIK

links 64

Ausgangspunkt sind „Born in theCloud“-Applikationen, die Ent-wickler mit IBMs Bluemix weiter

ausbauen können. Die Platform as a Ser-vice (PaaS) stellt die erforderliche In -frastruktur, diverse Laufzeitumgebungenund eine Reihe unterstützender Serviceszur Verfügung. Anhand vieler Beispielefällt es leicht, sich zu orientieren und denAusbau von Anwendungen in der Umge-bung mit einem beliebigen Entwicklungs-werkzeug voranzutreiben. Das Systemmechanisiert den entstandenen Code undüberträgt ihn in die Bluemix-Cloud. Dortkann der Entwickler ihn mit den vorkon-figurierten Services automatisiert in einelauffähige Applikation verwandeln.

IBM wirbt damit, dass Entwickler mitBluemix in kürzester Zeit Cloud-Anwen-dungen erstellen können. In einem Pra-xistest dauerte es tatsächlich nur wenigeMinuten, eine einfache Webanwendung(siehe Kastentext „Instant Apps“) für die Cloud zu präparieren. Der kompletteZyklus vom Ändern des Anwendungs -codes über den Zusammenbau der Aus-führungskomponenten bis zum Einrich-ten der fertigen Applikation verlief nahezuebenso schnell, bis zu einer ersten selbstgeschriebenen Anwendung dauerte es nurwenige Minuten länger. Das Weiterent -wickeln fällt genauso leicht wie das kon-ventionelle Erstellen von Webanwendun-gen. Die größte Schwierigkeit liegt darin,in der Fülle der Beispiele die geeigneteKombination der Services und Optionenzu finden, wobei die Menge der Angebo-te durchaus verwirren kann.

Das Verwenden der Bluemix-Cloudsetzt kein spezielles Werkzeug zum Ent-wickeln einer Anwendung voraus, es lässtsich mit wenigen Kommandozeilenbe -fehlen einrichten. Die gesamten Arbei-ten können vollständig im Web erfolgen,wenn man etwa die rein browserbasiertePlattform „JazzHub“ von IBM verwendet,die sich leicht mit der Cloud-UmgebungBluemix kombinieren lässt. Alternativkönnen Entwickler integrierte Frame-works wie Eclipse verwenden, indem sieein passendes Plug-in installieren.

Cloud-Anwendungen im EigenbauDer direkte Weg zu einer Bluemix-An-wendung folgt immer dem gleichenSchema. Am Anfang steht die Wahl einerAusführungsumgebung, in der die Pro-grammlogik der Anwendung die Fädender Komponenten zusammenhält. Serviceserweitern den Funktionsumfang und stel-len Hilfsmittel zum Verwalten bereit.

64 iX 4/2015

REVIEW | CLOUD-ANWENDUNG

IBMs Platform as a Service: Bluemix

BlaupauseMichael P. Wagner

Auf Grundlage der quelloffenen Cloud Foundry bietet IBM unter dem Namen Bluemix eine Plattform in der Cloud an, gedacht zum Weiterentwickeln von Web-, Cloud- und Mobile-Anwendungen. Man soll dort vorkonfigurierte Services mit wenigen Klicks zu modularen Anwendungsumgebungen zusammenstellen können.

⬛-TRACT⚫ Mit Bluemix hat IBM eine Umgebung geschaffen, in der Entwickler ihre Software

zur Cloud-Reife führen können.

⚫ Das Bluemix-Framework enthält die frei verfügbare und browsergestützte Ent-wicklungsplattform JazzHub.

⚫ Beim Verwenden ihrer Werkzeuge haben die Programmierer freie Wahl.

⚫ Andere Entwicklungsumgebungen wie Eclipse lassen sich per Plug-in integrieren.

ix.0415.064-067 24.04.15 13:51 Seite 64

65 rechts

Alle Komponenten stehen per Klick ineiner aufeinander abgestimmten Konfi -guration lauffähig innerhalb der Cloudzur Verfügung. Was fehlt, ist der Anwen-dungscode, den man auf Grundlage derKonfigurationsinformation mit einem be-liebigen Editor erstellen und hochladenkann. Werkzeuge aus der Cloud Foundryführen den Build durch, verbinden dieAnwendungskomponenten und starten dieresultierende Anwendung.

Den Status der installierten Bluemix-Anwendungen stellt das sogenannte Dash -board übersichtlich mit Kacheln oderListen dar (siehe Abbildungˇ2). Zuoberstzeigt es den aktuellen Speicherverbrauch,den Status und die Zahl der installiertenServices an. Läuft eine Anwendung oderein Service nicht, ist der Status rot. EinKlick auf das jeweilige Icon liefert weitergehende Statusinformationen, etwa die inden jeweiligen Logs.

Neueinsteiger dürfen im ersten Monatbis zu 20 Instanzen und 2ˇGByte Haupt-speicher kostenlos nutzen. Danach be-rechnet das Unternehmen den Ressour-cenverbrauch in GByte-Stunden (GBh):die Menge des genutzten Speichers mul-tipliziert mit der Zahl der Betriebsstun-den. Nach der einmonatigen Testphasesind pro Monat 1125 GBh frei, jede wei-tere Einheit kostet etwas mehr als 0,05Euro. Wer 1ˇGByte einen Monat langnutzt, kommt auf knapp 38 Euro. DasAbrechnen der Dienste richtet sich nachFreikontingenten und Bezahlmodellen,die man bei der Einrichtung wählen kann.

Alles unter Kontrolle

Die Benutzerschnittstelle verwaltet au-ßerdem die Struktur der Bluemix-Cloud.Als Strukturelemente dienen Organisatio-nen, Spaces und Accounts. Legt man un-ter bluemix.net ein Testkonto an, erzeugtdas System automatisch eine Organisa -tion und einen Space, der zum Ablegender Anwendungen und Services dient.

Nutzer können weitere Spaces anle-gen, etwa wenn sie Test- von Produk -tionsumgebungen trennen wollen. DasVerteilen der Software auf die Umgebun-gen erfolgt beim Hochladen über die An-gabe des Ziel-Space.

iX 4/2015 65

Instant AppsErstaunlicherweise führt der schnellste Wegzu einer eigenständigen, unabhängig vonIBMs Universum verwalteten Bluemix-An-wendung über das Command Line Tool (CLI)der Cloud Foundry Organisation. Es ist unterhttps://github.com/cloudfoundry/cli zu fin-den. Dort braucht man unter „downloads“nur die Plattform der Entwicklungsumge-bung auszuwählen. Es genügt, den Source -code in die Bluemix-Cloud zu übertragen.

Richtet man Bluemix als Deployment-Zielein:cf api https://api.ng.bluemix.net

und meldet sich per cf login an, fehlt nurnoch der passende Sourcecode.

Das einfachste Beispiel findet man in Git.Beim Installieren seines Command LineClient (http://git-scm.com/download) kannman – nach dem Festlegen eines lokalen Ver-zeichnisses für den Sourcecode – das einfa-che Beispiel herunterladen mit:git clone https://hub.jazz.net/git/ —

communitysample/env-javaweb

Es handelt sich um eine Anwendung, die Java Server Pages nutzt und alle Variablenihrer Laufzeitumgebung als HTML-Tabelleausgibt. Den Code kann man mit einemKommando deployen:cf push Bluemix4711 -m 64m

Der Vorgang braucht ein wenig Zeit fürsKompilieren, Installieren und Starten. Danachkann man in einem Browser unter http://Bluemix4711.mybluemix.net die Ausgabe derersten eigenen Cloud-Anwendung betrachten(siehe Abbildungˇ1).

Ändert man den Sourcecode der Anwen-dung, indem man beispielsweise in index.jspHTML-Formatierungen einfügt, genügt ein cfpush. Bluemix generiert die Cloud-Anwen-dung automatisch neu und führt einen Re-start durch.

Zum Nachvollziehen reicht es aus, in den genannten Skripten den Anwendungsnamenvon Bluemix4711 in einen eigenen zu ändern.Ist der gewünschte Name vergeben, erfolgteine Fehlermeldung.

Das Open-Source-Framework Node-RED stellt innerhalb von Bluemix eine grafische Entwicklungsumgebung für skriptbasierte Anwendungen zur Verfügung (Abb.ˇ1).

Von oben: Das „Dash board“ der Benutzeroberfläche von Bluemix

bietet einen Überblick über den Statusder eigenen Applikationen und der

Services, die sie nutzen (Abb.ˇ2).

ix.0415.064-067 24.04.15 13:51 Seite 65

links 66

Eine Organisation bekommt mehrereAccounts mit den Verwaltungsrollen Ma-nager, Billing Manager und Auditor zu-gewiesen. Wer will, kann sie mit unter-schiedlichen Domänen verbinden, sodasser nicht auf die automatisch erzeugte Do-mäne <user defined>.bluemix.net ange-wiesen ist. Um das Zertifizieren der er-forderlichen SSL-Zertifikate muss man

sich selbst kümmern. Eine Organisationlegt die Quotas für die Zahl der Servicesund die Menge der GBh fest. Den Namender Organisation kann der Anwender beiBedarf ändern.

Mit dem Button „Create a Space“ kannjemand in der Manager-Rolle beliebigviele Spaces erzeugen, die zum Abgren-zen der Anwendungsumgebungen von -

einander etwa in der Erprobung (Staging)und in der Produktion dienen. Mehrerezu verwenden, bietet sich an, wenn dieKonfiguration der Services zwischen Releases wechselt. Außerdem kann mandie Software nach Zielumgebungen ge-trennt verteilen. Den üblichen ZyklusEntwicklung, Test, Staging, Produktiondeckt das automatisierte Deployment indie Bluemix-Cloud ab. Einen passendenautomatischen Ablauf der Tests mussman selbst erstellen; für manuell erzeug-te sind identisch konfigurierte Spaces er-forderlich.

Zu Bluemix’ Stärken zählt ohne Zwei-fel die Vielfalt der angebotenen Software-komponenten für die Anwendungsent-wicklung. Um den Einstieg zu erleichtern,bieten sogenannte Boilerplates vorkonfi-gurierte Kombinationen von Komponen-ten an, mit denen Programmierer sofortloslegen können. Die Boilerplates beste-hen aus einer Ausführungsumgebung undeinem oder mehreren Services. Wer will,kann die Komponenten ohne Boilerplateselbst zu individuellen Umgebungen zu-sammenstellen. Das geht einfacher alsgedacht.

Kommandozeilen und Texteditor genügenMit einem Klick etwa auf die Java-Lauf-zeitumgebung und dem Festlegen eineseindeutigen Namens für die Anwendungist eine Ausführungsumgebung instanzi-

66 iX 4/2015

REVIEW | CLOUD-ANWENDUNG

Raumangebot: Die Bluemix-Cloud ist in Organisationen und Spaces eingeteilt, in denendie User unterschiedliche Rollen einnehmen können (Abb.ˇ3).

Vergleichsangebote zu IBMs BluemixZu den wichtigsten mit IBMs Bluemix ver-gleichbaren Angeboten zählen neben den un-ten gelisteten Cloud-Umgebungen die einerReihe kleinerer, zum Teil innovativer Unter-nehmen. Die Vielzahl weiterer Cloud-Plattfor-men mit einem breiteren Ansatz wie SaaSund IaaS sind nicht unmittelbar vergleichbar,da sie nicht den gleichen Automatisierungs-grad für die Entwicklung von Cloud-Anwen-dungen erreichen.

AWS’ Elastic Beanstalk unterstützt Java, Node.js, PHP, Python, Ruby und .NET-Um -gebungen. Nutzbar ist es über Git oder den Java-Web-Application-Archive-Dienst. Es un-terstützt Docker Container für ein schnellesund flexibles Konfigurieren der Cloud-Anwen-dungen.

Googles App Engine (GAE) kennt Java, Go,PHP, Python und JVM-Sprachen wie Groovy,JRuby, Scala, Clojure, ist aber im Grunde un-abhängig von der Programmiersprache. Die

Anwendungsentwicklung erfolgt innerhalb derdurch das GAE-API vorgegebenen Grenzen.Das Verwalten der Cloud-Anwendungen istautomatisiert. Es steht ein eigener Speicher-dienst zur Verfügung.

Salesforces Heroku-Cloud-Umgebung ent-stand in Ruby, unterstützt derzeit aber auchJava, Node.js, Scala, Clojure, Python und PHP.Es arbeitet mit Speicherdiensten wie Clou-dant, Couchbase, MongoDB, Redis und Post-greSQL zusammen. Heroku enthält einen ei-genen Git-Dienst.

SprachenmixMicrosofts Azure Web Sites (MWAS) bestehtaus gemischten Anwendungen in den Spra-chen Java, Node.js, PHP und Python. .NET-Umgebungen sind ebenfalls verwendbar. Ent-wickler können Cloud-Anwendungen auf Ba siseines Website-Katalogs mit über fünfzig An-geboten erstellen. Die Applikationen können

schrittweise erweitert werden, wobei die Pfle-ge des Codes über ein Reihe von Webdienstenerfolgen kann.

Red Hats OpenShift Cloud unterstützt dieSprachen Haskell, Java, JavaScript, Perl, PHP,Python und Ruby, außerdem .NET. Unter an-derem kennt es die Frameworks Ruby on Railsund Sinatra sowie die Datenbanken MicrosoftSQL Server, MongoDB, MySQL, PostgreSQL.OpenShift kann native Anwendungen für daszugrunde liegende Red Hat Enterprise Linuxnutzen, sodass das Entwickeln und Kompilie-ren nicht in der Cloud erfolgen muss.

VMwares Open-Source-Framework CloudFoundry, auf dem Bluemix basiert, entwickeltPivotal weiter, von VMware und EMC finan-ziert. Es bietet eine eigene Cloud-Umgebungan, die Java, Node.js, PHP, Python, Ruby und Scala, die Datenbankservices MongoDB,MySQL, Postgres, Redis sowie den Message-Broker RabbitMQ unterstützt.

ix.0415.064-067 24.04.15 13:51 Seite 66

67 rechts

iert und gestartet. Die Organisation undder Space sind automatisch vorbelegt,was der Entwickler aber ändern kann.Um den Sourcecode hinzuzufügen, ge -nügen ein Texteditor und ein Komman-dozeilentool der Cloud Foundry. Erstelltman eine Bluemix-Umgebung, kann mandie Quellen in der frei verfügbaren Ent-wicklungsumgebung JazzHub verwaltenund Projekte vollständig webbasiert be-treiben.

Jazz Hub schafft komfortable UmgebungAktiviert man in einer frisch erstelltenUmgebung die Schaltfläche „Add GIT“,kopiert das System den Code der Blue-mix-Anwendung in ein Git-Repositoryund verbindet es mit dem eigenen Ac-count in JazzHub. Über „EDIT CODE“öffnet sich JazzHub und der Code kanngeändert werden. Mit der Schaltfläche„BUILD & DEPLOY“ in JazzHub über-spielt man Änderungen in Bluemix undstößt dort das Kompilieren, Deploymentund einen Neustart der Applikation an(siehe Abbildungˇ3). Da das Frameworkdas Koordinieren mehrerer Entwickler-teams unterstützt, ist mit der Kombina -tion aus JazzHub und Bluemix schnell ei-ne verteilte Umgebung zum Entwickelnvon Anwendungen für die Cloud alleinauf der Web-Ebene geschaffen.

Obwohl Bluemix laut Dokumentationalle Browser unterstützt, funktioniert esam reibungslosesten mit Googles Chrome.Mit dem Internet Explorer geht es aus-drücklich erst ab Versionˇ8 und im popu-lären Firefox bricht manche Interaktionaus unbekannten Gründen ab. Offensicht-lich sind noch nicht alle Benutzerschnitt-stellenelemente fehlerfrei. Einige derServices sind nicht mit allen Browserninstallierbar, weil die Einrichtungsdialogenicht funktionieren.

Als Freunde zurück auf der ErdeZudem hakt es beim Single Sign-on zwi-schen Bluemix und den DevOps-Servicesin JazzHub. Gelegentlich lassen sich In-teraktionen, die zwischen den Serviceswechseln, nicht abschließen, weil der be-rechtigte Benutzer nicht erkannt wird.Der eingebaute Match der IBM- und derJazz-ID helfen ebenso wenig wie das An-legen identischer Benutzerkennungen undPasswörter. Kommt es zu einer derartigenZurückweisung am Ende längerer Inter-aktionen, ist das ärgerlich.

Das Angebot von IBM, die Bluemix-Cloud einen Monat lang kostenlos auszu-probieren, wirkt großzügig. Allerdingsstößt man mit 2ˇGByte Speicher und ma-ximal 10 Services schnell an Grenzen.Für diesen Review mussten die Autorendiverse gerade erst erarbeitete Anwen-dungen wieder verwerfen, um Platz fürden Test weiterer Services zu schaffen.Komplexere Setups kann man aufgrundder Beschränkung kaum testen, der Spei-cher geht eher zur Neige als die 10 Ser-vices.

Ist der Testmonat vorbei, kann es zu-dem teuer werden. Die oben erwähntenfreien 1125 GBh entsprechen einem Ver-brauch von etwa 1,5 GByte im Monat.Da jeder Service einzeln kostet, kannman schnell die Übersicht verlieren (sie-he Tabelle). Nicht umsonst stellt IBM un-ter dem Button „Estimate the cost of thisapp“ extra einen Dienst zur Verfügung,der den Preis der Anwendungen prognos-tizieren hilft. Man sollte genau kalku -lieren, was man einfach zusammenstellt.

Leider fehlt bislang ein Werkzeug zumErfassen des laufenden Verbrauchs. Bisauf die Mittel der Anwendungsentwick-lung hat man nur wenige Chancen, denRessourcenverbrauch zu optimieren unddamit Kosten zu senken.

Fazit

Bluemix überzeugt durch die weitrei-chende Integration der Cloud-Umgebung,die einfach zu bedienende Benutzerober-fläche und das reibungslose Zusammen-spiel mit Entwicklungswerkzeugen. Diehohe Automatisierbarkeit beim Erstellenund Installieren der Applikationen sowiedas breite Angebot von Services verkür-zen beim Entwickeln den Weg bis zurlaufenden Cloud-Anwendung.

IBM entwickelt Bluemix derzeit ra-sant weiter. Während der Tests kamenweitere Dienste hinzu, einige wurden zusammengelegt, verändert, umbenanntoder verließen das Betastadium. Ebensoist die Benutzerschnittstelle betroffen.Man darf gespannt bleiben, wohin sichdie Bluemix-Cloud vor dem Hintergrundwachsender Konkurrenz noch entwickelnwird. (rh)

Dr. Michael P. Wagner

ist als Unternehmensberater und Publizist in München tätig.

iX 4/2015 67

Eingebaut: Bluemix integriert nahtlos IBMs Framework JazzHub und ermöglicht ein reinbrowserbasiertes Entwickeln von Cloud-Anwendungen (Abb.ˇ4).

Alle Links: www.ix.de/ix1504064 ⬛

⊕ rein browserbasierte Entwicklung

⊕ schnelle Konfiguration

⊕ nahtlose Integration

⊖ geringes Speichervolumen in der Testphase

⊖ hohe Kosten für komplexe Applikationen

⬛-Wertung

ix.0415.064-067 24.04.15 13:51 Seite 67