SlideShare ist ein Scribd-Unternehmen logo
P ROGRAMMIERUNG

OpenShift – Entwickeln in der Cloud                        von Patrick Meyhöfer

      gal, ob im Open-Source-Umfeld oder            Bereits jetzt sind fast alle wesentlichen Kompo-       PaaS am Beispiel von OpenShift

E     im Business-Bereich: Überall domi-
      niert in irgendeiner Form das The-
ma Cloud-Computing die Medien. Deren un-
                                                    nenten von Open Source-Technologien als Fun-
                                                    dament der Cloud-Technologien zu sehen. Sie
                                                    beruhen auf dem Linux-Kernel, Virtualisierungs-
                                                                                                           Die Vorteile des Konzepts sollen im Folgenden
                                                                                                           am Beispiel von OpenShift vorgestellt werden.
                                                                                                           Der Grund ist, dass Red Hat für kleine Ent-
schätzbare Vorteile, durch geschickte Mar-          technologien wie Xen oder KVM und Datenbank-           wicklungsprojekte eine Variante mit dem Namen
ketingaktivitäten oft besonders hervorgeho-         lösungen wie PostgreSQL oder MySQL (siehe              „OpenShift Express“ [5] komplett kostenlos an-
ben, sollte man natürlich auch einer kriti-         hierzu auch [4]). Wollte man bisher auf herkömm-       bietet. In der Praxis reserviert hier Red Hat bei
schen Analyse für den jeweiligen Einsatz-           liche Weise, z. B. eine Webanwendung, bereit-          Amazon Web Services EC2 eine Instanz, auf
zweck unterziehen. Im privaten Umfeld nutzt         stellen, musste man sich i. d. R. im Vorfeld bereits   der dann die Anwendung später läuft. Hat man
sicher der eine oder andere diverse Cloud-          gründlich Gedanken machen, auf welcher Ba-             im weiteren Verlauf zusätzliche Wünsche, kann
Lösungen, die direkt an den einfachen Pri-          sis man diese Software entwickeln und anschlie-        man auch auf ein kostenpflichtiges Modul na-
vatanwender gerichtet sind. Man denke an            ßend zur Verfügung stellen wollte. Es war also         mens „Flex“ upgraden. Dies bietet u. a. Cluster-
Google Mail, Dropbox, Evernote usw. Diese           notwendig, bereits vor dem Bereitstellen seiner        erstellung, Benutzeroberfläche statt Kommando-
Lösungen fasst man alle unter der Rubrik            Webanwendung eine eigene Plattform einzurich-          zeile und vieles mehr. Näheres hierzu findet man
Software-as-a-Service (kurz: SaaS [1]) zusam-       ten, über die man diese den Benutzern zugäng-          im „OpenShift UserGuide“ [6]). Für den Anfang
men.                                                lich machen kann. Das heißt, es wurden meist           reicht aber die kostenlose Lösung zum Einstieg
                                                    Webserver benötigt, Programmierumgebungen              in das Thema vollkommen aus.
Dieser Beitrag richtet sich jedoch an eine          wie PHP, JEE u. v. m. mussten installiert und kon-
eher technisch orientierte Sichtweise des Cloud-    figuriert werden und wenn eine Anwendung sehr           Zur Programmierung stehen folgende Sprachen
Computing, nämlich der so genannten Platform-       schnell populär wurde, reichten die Ressourcen         zur Verfügung:
as-a-Service (PaaS), mit der der normale An-        nicht aus, wodurch wieder Anpassungen in der
wender eher selten in Berührung kommt, die          Skalierung/Optimierung etc. notwendig waren.             Java 6 EE
aber für Entwickler durchaus von Interesse sein
                                                                                                             PHP
kann. Ein interessantes Angebot liefert hierfür
der Softwarehersteller Red Hat mit seinem Ange-     Mit der Idee von PaaS soll diese Arbeit nun              Perl
bot OpenShift [2].                                  durch die Cloud wahrgenommen werden. Der                 Python
                                                    Entwickler soll sich einzig um das Entwickeln sei-       Ruby
Kurzer Exkurs: PaaS                                 ner Anwendung kümmern, der gesamte Admi-
Um den Nutzen von OpenShift im Folgenden bes-       nistrationsaufwand, die Arbeiten vorab zur Instal-     Verfügbare Datenbanken im Backendbereich
ser nachvollziehen zu können, folgt hier ein kur-   lation, Wartung sowie Backuparbeiten werden            sind entweder MySQL oder SQLite. Mit 500 MB
zer Exkurs, was unter PaaS [3] zu verstehen ist     durch den Anbieter übernommen, wodurch mehr            Festplattenkapazität und 300 MB RAM sollten für
und wie man dessen Vorteile für seine eigenen       Zeit für die eigentliche Entwicklung der Software      kleine Applikationen zunächst genug Ressour-
Softwareprojekte nutzen kann.                       bleibt.                                                cen zur Verfügung stehen [7].


© freiesMagazin CC-BY-SA 3.0                                        Ausgabe 01/2012                                                                       1
P ROGRAMMIERUNG

Installation der Client-Tools                          sion derselben man seine Anwendung entwickelt,       Im aktuellen Verzeichnis, in dem man den Befehl
Um mit der Entwicklung zu beginnen, ist es vorab       da man natürlich nicht möchte, dass man seine        ausgeführt hat, findet man nun auch seine An-
notwendig, die Client-Tools (diese werden aktiv        Anwendung für PHP 5.3 entwickelt, der Server         wendung wieder.
auf github gehostet [8]) zu installieren, wie in der   aber nur PHP 5.2 als Laufzeitumgebung bietet.
                                                                                                            Im Ordner php (je nach Programmiersprache
Dokumentation nach der Registrierung beschrie-
                                                       Folgender Konsolenbefehl ist nötig:                  auch ein anderer Ordner, z. B. python etc.), wer-
ben. Für die Installation (die unter den gängigen
                                                                                                            den die eigentlichen Quelldateien angelegt, im
Linux-Distributionen, Mac OS X, und Windows            $ rhc -create -app -a fMBeispiel -t                  Ordner libs zusätzliche Bibliotheken, die man
mit Cygwin möglich ist) werden die Pakete ruby         php -5.3
                                                                                                            verwenden möchte.
in Version 1.8, rubygems- und ruby-dev-Pakete
benötigt, die unter Ubuntu 11.10 alle unter die-
sem Namen problemlos über den Paketmanager
installiert werden können. Eine detaillierte Instal-
lationsanleitung für die einzelnen Systeme liefert
die Webseite von OpenShift [9]. Die Client-Tools
belaufen sich beim Download auf maximal 2 MB
und basieren vollständig auf Ruby [10]. Die Ent-
wicklung erfolgt aktiv auf Github [11] unter einer
Red-Hat-Lizenz [12].

Von nun an sind alle folgenden Befehle nur mög-
lich, wenn die Client-Tools im vorigen Schritt er-
folgreich installiert worden sind. Anschließend
muss man sich überlegen, welchen Namen die
Anwendung bekommen soll und mit welcher                                      Anwendung erstellen, Programmiersprache definieren.
Programmiersprache man sie umsetzen möchte.
                                                       Nach Eingabe des vorab festgelegten Passwor-         Was in einzelne Ordner gehört und welche zu-
Hierfür legt man sich zunächst eine Domain an,
                                                       tes wird nun im Hintergrund ein Git-Repository,      sätzlichen Verzeichnisse z. B. für persistente Da-
welches man mit folgendem Befehl in der Konso-
                                                       also eine verteilte Versionsverwaltung [13] einge-   ten (Umgebungsvariablen u. ä.) angelegt werden
le erreicht:
                                                       richtet, welche eine vorgegebene Ordnerstruktur      können, listet die beiliegende README-Datei sehr
$ rhc -create - domain -n Domä nenname                 besitzt. Es kann unter Umständen ein paar Minu-      übersichtlich auf.
-l Loginname                                           ten dauern, bis alles im Hintergrund eingerichtet
                                                       wurde, zum Abschluss erhält man im Erfolgsfall       Anwendung per Git hochladen
Nun kann man endlich seine erste eigene An-            jedoch die Meldung, dass die Anwendung erfolg-       Nachdem man seine Quellcodes erstellt hat, ist
wendung erstellen, wobei man angeben muss in           reich erstellt wurde und man bekommt eine Git-       man nun in der Lage, die Anwendung über Git in
welcher Programmiersprache und in welcher Ver-         URL zu seinem weltweit erreichbaren Repository.      das Git-Repository zu heben.


© freiesMagazin CC-BY-SA 3.0                                          Ausgabe 01/2012                                                                       2
P ROGRAMMIERUNG

                                                                                                        Erstellung einer zugehörigen Daten-
                                                                                                        bank
                                                                                                        Für fast jede größere Applikation, die man ent-
                                                                                                        wickelt oder die man einfach in der Cloud lau-
                                                                                                        fen lassen möchte, wird früher oder später eine
                                                                                                        Datenbank benötigt. So verlangen beliebte Open
                                                                                                        Source-Projekte, wie Joomla, Wordpress, Drupal
                                                                                                        u. v. m., in der Regel eine MySQL-Datenbank, die
                                                                                                        performante Speicher- und Lesezugriffe erlaubt.
                                                                                                        In einer frühen Version von OpenShift war es le-
                                                                                                        diglich möglich, eine SQLite-Datenbank der An-
                                                                                                        wendung hinzuzufügen, was aber außer für Bei-
                                                                                                        spiele wie Mediawiki zu wenig praktikabel in der
                                                                                                        Anwendung war, weshalb Red Hat hier schnell
                                                                                                        eingelenkt hat und auch MySQL in die kostenlo-
                                                                                                        se Lösung der Express-Version integriert hat.

                                                                                                        Mittels des Befehls

                            Erstellte Webseite in der Cloud-Beispiel.                                   $ rhc -ctl -app -a " fMBeispiel " -e
                                                                                                        add -mysql -5.1

Dazu wechselt man zunächst in den Ordner der       werden die Dateien auf das entfernte Reposito-       wird hier eine MySQL-Datenbank in der Version
Anwendung:                                         ry in der Cloud übertragen. Von jetzt an ist jeder   5.1 installiert und nach kurzer Wartezeit erhält
                                                   in der Lage, die Anwendung von überall aufrufen      man die Bestätigung, dass die Datenbank er-
$ cd Anwendungsname                                zu können. Wenn man die URL zur Anwendung            folgreich erstellt werden konnte. Zusätzlich erhält
                                                   oder zu Git nicht mehr weiß, hilft der Befehl        man die benötigten Login-Daten für den Adminis-
Über den Befehl
                                                                                                        trator der Datenbank.
$ git commit -a -m " Meine erste                    $ rhc -user -info
Aenderung "                                                                                             Viele bevorzugen zum Verwalten ihrer Daten-
                                                                                                        bank, d. h. zum Anlegen von Tabellen, Spal-
landen die Dateien im lokalen Git-Repository und   Ruft man nun die URL im Browser auf, bekommt         tendefinitionen u. v. m., eine grafische Benutzer-
mittels                                            man seine Webseite mit den durchgeführten Än-        oberfläche, damit nicht alles über die Standard-
                                                   derungen zu sehen (Beispiel für diesen Arti-         Konsolenbefehle von MySQL durchgeführt wer-
$ git push                                         kel [14]).                                           den muss. Auch hierfür gibt es wiederum einen


© freiesMagazin CC-BY-SA 3.0                                       Ausgabe 01/2012                                                                       3
P ROGRAMMIERUNG

kurzen Befehl, der phpMyAdmin innerhalb von          bote für seine spezifischen Vorgaben vergleichen          [6] http://docs.redhat.com/docs/en-US/OpenShift_
OpenShift installiert.                               sollte.                                                      Flex/1.0/html/User_Guide/chap-OpenShift_
                                                                                                                  Overview.html
$ rhc -ctl -app -a " fMBeispiel " -e                 Fazit                                                    [7] https://docs.redhat.com/docs/en-US/OpenShift_
add -phpmyadmin -3.4                                 PaaS kann eine große Hilfe für diejenigen Ent-               Express/1.0/html/User_Guide/chap-User_Guide-
                                                     wickler sein, die schnell eine funktionierende               Application_Development.html#sect-User_Guide-
Danach      steht     unter     der  Adresse         Plattform mit allen notwendigen Tools und Pro-               Application_Development-Overview
http://URLdesProjektes/phpmyadmin        die         grammierumgebungen benötigen und sich nicht              [8] https://github.com/openshift/os-client-tools
Loginseite zur Verfügung, unter der man sich         leisten können, selber die komplette Installation        [9] https://openshift.redhat.com/app/express#
mit dem MySQL-Administrator anmelden kann.           und Wartung von Hand vorzunehmen.                            quickstart
Somit ist es nun möglich, z. B. ein Wordpress-       Mit OpenShift ist ein kostenloser Einstieg in diese     [10] https://rubygems.org/gems/rhc
Blog wie auf einem gewöhnlichen Webspace zu          Form des Cloud-Computing sehr leicht möglich,           [11] https://github.com/openshift/os-client-tools
installieren, indem man einfach die Installations-   man sollte aber beachten, dass man je nach Grö-         [12] https://github.com/openshift/os-client-tools/blob/
dateien von Wordpress in das Anwendungsver-          ße des Projektes schnell mit den Restriktionen               master/express/LICENSE
zeichnis legt und mittels der oben erwähnten Git-    der Ressourcen an Grenzen stoßen kann. Zu-              [13] http://de.wikipedia.org/wiki/Git
Befehle in die Cloud lädt.                           dem begibt man sich wie bei allen Cloud-Formen          [14] http://fmbeispiel-freiesmagazinbsp.rhcloud.com/
                                                     in die Abhängigkeit vom Anbieter, dass dieser die
Alternativen                                         bereitgestellte Plattform auch korrekt verwaltet
Wenn man bei seiner Anwendung an die Gren-           und diese tatsächlich so performant und sicher                       Autoreninformation
zen der kostenlosen Lösung von OpenShift Ex-         zur Verfügung steht, wie versprochen. Man soll-
                                                                                                                        Patrick Meyhöfer (Webseite) be-
press kommt, ist man nicht zwangsläufig an Red        te daher stets abwägen, ob man die Risiken des
                                                                                                                        schäftigt   sich    seit    längerem     mit
Hat gebunden, sondern kann sich mittlerweile         Fremdhostings auf sich nehmen will. Entschließt
                                                                                                                        Cloud-Lösungen. Zunächst als An-
zwischen mehreren Anbietern entscheiden.             man sich für einen PaaS-Anbieter, stehen einem
                                                                                                                        wender      von    SaaS-Lösungen.        Da
                                                     durchaus neue Wege der Softwareentwicklung
Weit verbreitete andere Lösungen haben auch                                                                             diese Form bereits viele Vorteile
                                                     zur Verfügung.
bekannten Firmen mit Angeboten wie:                                                                                     beinhaltete,      testete   er     verschie-
                                                                                                    L INKS              dene     PaaS-Lösungen           für   seine
  Google App Engine                                  [1] http://de.wikipedia.org/wiki/Software_as_a_                    Anwendungen aus und konnte mit
  Windows Azure                                          Service                                                        OpenShift erste Erfahrungen sam-
                                                     [2] https://openshift.redhat.com/app/                              meln. http://pmeyhoefer.de/blog
  Morph Application Platform
  Amazon Elastic Beanstalk                           [3] http://de.wikipedia.org/wiki/Platform_as_a_
                                                         Service
Dies sind nur einige der inzwischen zahlreichen      [4] http://openstack.org/
                                                                                                                           Diesen Artikel kommentieren
Vertreter, bei denen man im Einzelnen die Ange-      [5] https://openshift.redhat.com/app/express



© freiesMagazin CC-BY-SA 3.0                                          Ausgabe 01/2012                                                                                  4

Weitere ähnliche Inhalte

ODP
Ausfallsichere Kultur mit Plone
PDF
Kollaboratives Schreiben mit LaTeX
PDF
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
PDF
Li So G Osci
PDF
Docker - Automatisches Deployment für Linux-Instanzen
PDF
Nagios Conference 2007 | Pluginprogrammierung in Perl by Wolfgang Barth
ODP
Schlangenhochzeit in-der Wolke - Pyramid auf Google Appengine
PDF
SLAC 2008 Mit SUSE Linux glücklich werden
Ausfallsichere Kultur mit Plone
Kollaboratives Schreiben mit LaTeX
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
Li So G Osci
Docker - Automatisches Deployment für Linux-Instanzen
Nagios Conference 2007 | Pluginprogrammierung in Perl by Wolfgang Barth
Schlangenhochzeit in-der Wolke - Pyramid auf Google Appengine
SLAC 2008 Mit SUSE Linux glücklich werden

Was ist angesagt? (19)

PPTX
Vagrant, Puppet, Docker für Entwickler und Architekten
PDF
System- & Konfigurationsmanagement mit Foreman & Puppet
PDF
TYPO3 CMS 6.2 LTS - Die Neuerungen
PDF
Was ist Docker ?
PDF
TYPO3 CMS 6.0 - Die Neuerungen (typovision GmbH)
ODP
TYPO3: Extension news
PDF
Neos CMS - das Kompendium (Version 2.0.0)
PDF
systemd & Docker
PDF
TYPO3 CMS 7.0 - Die Neuerungen - pluswerk
PDF
Docker und Kubernetes Patterns & Anti-Patterns
PDF
OSDC 2010 | What's new in Apache 2.4? by Rainer Jung
PDF
Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)
PDF
TYPO3 CMS 7.1 - Die Neuerungen - pluswerk
PDF
Anleitung zur Installation von Tomcat für Opencms
PDF
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
PDF
Versionskontrolle mit Subversion und Git
PDF
TYPO3 CMS 7.4 - Die Neuerungen - pluswerk
PDF
Schweben auf Wolke7
PDF
Docker - Containervirtualisierung leichtgemacht
Vagrant, Puppet, Docker für Entwickler und Architekten
System- & Konfigurationsmanagement mit Foreman & Puppet
TYPO3 CMS 6.2 LTS - Die Neuerungen
Was ist Docker ?
TYPO3 CMS 6.0 - Die Neuerungen (typovision GmbH)
TYPO3: Extension news
Neos CMS - das Kompendium (Version 2.0.0)
systemd & Docker
TYPO3 CMS 7.0 - Die Neuerungen - pluswerk
Docker und Kubernetes Patterns & Anti-Patterns
OSDC 2010 | What's new in Apache 2.4? by Rainer Jung
Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)
TYPO3 CMS 7.1 - Die Neuerungen - pluswerk
Anleitung zur Installation von Tomcat für Opencms
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Versionskontrolle mit Subversion und Git
TYPO3 CMS 7.4 - Die Neuerungen - pluswerk
Schweben auf Wolke7
Docker - Containervirtualisierung leichtgemacht
Anzeige

Andere mochten auch (20)

PPTX
FICO Open Shift presentation
PDF
Red Hat OpenShift V3 Overview and Deep Dive
PPTX
Diapositivas de trabajo integrador
PPTX
Elementos componentes
PPTX
Netiqueta n ayu (2)
PDF
Markenführung und Strategie im digitalen Zeitalter
PPT
HARDWARE Y SOFTWARE
PDF
Jorge presentaciòn
PPTX
CSI:WP - Dem Windows Phone auf der Spur, Internetspecial: Windows Phone 8.1 V...
PPTX
Presentaciónnau
PDF
Carnaval2013
PPTX
Tecnologia educativa taller
PPTX
Risoterapia expocicion
PPTX
Autobiografía bryan cepeda
PPT
Grupo de robótica v3
PPTX
Prosatexte analysieren einleitung 1. sitzung
DOCX
Ejercicio algebra final
PDF
¿Que me gusta yulissa
PDF
Planificar con luz
DOC
Anteedentes
FICO Open Shift presentation
Red Hat OpenShift V3 Overview and Deep Dive
Diapositivas de trabajo integrador
Elementos componentes
Netiqueta n ayu (2)
Markenführung und Strategie im digitalen Zeitalter
HARDWARE Y SOFTWARE
Jorge presentaciòn
CSI:WP - Dem Windows Phone auf der Spur, Internetspecial: Windows Phone 8.1 V...
Presentaciónnau
Carnaval2013
Tecnologia educativa taller
Risoterapia expocicion
Autobiografía bryan cepeda
Grupo de robótica v3
Prosatexte analysieren einleitung 1. sitzung
Ejercicio algebra final
¿Que me gusta yulissa
Planificar con luz
Anteedentes
Anzeige

Ähnlich wie Openshift (20)

PDF
Projekte und Produkte in Python
PDF
freiesMagazin 09-2011
PDF
freiesMagazin 10-2011
PDF
Entwicklung mit Chef und Vagrant - PHPUG HH
PDF
Cloud Computing - PaaS
PDF
Living on the Edge - Microservices in der Wildnis
PDF
Continuous Integration mit Hudson (JUG Mannheim, 27.01.2010)
PDF
Eclipse Magazin 16 - Die Stärke der Drei
PDF
Referat: Architektur und Entwicklung mobiler Anwendungen
PDF
Technologien 2011 Einblick in die Zukunft von Citrix
PDF
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
PDF
JM 12/08 - OSGi in kleinen Dosen 1
PDF
2011 09-09 activiti
PDF
382726314 X Php5 In 14 Tagen (Ddt)
PDF
Ruby on Rails - Eine kurze Einführung
KEY
Vortrag IT der Piratenfraktion im AGH
PDF
Django - The Web framework for perfectionists with deadlines
KEY
Mehrserver Lösungen
PDF
20110119 activiti jughh
PDF
20110311 activiti mathema
Projekte und Produkte in Python
freiesMagazin 09-2011
freiesMagazin 10-2011
Entwicklung mit Chef und Vagrant - PHPUG HH
Cloud Computing - PaaS
Living on the Edge - Microservices in der Wildnis
Continuous Integration mit Hudson (JUG Mannheim, 27.01.2010)
Eclipse Magazin 16 - Die Stärke der Drei
Referat: Architektur und Entwicklung mobiler Anwendungen
Technologien 2011 Einblick in die Zukunft von Citrix
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
JM 12/08 - OSGi in kleinen Dosen 1
2011 09-09 activiti
382726314 X Php5 In 14 Tagen (Ddt)
Ruby on Rails - Eine kurze Einführung
Vortrag IT der Piratenfraktion im AGH
Django - The Web framework for perfectionists with deadlines
Mehrserver Lösungen
20110119 activiti jughh
20110311 activiti mathema

Openshift

  • 1. P ROGRAMMIERUNG OpenShift – Entwickeln in der Cloud von Patrick Meyhöfer gal, ob im Open-Source-Umfeld oder Bereits jetzt sind fast alle wesentlichen Kompo- PaaS am Beispiel von OpenShift E im Business-Bereich: Überall domi- niert in irgendeiner Form das The- ma Cloud-Computing die Medien. Deren un- nenten von Open Source-Technologien als Fun- dament der Cloud-Technologien zu sehen. Sie beruhen auf dem Linux-Kernel, Virtualisierungs- Die Vorteile des Konzepts sollen im Folgenden am Beispiel von OpenShift vorgestellt werden. Der Grund ist, dass Red Hat für kleine Ent- schätzbare Vorteile, durch geschickte Mar- technologien wie Xen oder KVM und Datenbank- wicklungsprojekte eine Variante mit dem Namen ketingaktivitäten oft besonders hervorgeho- lösungen wie PostgreSQL oder MySQL (siehe „OpenShift Express“ [5] komplett kostenlos an- ben, sollte man natürlich auch einer kriti- hierzu auch [4]). Wollte man bisher auf herkömm- bietet. In der Praxis reserviert hier Red Hat bei schen Analyse für den jeweiligen Einsatz- liche Weise, z. B. eine Webanwendung, bereit- Amazon Web Services EC2 eine Instanz, auf zweck unterziehen. Im privaten Umfeld nutzt stellen, musste man sich i. d. R. im Vorfeld bereits der dann die Anwendung später läuft. Hat man sicher der eine oder andere diverse Cloud- gründlich Gedanken machen, auf welcher Ba- im weiteren Verlauf zusätzliche Wünsche, kann Lösungen, die direkt an den einfachen Pri- sis man diese Software entwickeln und anschlie- man auch auf ein kostenpflichtiges Modul na- vatanwender gerichtet sind. Man denke an ßend zur Verfügung stellen wollte. Es war also mens „Flex“ upgraden. Dies bietet u. a. Cluster- Google Mail, Dropbox, Evernote usw. Diese notwendig, bereits vor dem Bereitstellen seiner erstellung, Benutzeroberfläche statt Kommando- Lösungen fasst man alle unter der Rubrik Webanwendung eine eigene Plattform einzurich- zeile und vieles mehr. Näheres hierzu findet man Software-as-a-Service (kurz: SaaS [1]) zusam- ten, über die man diese den Benutzern zugäng- im „OpenShift UserGuide“ [6]). Für den Anfang men. lich machen kann. Das heißt, es wurden meist reicht aber die kostenlose Lösung zum Einstieg Webserver benötigt, Programmierumgebungen in das Thema vollkommen aus. Dieser Beitrag richtet sich jedoch an eine wie PHP, JEE u. v. m. mussten installiert und kon- eher technisch orientierte Sichtweise des Cloud- figuriert werden und wenn eine Anwendung sehr Zur Programmierung stehen folgende Sprachen Computing, nämlich der so genannten Platform- schnell populär wurde, reichten die Ressourcen zur Verfügung: as-a-Service (PaaS), mit der der normale An- nicht aus, wodurch wieder Anpassungen in der wender eher selten in Berührung kommt, die Skalierung/Optimierung etc. notwendig waren. Java 6 EE aber für Entwickler durchaus von Interesse sein PHP kann. Ein interessantes Angebot liefert hierfür der Softwarehersteller Red Hat mit seinem Ange- Mit der Idee von PaaS soll diese Arbeit nun Perl bot OpenShift [2]. durch die Cloud wahrgenommen werden. Der Python Entwickler soll sich einzig um das Entwickeln sei- Ruby Kurzer Exkurs: PaaS ner Anwendung kümmern, der gesamte Admi- Um den Nutzen von OpenShift im Folgenden bes- nistrationsaufwand, die Arbeiten vorab zur Instal- Verfügbare Datenbanken im Backendbereich ser nachvollziehen zu können, folgt hier ein kur- lation, Wartung sowie Backuparbeiten werden sind entweder MySQL oder SQLite. Mit 500 MB zer Exkurs, was unter PaaS [3] zu verstehen ist durch den Anbieter übernommen, wodurch mehr Festplattenkapazität und 300 MB RAM sollten für und wie man dessen Vorteile für seine eigenen Zeit für die eigentliche Entwicklung der Software kleine Applikationen zunächst genug Ressour- Softwareprojekte nutzen kann. bleibt. cen zur Verfügung stehen [7]. © freiesMagazin CC-BY-SA 3.0 Ausgabe 01/2012 1
  • 2. P ROGRAMMIERUNG Installation der Client-Tools sion derselben man seine Anwendung entwickelt, Im aktuellen Verzeichnis, in dem man den Befehl Um mit der Entwicklung zu beginnen, ist es vorab da man natürlich nicht möchte, dass man seine ausgeführt hat, findet man nun auch seine An- notwendig, die Client-Tools (diese werden aktiv Anwendung für PHP 5.3 entwickelt, der Server wendung wieder. auf github gehostet [8]) zu installieren, wie in der aber nur PHP 5.2 als Laufzeitumgebung bietet. Im Ordner php (je nach Programmiersprache Dokumentation nach der Registrierung beschrie- Folgender Konsolenbefehl ist nötig: auch ein anderer Ordner, z. B. python etc.), wer- ben. Für die Installation (die unter den gängigen den die eigentlichen Quelldateien angelegt, im Linux-Distributionen, Mac OS X, und Windows $ rhc -create -app -a fMBeispiel -t Ordner libs zusätzliche Bibliotheken, die man mit Cygwin möglich ist) werden die Pakete ruby php -5.3 verwenden möchte. in Version 1.8, rubygems- und ruby-dev-Pakete benötigt, die unter Ubuntu 11.10 alle unter die- sem Namen problemlos über den Paketmanager installiert werden können. Eine detaillierte Instal- lationsanleitung für die einzelnen Systeme liefert die Webseite von OpenShift [9]. Die Client-Tools belaufen sich beim Download auf maximal 2 MB und basieren vollständig auf Ruby [10]. Die Ent- wicklung erfolgt aktiv auf Github [11] unter einer Red-Hat-Lizenz [12]. Von nun an sind alle folgenden Befehle nur mög- lich, wenn die Client-Tools im vorigen Schritt er- folgreich installiert worden sind. Anschließend muss man sich überlegen, welchen Namen die Anwendung bekommen soll und mit welcher Anwendung erstellen, Programmiersprache definieren. Programmiersprache man sie umsetzen möchte. Nach Eingabe des vorab festgelegten Passwor- Was in einzelne Ordner gehört und welche zu- Hierfür legt man sich zunächst eine Domain an, tes wird nun im Hintergrund ein Git-Repository, sätzlichen Verzeichnisse z. B. für persistente Da- welches man mit folgendem Befehl in der Konso- also eine verteilte Versionsverwaltung [13] einge- ten (Umgebungsvariablen u. ä.) angelegt werden le erreicht: richtet, welche eine vorgegebene Ordnerstruktur können, listet die beiliegende README-Datei sehr $ rhc -create - domain -n Domä nenname besitzt. Es kann unter Umständen ein paar Minu- übersichtlich auf. -l Loginname ten dauern, bis alles im Hintergrund eingerichtet wurde, zum Abschluss erhält man im Erfolgsfall Anwendung per Git hochladen Nun kann man endlich seine erste eigene An- jedoch die Meldung, dass die Anwendung erfolg- Nachdem man seine Quellcodes erstellt hat, ist wendung erstellen, wobei man angeben muss in reich erstellt wurde und man bekommt eine Git- man nun in der Lage, die Anwendung über Git in welcher Programmiersprache und in welcher Ver- URL zu seinem weltweit erreichbaren Repository. das Git-Repository zu heben. © freiesMagazin CC-BY-SA 3.0 Ausgabe 01/2012 2
  • 3. P ROGRAMMIERUNG Erstellung einer zugehörigen Daten- bank Für fast jede größere Applikation, die man ent- wickelt oder die man einfach in der Cloud lau- fen lassen möchte, wird früher oder später eine Datenbank benötigt. So verlangen beliebte Open Source-Projekte, wie Joomla, Wordpress, Drupal u. v. m., in der Regel eine MySQL-Datenbank, die performante Speicher- und Lesezugriffe erlaubt. In einer frühen Version von OpenShift war es le- diglich möglich, eine SQLite-Datenbank der An- wendung hinzuzufügen, was aber außer für Bei- spiele wie Mediawiki zu wenig praktikabel in der Anwendung war, weshalb Red Hat hier schnell eingelenkt hat und auch MySQL in die kostenlo- se Lösung der Express-Version integriert hat. Mittels des Befehls Erstellte Webseite in der Cloud-Beispiel. $ rhc -ctl -app -a " fMBeispiel " -e add -mysql -5.1 Dazu wechselt man zunächst in den Ordner der werden die Dateien auf das entfernte Reposito- wird hier eine MySQL-Datenbank in der Version Anwendung: ry in der Cloud übertragen. Von jetzt an ist jeder 5.1 installiert und nach kurzer Wartezeit erhält in der Lage, die Anwendung von überall aufrufen man die Bestätigung, dass die Datenbank er- $ cd Anwendungsname zu können. Wenn man die URL zur Anwendung folgreich erstellt werden konnte. Zusätzlich erhält oder zu Git nicht mehr weiß, hilft der Befehl man die benötigten Login-Daten für den Adminis- Über den Befehl trator der Datenbank. $ git commit -a -m " Meine erste $ rhc -user -info Aenderung " Viele bevorzugen zum Verwalten ihrer Daten- bank, d. h. zum Anlegen von Tabellen, Spal- landen die Dateien im lokalen Git-Repository und Ruft man nun die URL im Browser auf, bekommt tendefinitionen u. v. m., eine grafische Benutzer- mittels man seine Webseite mit den durchgeführten Än- oberfläche, damit nicht alles über die Standard- derungen zu sehen (Beispiel für diesen Arti- Konsolenbefehle von MySQL durchgeführt wer- $ git push kel [14]). den muss. Auch hierfür gibt es wiederum einen © freiesMagazin CC-BY-SA 3.0 Ausgabe 01/2012 3
  • 4. P ROGRAMMIERUNG kurzen Befehl, der phpMyAdmin innerhalb von bote für seine spezifischen Vorgaben vergleichen [6] http://docs.redhat.com/docs/en-US/OpenShift_ OpenShift installiert. sollte. Flex/1.0/html/User_Guide/chap-OpenShift_ Overview.html $ rhc -ctl -app -a " fMBeispiel " -e Fazit [7] https://docs.redhat.com/docs/en-US/OpenShift_ add -phpmyadmin -3.4 PaaS kann eine große Hilfe für diejenigen Ent- Express/1.0/html/User_Guide/chap-User_Guide- wickler sein, die schnell eine funktionierende Application_Development.html#sect-User_Guide- Danach steht unter der Adresse Plattform mit allen notwendigen Tools und Pro- Application_Development-Overview http://URLdesProjektes/phpmyadmin die grammierumgebungen benötigen und sich nicht [8] https://github.com/openshift/os-client-tools Loginseite zur Verfügung, unter der man sich leisten können, selber die komplette Installation [9] https://openshift.redhat.com/app/express# mit dem MySQL-Administrator anmelden kann. und Wartung von Hand vorzunehmen. quickstart Somit ist es nun möglich, z. B. ein Wordpress- Mit OpenShift ist ein kostenloser Einstieg in diese [10] https://rubygems.org/gems/rhc Blog wie auf einem gewöhnlichen Webspace zu Form des Cloud-Computing sehr leicht möglich, [11] https://github.com/openshift/os-client-tools installieren, indem man einfach die Installations- man sollte aber beachten, dass man je nach Grö- [12] https://github.com/openshift/os-client-tools/blob/ dateien von Wordpress in das Anwendungsver- ße des Projektes schnell mit den Restriktionen master/express/LICENSE zeichnis legt und mittels der oben erwähnten Git- der Ressourcen an Grenzen stoßen kann. Zu- [13] http://de.wikipedia.org/wiki/Git Befehle in die Cloud lädt. dem begibt man sich wie bei allen Cloud-Formen [14] http://fmbeispiel-freiesmagazinbsp.rhcloud.com/ in die Abhängigkeit vom Anbieter, dass dieser die Alternativen bereitgestellte Plattform auch korrekt verwaltet Wenn man bei seiner Anwendung an die Gren- und diese tatsächlich so performant und sicher Autoreninformation zen der kostenlosen Lösung von OpenShift Ex- zur Verfügung steht, wie versprochen. Man soll- Patrick Meyhöfer (Webseite) be- press kommt, ist man nicht zwangsläufig an Red te daher stets abwägen, ob man die Risiken des schäftigt sich seit längerem mit Hat gebunden, sondern kann sich mittlerweile Fremdhostings auf sich nehmen will. Entschließt Cloud-Lösungen. Zunächst als An- zwischen mehreren Anbietern entscheiden. man sich für einen PaaS-Anbieter, stehen einem wender von SaaS-Lösungen. Da durchaus neue Wege der Softwareentwicklung Weit verbreitete andere Lösungen haben auch diese Form bereits viele Vorteile zur Verfügung. bekannten Firmen mit Angeboten wie: beinhaltete, testete er verschie- L INKS dene PaaS-Lösungen für seine Google App Engine [1] http://de.wikipedia.org/wiki/Software_as_a_ Anwendungen aus und konnte mit Windows Azure Service OpenShift erste Erfahrungen sam- [2] https://openshift.redhat.com/app/ meln. http://pmeyhoefer.de/blog Morph Application Platform Amazon Elastic Beanstalk [3] http://de.wikipedia.org/wiki/Platform_as_a_ Service Dies sind nur einige der inzwischen zahlreichen [4] http://openstack.org/ Diesen Artikel kommentieren Vertreter, bei denen man im Einzelnen die Ange- [5] https://openshift.redhat.com/app/express © freiesMagazin CC-BY-SA 3.0 Ausgabe 01/2012 4