Web Apps in der Cloud Google App Engine Microsoft Windows Azure Florian Hallberg Oliver Gugger 12....

Post on 05-Apr-2015

108 views 2 download

Transcript of Web Apps in der Cloud Google App Engine Microsoft Windows Azure Florian Hallberg Oliver Gugger 12....

Web Apps in der Cloud

Google App EngineMicrosoft Windows Azure

Florian HallbergOliver Gugger 12. Juni 2010 Seminararbeit KIV, FFHS

• Fragestellungen• Aspekte der Programmierung• Demo• Gegenüberstellung von zwei Anbietern• Fazit• Fragen

Agenda

• 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?

Fragestellungen

Skalierbarkeit

Problem: viele gleichzeitige Benutzer

Webserver

Webclients

Load Balancing

Lastverteilung auf mehrere Webserver

Webserver

Webfarm

Load Balancer

+AusfallsicherheitWebclients

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!

Webclient

HTML

Webserver

Webserver

Sessionspeicher

Sessionspeicher

Load Balancer

Lösung: zentraler Sessionspeicher

Session Handling

Webclient

HTML

Load Balancer

Sessionspeicher

Demo

Cloud Share PlaceDemo

Systemüberblick Cloud Share Place

Webclient

HTML

Web Role

WCF Web Role

Blob

Queue

SQL Azure

Worker Role

Gegenüberstellung

VS.

Programmiersprachen

• .NET (C#, VB.NET,...)• PHP• Ruby• Python• Java

• Java• Python

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

• 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?

Fazit

Fragen?

Fragen