Thursday, July 7, 2011

Javaforum Stuttgart 2011 #jfs2011 Live Blogging Vortrag 4

Vortrag 4: Java in der Cloud - Aktuelle Möglichkeiten und Entwicklungen Was ist die Cloud? Infrastructure as Service Virtuelle Server, vergleichbar mit Virtualisierung Manage Everything yourself Player sind z.B. Amazon Webservices VMWare Platform as a Service Virtual App Server werden meist von den Providern gemanagt. Skalierung wird vom Anbieter gemanagt. Beispiele Cloudfoundry oder Google App Engine Software as a service Software aus der Cloud meist ebenso relevant für User wie Entwickler Beispiele: Salesforce Google Mail Cloud Modelle: Public -> Für die Öffentlichkeit verfügbar Private -> Nur für eine Organisation verfügbar Community -> Für mehrere Organisationen verfügbar Hybrid -> Kombination verschiedener Modelle Warum Cloud überhaupt machen Public Cloud: Zahl nur, was du brauchst Billige Art, Lastspitzen zu behandeln Transparentes Kostenmodell Private Cloud: Besser Verwendung der Ressourcen Kosten können abgerechnet werden Der nächste Schritt nach der Virtualisierung Business Agility Deployment von Anwendungen per Maus Klick Testumgebungen sehr einfach und günstig. Zahlen nur beim Testen. Die Anwendung skaliert automatisch Werner Vogels (CTO Amazon) sagt: Ihre Ingenieure brauchen 70% der Zeit für Skalierbarkeit und Technologie-> Deshalb Cloud Plattform der Zukunft Ausfallsicherheit, Automatische Verteilung, neue Computer einzurichten wird trivial Günstige Systeme mit hoher Verfügbarkeit und Datenhaltungssicherheit Sieht so aus wie Google, Amazon, Facebook Wie sieht das für den Java Entwickler aus Wie gehe ich mit Lastspitzen um? Ich brauche mehr App Server Instancen Nach dem Peak müssen sie auch wieder gestoppt werden Elastic Scaling als Stichwort Was der Entwickler am Ende hat: Eine Werkzeug, das eine Anwendung nimmt und daraus eine VM erzugt, mit der gesamten nötigen Infrastruktur. Diese kann dynamisch hoch und runter skalieren. Wir benötigen Werkzeuge zur Installation der Software Die Infrastruktur verwalten Benutzer einrichten Tools sind z.B. Puppet, Chef etc. Quasi eine Factory für VMs Für lokale Installationen existiert "Vagrant" Vorteile: Sehr flexibel Arbeitet für jetwede Infrastruktur und Anwendung Arbeitet auf komplexen Installationen mit versch. Komponenten Verschiedene Anwendungen können auf verschiedene Knoten deployt werden. Aber noch besser geht es: Anwendung auf einer PaaS Umgebung also Plattform as a Service deployen Vorteil: Nützlicher, da ein Server sowieso installiert werden müssten Automatische Skalierung Zusätzliche Dienste im Angebot Aber: Weniger flexibel Vordefiniertes Entwicklungsmodell Lernkurve für das Programmiermodell Existierender Code ggf. schwer zu migrieren. Mogliche PaaS Plattformen Google App Engine Java Unterstützung aber sehr restriktive Umgebung mit Java Classes White List Fokus auf NoSQL Begrenzung der startbaren Applikationen Limit auf Antwortzeit (30sec) Kein Zugriff auf OS oder Server Daher wurden spezielle Frameworks entwickelt (Gaelyk for Groovy) Aber besser laut Vortragendem Amazon Elastic Beanstalk Basierend auf der EC2 Infrastruktur plus Auto Scaling und S3 Dazu Linux, OpenJDK und Tomcat Zur Zeit im Betatest im Osten der USA Es gibt Eclipse Plugin Es unterstützt Versionsverwaltung für Applications, sowie Elastic Scaling Einfaches Monitoring ist eingebaut Detailierte Kontrolle über die Umgebung ist möglich. Zugang aufs OS und Tomcat Logs Spring basierte Demoanwendung ist vorhanden und es existiert ein Relational Database Service (RDS) für enterprise scale MySQL und andere Amazon Web Services Skalierungseinheit 1 VM = 1 Server Weiterer Ansatz VMWare Cloud Foundry Open Source Projekt bei GitHub unter der Apache2 Lizenz Sehr neu, noch ohne kommerzielle Angebote Kann Ruby, Java und Node.js laufen lassen Verschiedene Frameworks werden unterstützt Kann überall gehostet werden, wird von der Community erweitert, z.B. Support für Erlang, PHP, Python Es existiert ein Eclipse Plugin Es unterstützt elastic scaling.... Ok, man kann es bauen. Aehnlich normalen EJB Umgebungen mit Tomcat und MySQL Läuft auf ubuntu es teilen sich n Server eine virtuelle Maschine, damit geht die Skalierung feingranularer. Angebotene Dienste sind RDB Service Key Value Store Document Store Messaging Service Mehr kommt Es gibt auch eine API zum Erstellen der eigenen Services Zusammenfassend Cloud wird aus drei Gründen kommen: Kosten, Business Agility, Platform of the Future Google App Engine Pionier aber veraltet Amazon Beanstalks: Standing on the shoulde of Giants Cloudbees: Für Entwickler Spannend scheint CloudFoundry: Open Source mit einer grossen aktiven Community, lauffähig auf ubuntu!

No comments: