Google App Engine
Die Google App Engine ist eine im Beta-Stadium befindliche Cloud Plattform. Entwicklern ist es möglich unter Verwendung von Python 2.5 oder Java eigene Anwendungen zu entwickeln und auf den Servern von Google zu hosten. Dabei steht eine Vielzahl von Services zur Verfügung mit denen sich die eigene Anwendung hoch-skalierbar realisieren lässt.
Funktionsweise
Die Anwendung wird automatisch mittels eines Scripts an Google übermittelt, von da an wird die Skalierung automatisch durchgeführt. Dazu werden virtuelle Server-Instanzen erstellt, die allein für die Auslieferung und Ausführung der Web-Inhalte bestimmt sind. Die Anzahl dieser Instanzen ist abhängig von den Zugriffen, erfolgt beispielsweise für einen bestimmten Zeitraum kein einziger Zugriff, ist auch keine Server-Instanz mehr aktiv. Diese wird dann beim nächsten Zugriff erstellt und liefert diesen dann auch aus. Erfolgen hingegen kurzfristig sehr viele Zugriffe, wird diese Lastspitze durch neu erstellte Instanzen abgefedert. Die Anwendungsdaten werden unabhängig von diesen Instanzen gespeichert.
Abrechnung
Die Abrechnung erfolgt gestaffelt nach Ressourcen. Dazu legt der Nutzer für jede Ressource ein tägliches Budget fest, wird dieses Überschritten, sind gewisse Dienste nicht mehr benutzbar. Sobald beispielsweise das Budget für den Traffic ausgereizt ist, bekommen die Benutzer nur noch eine Meldung angezeigt, die darauf hinweist, dass kein Traffic mehr verfügbar ist. Unter keinen Umständen fallen zusätzliche Kosten an.Die aktuellen Ressourcen und Preise sind:[1]
- Eingehender Traffic: 0,10$/Gigabyte
- Ausgehender Traffic: 0,12$/Gigabyte
- CPU Zeit: 0,10$/Rechenstunde
- Gespeicherte Daten: 0,15$/Gigabyte/Monat
- Gesendete E-Mails: 0,0001$/E-Mail
Zusätzlich erhält jede Anwendung ein Freikontingent. Dieses ist unabhängig vom eingestelltem Budget und soll nach Angaben von Google für bis zu 5 Millionen Seitenaufrufe im Monat ausreichen. Dadurch soll der Anfang mit der App Engine kostenlos sein.[2]
Das Freikontingent beträgt zur Zeit:[3]
- Eingehender Traffic: 0,10$/Gigabyte
- Ausgehender Traffic: 0,12$/Gigabyte
- CPU Zeit: 0,10$/Rechenstunde
- Gespeicherte Daten: 0,15$/Gigabyte/Monat
- Gesendete E-Mails: 0,0001$/E-Mail
Dienste
Datastore
Der Datastore ist ein Wrapper für die Key-Value Datenbank Bigtable[4]. Diese wird in vielen Google Produkten, wie zum Beispiel der Suchmaschine, GMail oder Google Maps verwendet und ist auf horizontale Skalierbarkeit und hohe Datensicherheit ausgelegt. Für die Nutzer der App Engine gibt es kein Limit für die Anzahl ihrer Daten. Jedoch darf ein einzelner Datenbankeintrag nicht größer als 1 Megabyte sein.
Blobstore
Der Blobstore dient dazu, größere Daten auf der App Engine zu verwalten. Im Gegensatz zum Datastore beträgt die maximale Größe für einen Eintrag 2 Gigabyte. Dieser Dienst ist jedoch nur für Benutzer verfügbar, die Zahlungen aktiviert und ein Budget eingestellt haben.
High-Performance Image Serving
Mit dem High-Performance Image Serving ist es möglich die Google Picasa Infrastruktur zur Auslieferung von Bildinhalten zu verwenden. Dazu wird über den Key eines Blobstore-Eintrags eine nicht erratbare URL erzeugt, welche das im Blobstore gespeicherte Bild in einer festgelegten Auflösung ausliefert. Die Picasa Infrastruktur ist global aufgebaut und liefert das Bild immer aus dem geographisch nächsten Rechenzentrum aus. Da dieser Dienst auf dem Blobstore basiert, ist er folglich nur für Benutzer verfügbar, die Zahlungen aktiviert haben.
URL Fetch
Anwendungen, die auf der App Engine betrieben werden, dürfen keine Socket-Verbindungen aufbauen und können per URL Fetch HTTP oder HTTPS Anfragen absetzen. Um Webmaster die Möglichkeit zu geben, einzelne Dienste von Ihren Seiten auszuschließen, darf der User-Agent des Request nicht verändert werden und beinhaltet immer die ID der Anwendung. Die Größe der Anfrage und Antwort darf 1 Megabyte nicht überschreiten.
Memcache
Der Memcache ist ein schnelles Caching-System, mit dem es möglich ist Daten zwischenzuspeichern, dies geschieht global und unabhängig von den Instanzen. Aufgrund der schwankenden Latenz vom Datastore beschleunigt dies die Anwendung stark. Außerdem sind Abfragen im Memcache günstiger als eine Datastore Abfrage.
Beispiele für Skalierbarkeit
In dem offiziellen Blog wurde ein Diagramm veröffentlicht, welches den Traffic der Webseite "Hope for Haiti Now" zeigt. Diese wurde auf der Cloud Plattform gehostet und war so in der Lage bis zu 1600 Zugriffe in der Sekunde zu verkraften.[5]
Das Weiße Haus wollte mittels einer Webseite die Fragen der Bürger beantworten. Dazu wurde Google um Hilfe geben und diese boten dem Weißen Haus an, eine Software namens Moderator zu verwenden. Mit dieser ist es Usern möglich Fragen zu übermitteln und zu bewerten. Für das Projekt wurde eine neue Anwendung auf der App Engine angelegt und auf dieser wurde die Software installiert. Die Webseite hatte sehr starke Traffic Schwankungen mit bis zu 700 Zugriffen in der Sekunde und hielt diesen problemlos Stand.[6]