P ROGRAMMIERUNGOpenShift – Entwickeln in der Cloud                        von Patrick Meyhöfer      gal, ob im Open-Source...
P ROGRAMMIERUNGInstallation der Client-Tools                          sion derselben man seine Anwendung entwickelt,      ...
P ROGRAMMIERUNG                                                                                                        Ers...
P ROGRAMMIERUNGkurzen Befehl, der phpMyAdmin innerhalb von          bote für seine spezifischen Vorgaben vergleichen       ...
Nächste SlideShare
Wird geladen in …5
×

Openshift

542 Aufrufe

Veröffentlicht am

freiesMagazin 01/2012

0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
542
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
3
Aktionen
Geteilt
0
Downloads
5
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Openshift

  1. 1. P ROGRAMMIERUNGOpenShift – 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 OpenShiftE 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 Namenketingaktivitä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 beischen Analyse für den jeweiligen Einsatz- liche Weise, z. B. eine Webanwendung, bereit- Amazon Web Services EC2 eine Instanz, aufzweck unterziehen. Im privaten Umfeld nutzt stellen, musste man sich i. d. R. im Vorfeld bereits der dann die Anwendung später läuft. Hat mansicher der eine oder andere diverse Cloud- gründlich Gedanken machen, auf welcher Ba- im weiteren Verlauf zusätzliche Wünsche, kannLö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 manSoftware-as-a-Service (kurz: SaaS [1]) zusam- ten, über die man diese den Benutzern zugäng- im „OpenShift UserGuide“ [6]). Für den Anfangmen. 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 SprachenComputing, 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 derwender eher selten in Berührung kommt, die Skalierung/Optimierung etc. notwendig waren. Java 6 EEaber für Entwickler durchaus von Interesse sein PHPkann. Ein interessantes Angebot liefert hierfürder Softwarehersteller Red Hat mit seinem Ange- Mit der Idee von PaaS soll diese Arbeit nun Perlbot OpenShift [2]. durch die Cloud wahrgenommen werden. Der Python Entwickler soll sich einzig um das Entwickeln sei- RubyKurzer 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 Backendbereichser nachvollziehen zu können, folgt hier ein kur- lation, Wartung sowie Backuparbeiten werden sind entweder MySQL oder SQLite. Mit 500 MBzer Exkurs, was unter PaaS [3] zu verstehen ist durch den Anbieter übernommen, wodurch mehr Festplattenkapazität und 300 MB RAM sollten fürund 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. 2. P ROGRAMMIERUNGInstallation der Client-Tools sion derselben man seine Anwendung entwickelt, Im aktuellen Verzeichnis, in dem man den BefehlUm 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 ProgrammierspracheDokumentation 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, imLinux-Distributionen, Mac OS X, und Windows $ rhc -create -app -a fMBeispiel -t Ordner libs zusätzliche Bibliotheken, die manmit Cygwin möglich ist) werden die Pakete ruby php -5.3 verwenden möchte.in Version 1.8, rubygems- und ruby-dev-Paketebenötigt, die unter Ubuntu 11.10 alle unter die-sem Namen problemlos über den Paketmanagerinstalliert werden können. Eine detaillierte Instal-lationsanleitung für die einzelnen Systeme liefertdie Webseite von OpenShift [9]. Die Client-Toolsbelaufen sich beim Download auf maximal 2 MBund basieren vollständig auf Ruby [10]. Die Ent-wicklung erfolgt aktiv auf Github [11] unter einerRed-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ßendmuss man sich überlegen, welchen Namen dieAnwendung 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 werdenle 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 hochladenNun kann man endlich seine erste eigene An- jedoch die Meldung, dass die Anwendung erfolg- Nachdem man seine Quellcodes erstellt hat, istwendung erstellen, wobei man angeben muss in reich erstellt wurde und man bekommt eine Git- man nun in der Lage, die Anwendung über Git inwelcher 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. 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.1Dazu wechselt man zunächst in den Ordner der werden die Dateien auf das entfernte Reposito- wird hier eine MySQL-Datenbank in der VersionAnwendung: 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 -infoAenderung " 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. 4. P ROGRAMMIERUNGkurzen 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-Overviewhttp://URLdesProjektes/phpmyadmin die grammierumgebungen benötigen und sich nicht [8] https://github.com/openshift/os-client-toolsLoginseite 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. quickstartSomit ist es nun möglich, z. B. ein Wordpress- Mit OpenShift ist ein kostenloser Einstieg in diese [10] https://rubygems.org/gems/rhcBlog wie auf einem gewöhnlichen Webspace zu Form des Cloud-Computing sehr leicht möglich, [11] https://github.com/openshift/os-client-toolsinstallieren, 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/LICENSEzeichnis legt und mittels der oben erwähnten Git- der Ressourcen an Grenzen stoßen kann. Zu- [13] http://de.wikipedia.org/wiki/GitBefehle 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 dieAlternativen bereitgestellte Plattform auch korrekt verwaltetWenn man bei seiner Anwendung an die Gren- und diese tatsächlich so performant und sicher Autoreninformationzen 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 mitHat 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 SoftwareentwicklungWeit 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_ ServiceDies sind nur einige der inzwischen zahlreichen [4] http://openstack.org/ Diesen Artikel kommentierenVertreter, bei denen man im Einzelnen die Ange- [5] https://openshift.redhat.com/app/express© freiesMagazin CC-BY-SA 3.0 Ausgabe 01/2012 4

×