Die Red Hat OpenShift Cloud zählt zu den Cloud-Computing-Plattformen. Beim Cloud Computing werden Anwendungen auf entfernten Servern gehostet und ausgeführt. Die wichtigsten Vorteile sind: Es muss keine eigene IT vorhanden sein und gewartet werden, die Anwendung kann bei Bedarf ("On-Demand") leicht hoch skaliert werden und es werden optimale Internet-Zugriffsgeschwindigkeiten angeboten.
Im Folgenden werden einige erste Schritte mit Red Hat OpenShift unter Windows demonstriert.
Es gibt verschiedene Kategorisierungen für Cloud-Computing-Systeme, zum Beispiel die beiden folgenden.
Kategorisierung nach Zugänglichkeit:
Private Cloud | Nur für bestimmte Anwender nutzbar, meistens nur innerhalb einer Firma. Kann bereits wesentliche Kosteneinsparungen bringen. Daten müssen nicht außer Haus gegeben werden. Beispiel: Red Hat CloudForms |
Public Cloud | Öffentlich zugänglich und gegen Bezahlung nutzbar. Bietet wesentlich größeres Sparpotenzial. Könnte wegen der Datenüberlassung kritischer sein. Beispiele: Amazon EC2, Red Hat OpenShift Cloud, Google App Engine (GAE), Microsoft Azure |
Kategorisierung nach Architekturebene bzw. Serviceart:
Software as a Service (SaaS) |
Software wird als Dienstleistung basierend auf Internettechniken angeboten. Beispiele: Web-E-Mail-Dienste, Google Apps, Salesforce CRM, Microsoft Office 365 |
Platform as a Service (PaaS) |
Eine integrierte Laufzeit- (und evtl. auch Entwicklungs-)umgebung wird als Dienst für eigene Programme zur Verfügung gestellt. In der Regel gibt es bestimmte Einschränkungen (z.B. Programmiersprache). Beispiele: Red Hat OpenShift, Google App Engine (GAE), Heroku, Microsoft Azure |
Infrastructure as a Service (IaaS) |
Eine Rechnerinfrastruktur wird als Dienst zur Verfügung gestellt. Meistens können verschiedene Betriebssysteme und beliebige Programmiersprachen eingesetzt werden. Beispiel: Amazon EC2 |
Beispiele für PaaS-Anbieter für Java-Anwendungen (die Liste ist unvollständig):
Red Hat OpenShift ist eine Platform-as-a-Service-Cloud (PaaS) auf der Basis von Red Hat Enterprise Linux. OpenShift steht in verschiedenen Varianten zur Verfügung. Die ursprünglichen Angebote waren (mittlerweile gibt es andere ähnliche Angebote):
Red-Hat-OpenShift-Account:
Beantragen Sie auf der OpenShift-Webseite https://www.openshift.com einen Account unter "Sign up". Lesen Sie sich vorher die Nutzungsbedingungen durch.
Falls Sie nicht die "Confirm your Red Hat account"-E-Mail erhalten: Sehen Sie nach, ob sie vielleicht im Spam-Ordner gelandet ist.
Client Tools:
Installieren Sie die für OpenShift benötigten Client-Tools,
entweder wie beschrieben unter
https://developers.openshift.com/index.html,
https://developers.openshift.com/en/getting-started-overview.html und
https://developers.openshift.com/en/managing-client-tools.html,
oder wie im Folgenden beschrieben.
Git:
Git ist ähnlich wie Mercurial (hg) ein verteiltes Versionskontrollsystem (DVCS, Distributed Version Control System).
Falls Sie noch keinen Git-Client installiert haben: Downloaden Sie die Git-Installationsdatei für Windows (z.B. Git-1.9.0-preview20140217.exe) von http://git-scm.com und führen Sie die Installation aus. Wichtig: Wählen Sie "Run Git from the Windows Command Prompt" und kontrollieren Sie, dass die Git-Installation die Windows-PATH-Environmentvariable korrekt erweitert hat.
Sehen Sie sich die Dokumentation zu Git an: http://git-scm.com/documentation.
Führen Sie für einen Kurztest folgende Kommandos im Windows-Kommandozeilenfenster aus:
path
git --version
git --help
git config -l | sort
Ruby:
Installieren Sie Ruby mit dem "RubyInstaller for Windows" (z.B. rubyinstaller-1.9.3-p545.exe) von http://rubyinstaller.org. Wichtig: Wählen Sie "Add Ruby executables to your PATH" und kontrollieren Sie, dass die Ruby-Installation die Windows-PATH-Environmentvariable korrekt erweitert hat.
Führen Sie für einen Kurztest folgende Kommandos im Windows-Kommandozeilenfenster aus:
path
ruby --version
ruby --help
ruby -e 'puts "Welcome to Ruby"'
RHC-Ruby-Paket und RHC-Setup:
Führen Sie folgende Kommandos im Windows-Kommandozeilenfenster aus:
gem install rhc
gem update rhc
rhc setup
rhc -h
rhc account
type %USERPROFILE%\.openshift\express.conf
dir %USERPROFILE%\.ssh
OpenShift-Doku:
Sehen Sie sich die OpenShift-Doku an: https://docs.openshift.org/origin-m4/oo_user_guide.html.
Falls Sie im Folgenden diese Fehlermeldung erhalten:
A secure connection could not be established to the server (SSL_connect returned=1 errno=0 state=SSLv3 read server hello A: sslv3 alert handshake failure)
Dann ersetzen Sie in Ihrer %USERPROFILE%\.openshift\express.conf die Zeile
#ssl_version=...
durch:
ssl_version=tlsv1
Richten Sie eine rhc-Domain (bzw. einen rhc-Namespace) ein, der später ein Teil der Webadressen-URL wird.
Wählen Sie dafür einen Namen, der die wesentlichen Bestandteile Ihrer Internet-Domainadresse enthält,
aber kein Minuszeichen enthält. Dieser Name ist im Folgenden mit {myrhcdomain} gemeint.
Ersetzen Sie im Folgenden überall {myrhcdomain} durch Ihren gewählten rhc-Domain-Namen,
sowie überall {Meine@Email.Adresse} und {MeinRhcPasswort} durch Ihre rhc-Accountdaten.
Führen Sie folgende Kommandos im Windows-Kommandozeilenfenster aus:
rhc -h
rhc account
rhc create-domain -h
rhc create-domain -l {Meine@Email.Adresse} -p {MeinRhcPasswort} -n {myrhcdomain}
rhc domain -h
rhc domain list
rhc domain show
Sehen Sie sich die Liste der erlaubten Projekttypen an:
rhc cartridge list
Darin enthalten ist z.B. "jbossas-7".
Erstellen Sie eine rhc-App mit dem Namen myfirstrhcapp und vom Typ jbossas-7:
md \Tools\rhc
cd \Tools\rhc
rhc create-app -h
rhc create-app -l {Meine@Email.Adresse} -p {MeinRhcPasswort} -a myfirstrhcapp -t jbossas-7
rhc apps
rhc app -h
rhc app show -a myfirstrhcapp
Rufen Sie die im Internet eingerichtete Anwendung auf (ersetzen Sie {myrhcdomain} durch Ihren rhc-Domainnamen):
Sehen Sie sich im Windows-Kommandozeilenfenster das neu erstellte Verzeichnis und die Maven-pom.xml an:
cd \Tools\rhc\myfirstrhcapp
type pom.xml
tree /F
[\Tools\rhc\myfirstrhcapp] |- [.git] | '- ... |- [.openshift] | '- ... |- [deployments] | '- ... |- [src] | '- [main] | |- [java] | | '- ... | |- [resources] | | '- ... | '- [webapp] | |- [images] | | '- ... | |- [WEB-INF] | | '- web.xml | |- health.jsp | |- index.html | '- snoop.jsp |- .gitignore |- pom.xml '- README
Sehen Sie sich die README-Datei an:
type README
Sehen Sie sich an:
rhc tail -h
rhc tail -a myfirstrhcapp
rhc threaddump -h
rhc threaddump -a myfirstrhcapp
Wechseln Sie in das Webapp-Verzeichnis \Tools\rhc\myfirstrhcapp\src\main\webapp und fügen Sie eine beliebige neue JSP-Datei mit dem Namen index.jsp hinzu, zum Beispiel mit folgendem Inhalt:
<%@ page import="java.io.*" %> <%@ page import="java.util.*" %> <%@ page import="java.util.jar.*" %> <html> <body> <h2>Hallo Red Hat Cloud!</h2> <% String pth = getServletConfig().getServletContext().getRealPath( "/" ); if( !pth.endsWith( "/" ) && !pth.endsWith( "\\" ) ) pth += "/"; File mf = new File( pth + "META-INF/MANIFEST.MF" ); if( mf.exists() ) { out.println( "<h4>Attribute in der META-INF/MANIFEST.MF:</h4>" ); Manifest manifest = new Manifest( new FileInputStream( mf ) ); for( Map.Entry<Object,Object> attr : manifest.getMainAttributes().entrySet() ) { out.println( attr + "<br>" ); } } %> </body> </html>
Konfigurieren Sie Git (ersetzen Sie alle {...}-Ausdrücke):
git --help
git config -l | sort
git config --global user.name "{Vorname} {Nachname}"
git config --global user.email "{Meine@Email.Adresse}"
git config --global core.editor notepad
git config -l | sort
Commiten und pushen Sie Ihre Änderungen:
cd \Tools\rhc\myfirstrhcapp
git status
git add *
git commit -m "Neue JSP hinzugefuegt"
git status
git push
git status
git log
Rufen Sie die neu deployte JSP übers Internet auf:
http://myfirstrhcapp-{myrhcdomain}.rhcloud.com/index.jsp
Sehen Sie sich auch an:
http://myfirstrhcapp-{myrhcdomain}.rhcloud.com/snoop.jsp
Sie können das gesamte Projekt inklusive der rhc-Konfiguration leicht wiederherstellen bzw. auf einem anderen PC installieren.
Führen Sie folgende Kommandos im Windows-Kommandozeilenfenster aus:
md \Tools\rhc
cd \Tools\rhc
rhc git-clone -h
rhc git-clone -a myfirstrhcapp
cd \Tools\rhc\myfirstrhcapp
tree /F
Ähnlich einfach wie JSPs können Sie auch Java-Sourcen hinzufügen. Um Skalierbarkeit zu gewährleisten, sollten Sie eigenes Thread-Handling und statische Zustandsattribute vermeiden.
Alternativ zum Deployment per Maven-Struktur und pom.xml können Sie auch fertige WAR-Dateien deployen. Dies erfolgt über Kommandos, die per "Marker Files" mitgeteilt werden.
Sehen Sie sich mit
rhc cartridge list
die Liste der "cartridges" für Datenbanken und Datenbankclients an. Darin enthalten sind z.B.: mongodb, postgresql, mysql und phpmyadmin.
Sehen Sie sich die OpenShift-Doku an: https://docs.openshift.org/origin-m4/oo_user_guide.html.
Sehen Sie sich auch an: Running Any Docker Image On OpenShift Origin: https://blog.openshift.com/running-any-docker-image-on-openshift-origin/.