Google App Engine Microsoft Windows Azure Web Apps in der Cloud Google App Engine Microsoft Windows Azure Florian Hallberg Oliver Gugger Seminararbeit KIV, FFHS 12. Juni 2010
Agenda Fragestellungen Aspekte der Programmierung Demo Gegenüberstellung von zwei Anbietern Fazit Fragen
Fragestellungen Wie hoch ist der Aufwand für die Migration bestehender Webanwendungen? Welche Aspekte müssen bei der Entwicklung beachtet werden? Kann Cloud Computing produktiv eingesetzt werden? Wie hoch ist der Entwicklungsaufwand im Vergleich zur klassischen Webentwicklung?
Skalierbarkeit Problem: viele gleichzeitige Benutzer Webserver Webclients
Load Balancing Lastverteilung auf mehrere Webserver +Ausfallsicherheit Webfarm Load Balancer +Ausfallsicherheit Webserver Webclients
Datenspeicherung Datenspeicherung auf Dateisystem des Webservers ist nicht skalierbar! Webserver Webclient HTML Dateisystem
Session Handling Der Inhalt der Usersession kann sich bei jedem HTTP-Request ändern! Webserver Sessionspeicher Webclient Load Balancer Webserver HTML Sessionspeicher
Session Handling Lösung: zentraler Sessionspeicher Load Balancer Webclient Load Balancer Sessionspeicher HTML
Demo Cloud Share Place Demo
Systemüberblick Cloud Share Place Web Role Worker Role Webclient Queue HTML WCF Web Role Blob SQL Azure
Gegenüberstellung VS.
Programmiersprachen .NET (C#, VB.NET,...) PHP Ruby Python Java Java
Tools und Entwicklungsumgebung Visual Studio 2008 SQL Server 2008 Windows Vista .NET Framework 3.5 Windows Azure Tools für Visual Studio inkl. Windows Azure SDK Google App Engine SDK für Java Java-IDE (Eclipse)
Debugging Visual Studio 2008 Debugger Development Fabric Development Storage Logging Nur lokales Debugging Logging
Datenspeicherung Java Data Objects (JDO) Java Persistency API (JPA)
Session-Handling Nur ASP.NET Custom Session State Mode Eigener Provider Speicherung im Table und Blob Storage Standard-Verfahren nach Servlet- Spezifikation Wird automatisch im Datastore persistent gehalten
Load Balancing
Load Balancing
Webservices Microsoft Windows Communication Foundation (WCF) Keine speziellen APIs, kann aber mit bestehenden SOAP- Java-Frameworks auch auf der App Engine umgesetzt werden
Deployment
Verwaltung Deployment aktualisieren Dienst herunterfahren Konfiguration ändern Deployment entfernen Produktion und Staging vertauschen Dienst löschen Versionen verwalten Logs betrachten Datastore und Blobstore untersuchen
Fazit Wie hoch ist der Aufwand für die Migration bestehender Webanwendungen? Welche Aspekte müssen bei der Entwicklung beachtet werden? Kann Cloud Computing produktiv eingesetzt werden? Wie hoch ist der Entwicklungsaufwand im Vergleich zur klassischen Webentwicklung?
Fragen Fragen?