Die elastische JVM

Jelastic: PaaS-Newcomer zwischen Ost und West

Thomas Louis, Timo Mankartz

Jelastic ist der neue Stern am Himmel der PaaS-Anbieter, Gewinner des Oracle Duke Awards 2012 [1] und zählt zu den russischen Top-Ten-Start-ups 2012. Jelastic ist eine wegweisende Platform-as-a-Service-Cloud-Umgebung für Java- und PHP-Applikationen sowie für virtuelle Server mit root-Zugriff. Durch den intuitiven Topology-Manager ist der Aufbau eigener hochverfügbarer und skalierbarer Cloud-Umgebungen für die eigene Applikation ein Kinderspiel.

Wie viele PaaS-Anbieter brauchen wir noch? Jeden Tag werden wir mit neuen Lösungen und Technologien konfrontiert, und überall auf der Welt zeichnet sich der gleiche Trend ab: weg von dedizierten Plattformen, hin zu lösungsorientierten Systemen. Jelastic ist ein amerikanisch-ukrainisch-russisch geprägtes Unternehmen, gegründet 2011 in der Ukraine von Ruslan Synytskyy, einem ehemaligen Softwarearchitekten der ukrainischen National Space Agency. Jelastic hat sich das Ziel gesetzt, eine PaaS für Java-Entwickler und Hosting-Provider bereitzustellen, die in der Lage ist, Anwendungen automatisch zu skalieren und benötigte Serverressourcen bereitzustellen sowie anzupassen. Jelastic selbst nennt dieses Feature der vertikalen und horizontalen Skalierung „smart scaling“. Das Team von Jelastic hat einige sehr prominente Unterstützer um sich versammelt, darunter Michael „Monty“ Widenius, Erfinder von MySQL und MariaDB oder auch Igor Sysoev, den Macher von NGINX. Selbst James Gosling [2] ist überzeugter Nutzer und Anhänger dieser neuen Java PaaS. Die Jelastic PaaS wurde ursprünglich für Java-Anwendungen konzipiert und bietet hier dem Nutzer auch das größere Feature-Set. Der Vollständigkeit halber sei jedoch erwähnt, dass Jelastic neuerdings auch Anwendungen basierend auf Apache2 oder dem NGINX-Webserver in Verbindung mit PHP hosten kann.

Hosting-Modell

Das Hosting überlässt Jelastic spezialisierten, regionalen Hosting-Service-Providern ([3], Tabelle 1). Dabei setzt Jelastic meist auf große Anbieter, die bereits Erfahrungen im Bereich Cloud haben und die örtlichen Regularien erfüllen. Gerade in Deutschland sind Nutzer von Cloud-Services immer wieder mit rechtlichen Fragen (Compliance-Themen) konfrontiert, die eine im Ausland gehostete Nutzung von Cloud-Services fast unmöglich macht. Neben der Jelastic PaaS lassen sich über die Service-Provider meist auch Zusatzservices buchen, wie z. B. SSL-Zertifikate oder Support- und Service-Level.

Zum jetzigen Zeitpunkt ist die Jelastic PaaS nur als Public Cloud verfügbar. Jedoch ist es möglich, gemeinsam mit dem lokalen Hosting-Provider Jelastic als Private Cloud im eigenen Unternehmen zu etablieren.

Land Anbieter Jelastic-Version URL
Deutschland dogado v. 1.8.6 www.dogado.de
USA ServInt Inc. v. 1.8.6 www.servint.com
Großbritannien Layershift v. 1.8.6 www.layershift.co.uk
Russland Russonyx v. 1.8.6 www.rusonyx.ru
Japan Tsukaero v. 1.8.6 www.tsukaero.net
Finnland Planeetta Internet v. 1.8.6 beta www.planeetta.net
Brasilien Websolute v. 1.8.6 beta

www.websolute.com.br

Tabelle 1: Lokale Hosting-Provider

Die Grundlage für den Betrieb der Jelastic PaaS bildet nicht die vom lokalen Hosting-Provider eingesetzte Hardware allein, sondern vielmehr ein darunterliegendes IaaS Model, das bei jedem Hosting-Provider identisch ist. Die Plattform zur Virtualisierung basiert dabei auf einer Lösung des Technologiepartners von Jelastic, der Parallels Inc. [4]. Diese zugrunde liegende Virtualisierung macht es möglich, Ressourcen zu skalieren und Container über eine Vielzahl von Hardwareservern hinweg zur Laufzeit ohne Unterbrechung zu verschieben.

Die Virtualisierung der einzelnen Container bietet außerdem große Vorteile für die Sicherheit. Diese ist in der PaaS immer eine Kombination aus mehreren Faktoren: Der wohl größte Sicherheitsvorteil von Jelastic ist die vollständige Isolation der einzelnen Server von anderen Kunden bis hin zur Betriebssystemebene. Somit teilen sich Nutzer in Jelastic keine Ressourcen mit Dritten. Sollten sich Dritte einmal Zugriff auf eine in Jelastic gehostete Anwendung verschaffen, wäre dieser Zugriff isoliert in diesem einen Container und weiterhin abgeschottet von allen anderen Systemen und Daten.

Ein weiteres Sicherheitsmerkmal ist, dass alle Umgebungen mit privaten IP-Adressen ausgestattet werden und kommunizieren. Legt man neue Umgebungen an, bekommt man nur einen Hostnamen der Form env-12345.jelastic.dogado.eu, der über das Internet erreichbar ist.

Werkzeuge

Nach der Auswahl eines Rechenzentrums auf jelastic.com registrieren sich Nutzer unter Angabe ihrer E-Mail-Adresse und erhalten für 14 Tage einen kostenlosen Account, der allerdings einigen Beschränkungen unterliegt (keine öffentliche IPv4-Adresse, keine Hochverfügbarkeit). Das Setup einer eigenen Umgebung wird visuell sehr anschaulich unterstützt (Abb. 1).

Abb. 1: Topology Manager zur Konfiguration einer Jelastic-Umgebung für Java oder PHP

Im Gegensatz zu den meisten anderen PaaS-Anbietern bietet Jelastic keine Kommandozeilenwerkzeuge. Für Eclipse und IntelliJ Idea gibt es dafür eine IDE-Integration zur Verwaltung der Umgebungen und zum Deployment. Zusätzlich wird mit einem Maven-Build-Knoten – ein hinzubuchbarer virtueller Server, der per GIT oder SVN an die eigene Source angebunden wird – ein ähnlicher Ansatz wie bei Cloudfoundry verfolgt.

Die Nutzung des Maven-Knotens oder des IDE-Plug-ins ist keine Pflicht. Die eigene Anwendung lässt sich auch über die Admin-Oberfläche von Jelastic hochladen und wird dann automatisch auf alle Knoten des gewählten Applikationsservers verteilt. Ebenso verändert man dort über einen webbasierten Editor jegliche Konfigurationsdateien der eingesetzten Dienste und hat Zugriff auf dessen Logs. Hier findet sich aus unserer Sicht eine der größten Schwächen, denn das Durchblättern von großen Log-Dateien im Browser ohne Suchfunktion macht die Fehlersuche zu einem mühsamen Unterfangen. Ein besonders schneller Einstieg beginnt übrigens mit vorkonfektionierten Anwendungen, mit denen man auf Knopfdruck [5] eine Jelastic-Umgebung starten kann, z. B. ein Alfresco- oder Magnolia-CMS u.v.m.

Sehr gut gelöst sind die Konnektierung der eigenen Domain, die Zugriffsrechte für Dritte sowie das Duplizieren (Daten und Konfiguration) ganzer Umgebungen per Knopfdruck. Durch Anlegen mehrerer Umgebungen – am einfachsten durch ihre Duplizierung – lassen sich so sehr einfach verschiedene Testumgebungen an ein Repository knüpfen, die automatisch builden und deployen, wenn sich etwas im passenden Branch geändert hat.

Java-Unterstützung

Obwohl Jelastic noch jung ist, unterstützt es eine beachtliche Bandbreite an Applikationsservern: Tomcat, Glassfish, Jetty und ab dem ersten Quartal 2013 auch TomEE. Für die JVM kann man zwischen Java 6 oder 7 wählen. Die Dienste laufen in ihrer Standardkonfiguration und sind mit allen Konfigurationsdateien vollständig anpassbar über den genannten Editor (z. B. Tomcats server.xml). Auch die JVM-Parameter lassen sich in einer speziellen variables.conf für alle Knoten einheitlich setzen.

Elastizität und Skalierung

Das Besondere an Jelastic ist seine „smarte“ vertikale und horizontale Skalierung. Letztere äußert sich darin, dass man manuell festlegt, wie viele Applikationsserverknoten in einer Umgebung gestartet werden. Jeder dieser Server läuft in einer eigenen virtualisierten Maschine. Diese wiederum skalieren im Betrieb automatisch vertikal, indem sie sich in zuvor vorgegebenen Grenzen Speicher und CPU-Zeit vom Wirtsystem in Anspruch nehmen. In der eben erwähnten variables.conf lassen sich deswegen auch keine XMX- und XMS-Werte für die JVM einstellen, sondern werden von Jelastic zur Laufzeit überschrieben. Im Hintergrund erkennt die Jelastic Cloud selbständig, welchen VMs es beim Upscaling „zu eng“ auf ihrem Host wird und verschiebt diese zur Laufzeit ohne Unterbrechung auf einen anderen Host.

Dieser elastische Ansatz der vertikalen Skalierung hat mehrere Vorteile: Neben der Tatsache, dass Nutzer sich nicht für abgestufte Instanztypen wie z. B. bei Amazon festlegen müssen, zahlen sie über das Abrechnungsmodell der so genannten Cloudlets nur die Ressourcen, die sie tatsächlich verbraucht haben. Außerdem ist es möglich, auf die sehr netzwerklastige Session-Replikation zu verzichten, die für ein horizontales Downscaling zwingend erforderlich ist, wenn man verhindern möchte, dass Sessions auf abgeschalteten Knoten nicht verloren gehen. Beim vertikalen Downscaling passt Jelastic die zur Verfügung stehenden Ressourcen automatisch nach unten an, wenn die Menge der parallelen Sessions sinkt. Möchte man das Risiko eines Hardwareausfalls kompensieren, lassen sich jeweils zwei Knoten in einen HA-Verbund schalten. Ein Hardwareausfall hat dann keine Beeinträchtigung auf laufende Sessions.

Flexibilität und weitere Services

Für eine vollständige Laufzeitumgebung braucht es natürlich noch mehr als einen Java-EE-Applikationsserver. Deshalb bietet Jelastic auf derselben vertikal skalierenden Infrastruktur optional folgende Services an:

·       NGINX als HTTP-Lastverteiler: Für HTTPS lassen sich eigene Zertifikate hochladen.

·       Relationale Datenbanken: mySQL, PostgreSQL, MariaDB. Diese können maximal auf einem weiteren Knoten in der Netzwerkumgebung gestartet werden, skalieren aber vertikal mit.

·       noSQL-Datenspeicher: MongoDB, CouchDB, Memcached. Leider steht noch keine „Out-of-the-box“-Hochverfügbarkeit für die Datenbankserver zur Verfügung. Diese werden noch als Standalone-Server gestartet und betrieben, skalieren aber vertikal die Ressourcen. Da Jelastic über das Dashboard den Zugriff auf die Konfigurationsdateien ermöglicht, ist es auch hier ein Leichtes, manuell eine Master-Slave-Replikation mit zwei oder mehreren Datenbankservern zu nutzen. Das gilt natürlich auch für die relationalen Datenbanken.

·       Virtuelle dedizierte Server (VDS): Diese unter CentOS startbaren Instanzen ergänzen eine Umgebung um den vollen Funktionsumfang im Sinne von IaaS, denn auf diesen Instanzen lassen sich unter Root-Zugriff beliebige Dienste installieren, die sonst nicht verfügbar sind.

Im Gegensatz zu anderen PaaS-Lösungen trennt Jelastic Festplattenspeicher nicht von Rechenleistung. Jegliche Daten werden innerhalb der eigenen Umgebung gespeichert. Wird eine Umgebung heruntergefahren, berechnet Jelastic nur noch den genutzten Speicherplatz.

Um den eigenen Domainnamen statt des von Jelastic zugewiesenen Hostnamens zu nutzen, reicht es aus, einen CNAME-Eintrag zu definieren und den Domainnamen im Jelastic Dashboard für die eigene Umgebung zu definieren. Das funktioniert auch, wenn man eigene öffentliche IP-Adressen in Jelastic nutzt; dann setzt man anstelle eines CNAME den passenden A Record im DNS seiner Domain. So lassen sich beliebig viele Domainnamen in seiner Umgebung nutzen (Abb. 2).

Abb. 2: Domainmanagement

Jelastic bietet weiterhin die Möglichkeit, Dritten Zugriff auf die eigenen Umgebungen zu gewähren. Dazu lassen sich einfach bestehende Jelastic-Nutzer einladen und mit Lese- und auch Schreibrechten für einzelne Umgebungen ausstatten (Abb. 3).

Abb. 3: Usermanagement

IDE-Plug-in Nein, neue Versionen in GIT oder SVN werden automatisch gebuildet und deployt
Kommandozeilenwerkzeug Nein
Build-Tool-Support Maven 3
Public/Private Public Cloud/Private Cloud auf Anfrage
Status In Produktion
Rechenzentren ServInt (Nordamerika), dogado/Host Europe (Deutschland), Rusonyx (Russland), Layershift (United Kingdom), Tsukaeru (Japan), Planeetta Internet (Finland), Websolute (Brasilien)
Unterstützte Sprachen Java 6 & 7, PHP 5.3 & 5.4
Java-EE-Unterstützung Tomcat 6 & 7, Glassfish 3, Jetty 7, TomEE (Q1/2013)
Datenspeicher MySQL 5.5, Maria DB 5.5, PostgreSQL 8.4, CouchDB 1.2, MongoDB 2.0, Memcached 1.4
Zusätzliche Dienste Virtuelle dedizierte Server mit CentOS 5.8 für eigene Dienste, NGINX 1.0 Loadbalancer
Flexibilität

– Kein Zugriff auf die Virtuellen Maschinen außerhalb der Weboberfläche z. B. für Download von Logfiles

– Anpassbarkeit fast aller JVM-Parameter, somit Möglichkeit von Remote Debugging

Skalierung Horizontal manuell, vertikal automatisch
Redundanz App-Server lassen sich mit Session Replication untereinander zu HA-Pärchen konfigurieren
Kostenmodell in Deutschland Cloudlets à 1,59 EUR ct pro Stunde; 1 Cloudlet = 1h x 128MB RAM und 200Mhz CPU
Lock-in Standard-Java, Applikationsserver und Datenspeicher
Tutorial Umfangreiche Dokumentation unter jelastic.com/docs/ sowie eine Nutzercommunity unter community.jelastic.com

Tabelle 2: Übersicht über die Merkmale

Fazit und Ausblick

Jelastic bietet eine für viele sehr gut zu nutzende PaaS-Umgebung und deckt vermutlich 90 Prozent der Bedürfnisse schon heute ab. Der Serverstandort Deutschland und die Vorteile der Datensicherheit durch die Container-Virtualisierung machen Jelastic zu einer echten Alternative zum herkömmlichen Hosting – auch im Unternehmenseinsatz.

Der grundlegende Vorteil von Jelastic gegenüber anderen PaaS-Anbieten wie Amazon oder Heroku ist die einfache Nutzung, mit der es innerhalb von Minuten möglich ist, komplexe eigene Umgebungen aufzubauen, ohne dabei auf komplizierte Kommandozeilen-Tools zurückgreifen zu müssen – dies unter Bereitstellung von Standardprodukten wie Tomcat oder MySQL. Das „smart scaling“ verdient beim Vergleich unterschiedlicher Plattformen besondere Aufmerksamkeit.

Mit Hochdruck arbeitet Jelastic derzeit an Features, die für einen Betrieb von Enterprise-Anwendungen unabdingbar sind, darunter z. B. SSH-/FTPS-Zugriff in die einzelnen Umgebungen, echte Hochverfügbarkeit der Lastverteilung sowie der Datenbankserver. Zudem sind die Konnektierung via VPN an das Unternehmensnetzwerk sowie ein API zur vereinfachten Steuerung in der Pipeline.

Teile der hier genannten, noch kommenden Features lassen sich über Workarounds integrieren, wie z. B. die Hochverfügbarkeit der Lastverteiler und Datenbanken über mehrere Umgebungen.

Jelastic hat einen straffen Release-Plan, der fast monatlich neue Features ankündigt. So sollen Features wie SFTP in den kommenden Monaten zur Verfügung stehen.

Geschrieben von
Thomas Louis
Thomas Louis
  Thomas Louis (louis@agido.com) ist Gründer und seit zehn Jahren Geschäftsführer der agido GmbH (zuvor netzprofis GmbH & Co. KG) in Dortmund, spezialisiert auf mobile und webbasierte Applikationen sowie den Cloud-basierten Java-Enterprise-Bereich. Er beschäftigt sich dabei insbesondere mit Performance, Skalierbarkeit und Hochverfügbarkeit.
Timo Mankartz
Timo Mankartz
  Timo Mankartz(tm@dogado.de) verantwortet als Geschäftsführer den Bereich Sales der dogado Internet GmbH. Seit 2001 ist er als Unternehmer in den Bereichen IT-Service und Servermanagement tätig. Nach siebenjähriger Tätigkeit bei einem weltweit agierenden Kommunikationskonzern übernahm Timo Mankartz Anfang 2007 die Position des Geschäftsführers und Gesellschafters der dogado Internet GmbH.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.