Google hat mit der Einführung seiner Compute Engine sein Portfolio zu einem vollständigen Cloud Computing Stack ausgebaut. Als schärfster Konkurrent gelten die Amazon Web Services (AWS), die den Markt der Infrastructure-as-a-Services mit Abstand anführen. Anders als AWS geht Google jedoch in die Breite. Und auch wenn die Anzahl der Google Cloud Services mit denen von AWS in der Masse [Vergleich] noch nicht mithalten können, finden Entwickler in Googles Portfolio jede Menge Möglichkeiten, ihre Anwendungen in der Google Cloud zu betreiben.
Ein vollständiger Cloud Stack
Die Google Cloud setzt sich aus neun einzelnen Services zusammen und deckt den kompletten Cloud Stack, Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS) und Software-as-a-Service (SaaS) ab. Dazu gehören die Google App Engine, die Google Compute Engine, der Google Cloud Storage, Google BigQuery, die Google Prediction API, die Google Translation API, Google Apps, Google Cloud SQL und Google F1.
Google App Engine
Die Google App Engine ist das Platform-as-a-Service (PaaS) Angebot von Google. Sie gehört mit der Erscheinung im Jahr 2008 zu einer der ersten PaaS am Markt und war der einzige Service der Python und Java gleichzeitig unterstützte. Die Google App Engine wurde entwickelt, um Anwendungen auch mit hoher Last oder während der Verarbeitung von vielen Daten zuverlässig ausführen zu lassen. Dazu unterstützt die Google App Engine dynamische Webdienste inkl. gängiger Web-Technologien, einen persistenten Speicher inkl. der Möglichkeit für Abfragen, Sortierungen und Transaktionen, Automatische Skalierung und Loadbalancing, eine Entwicklungsumgebung für lokale Systeme zur Simulation der Google App Engine, Warteschlangen für die Steuerung von Aufgaben die eine hohe Performance benötigten, uvm.
Für das Speichern der Anwendungen wird von der App Engine eine verteilte Datenhaltung verwendet, wobei der verteilte Speicher mit der Menge der Daten wächst.
Die Google App Engine bietet verschiedene APIs zur Arbeit mit und der Verwaltung von Applikationen. Mit dem URL-Fetch Service können Anwendungen auf andere Ressourcen wie Web Services oder Daten über das Internet zugreifen. Dabei wird dieselbe Google Infrastuktur verwendet, wie sie auch von bekannten Google Produkten genutzt wird. Mittels der App Engine Mail API sind Anwendungen in der Lage direkt E-Mails zu versenden. Per Memcache kann auf Daten zugegriffen werden, die nicht im persistenten Speicher abgelegt werden. Durch einen schnellen in-Memory Key-Value Cache ist eine Anwendung in der Lage mehreren Instanzen parallel nur temporär vorhandene Daten performant bereitzustellen. Anhand der Image Manipulation API sind Anwendungen in der Lage Bilder zu verändern.
Anwendungen können so gesteuert werden, dass sie hoch performante Aufgaben dann erledigen, wenn die Belastung durch Anfragen nicht so hoch ist, z.B. zu einer vorher definierten Uhrzeit oder Tag. Des Weiteren besteht die Möglichkeit eine Anwendung in eine Warteschleife zu legen oder sie im Hintergrund auszuführen.
Google Compute Engine
Die Google Compute Engine bietet Infrastructure-as-a-Services á la Google. Damit erhält man die Möglichkeit, virtuelle Maschinen (VM) mit dem Linux Betriebssystem auf der Google Infrastruktur, die auch von Google Mail und anderen Services eingesetzt wird, zu nutzen.
Die Compute Engine setzt auf Ubuntu als auch CentOS Linux Betriebssysteme, virtuelle Maschinen mit 1,2,4 oder 8 Kernen und 3,75 GB Arbeitsspeicher pro virtueller Instanz. Speicherarten stehen in drei Varianten zu Verfügung.
Flüchtiger Speicher: Auf jeder virtuellen Instanz befindet sich ein flüchtiger lokaler Speicher, bei dem die Daten nur während des Lebenszyklus einer virtuellen Maschinen gespeichert werden. Wenn die VM gestoppt wird, werden alle Daten gelöscht. Dennoch werden alle Daten die auf die VM geschrieben verschlüsselt abgelegt. Persistenter Speicher: Die Google Compute Engine bietet einen persistenten Speicher, der als Service (virtuelle Fesplatte) mit dem Google Storage Netzwerk verbunden ist und über dieselbe Latenz und Geschwindigkeit wie der lokale Speicher einer VM verfügt. Daten die auf diese “virtuelle Festplatte” gespeichert werden, werden automatisch über mehrere physikalische Festplatten innerhalb eines Google Rechenzentrum repliziert. Darüber hinaus können Snapshots von den Festplatten für Backup/ Restore Zwecke erstellt werden. Zudem besteht die Möglichkeit diese virtuellen Platten als Laufwerk in mehrere virtuelle Maschinen zu mounten, um davon Daten zu lesen. Wie beim lokalen VM Speicher sind auch die Daten auf den virtuellen Festplatten verschlüsselt. Google Cloud Storage: Der Google Cloud Storage existiert für Entwickler schon etwas länger. Er bietet die Möglichkeit, Daten persistent zu speichern und auf die Buckets (Ordner) innerhalb des Storage mit einer VM zuzugreifen.
Über der Google Netzwerk lassen sich die virtuellen Maschinen mit der Aussenwelt und innerhalb des Netzwerks selbst verbinden. Der Netzwerk Stack ist so aufgebaut, dass sich die virtuellen Maschinen eines Nutzers in einem isolierten Bereich befinden und von Dritten nicht ohne Weiteres darauf zugegriffen werden kann. Die virtuellen Maschinen können entweder mit statischen oder dynamischen IP-Adressen verknüpft werden, um anschließend über das Internet auf diese zuzugreifen. Über eine Firewall können die Zugriffe auf die virtuellen Maschinen kontrolliert werden.
Alle Management Tools basieren auf einer offenen RESTful API. Google plant darüber hinaus, alle verfügbaren Tools als Open Source zu veröffentlichen, um den Nutzern die Möglichkeiten zu geben, eigene Tools nach ihren Bedürfnissen zu entwickeln. Google arbeitet bereits mit ein paar Partner darunter RightScale, Puppet Labs, OpsCode, Numerate, Cliqr und MapR zusammen, die in Zukunft die Google Compute Engine unterstützen und integrieren werden und weitere Management-Kapazitäten anbieten.
Google Cloud Storage
Der Google Cloud Storage existiert für Entwickler schon etwas länger. Er bietet die Möglichkeit, Daten persistent zu speichern und auf die Buckets (Ordner) innerhalb des Storage mit einer VM zuzugreifen.
Google Cloud Storage bietet zudem unterschiedliche Einsatzszenarien. Neben der Archivierung und dem Datenbackup, lassen sich darüber hinaus Anwendungsdaten darin ablegen, um einen ortsunabhängigen Zugriff darauf zu ermöglichen. Der Zugriff auf die Daten lässt sich über Access Control Lists (ACLs) steuern.
Der Storage Service dient als grundsätzliche Basis für andere Google Cloud und Analytics Services wie der Google Prediction API und Google BigQuery Service. Zudem lassen sich darüber statische Inhalte für Webseiten ausliefern.
Google BigQuery
Google BigQuery nennt sich Googles Big Data Service und soll Unternehmen und Entwicklern bei der Analyse ihrer Daten helfen ohne die dafür notwendige Infrastruktur zu besitzen.
Da Google auf Grund der Indexierung des Webs auf Systeme für die Analyse riesiger Datenmengen angewiesen ist, wurden entsprechend bereits einige Tools entwickelt, die allerdings nur für den internen Einsatz vorgesehen sind. Aus diesen Tools wurde nun der BigQuery Service quasi abgeleitet.
BigQuery ist ein Online Analytical Processing (OLAP) System, um Datensätze mit Milliarden von Zeilen und Terabytes an Daten zu verarbeiten und zielt auf Unternehmen und Entwickler in Unternehmen ab, die mit riesigen Datenmengen (Big Data) balancieren müssen. BigQuery kann auf unterschiedliche Arten genutzt werden. Entweder mit einer Web-Oberfläche, einer REST API oder via Kommandozeile. Die Daten können zur Verarbeitung per CSV Format auf die Google Server hochgeladen werden.
Die Preise orientieren sich an der Menge der gespeicherten Daten und der Anzahl der Anfragen. Für den Speicherplatz berechnet Google 0,12 Dollar pro GB pro Monat bis zu einer maximalen Speichermenge von 2TB. Für die Anfragen werden 0,035 Dollar pro verarbeitetes GB berechnet. Die Limits liegen hier bei 1000 Anfragen pro Tag sowie 20TB zu verarbeitende Daten pro Tag. Für die ersten 100GB an verarbeitenden Daten pro Monat entstehen keine Kosten. Weitere Informationen stehen hier.
BigQuery ist nicht für die OLTP (Online Transaction Processing) Verarbeitung geeignet. Genauso wenig können Änderungen an den auf BigQuery gespeicherten Daten vorgenommen werden. Unternehmen, die eher eine klassische relationale Datenbank für OLTP benötigen, empfiehlt Google seine Cloud basierte Datenbank Google Cloud SQL, welche die volle SQL-Syntax unterstützt.
Google Prediction API
Die Google Prediction API ermöglicht den Zugriff auf Googles Algorithmen zur künstlichen Generierung von Wissen aus Erfahrung. Damit können Daten analysiert und Ergebnisse vorausgesagt werden. Anhand der Eingabe von numerischen Werten oder Text bietet die Prediction API Möglichkeiten für den Musterabgleich bzw. der musterbasierten Suche sowie dem maschinellen Lernen.
Die API kann genutzt werden, um bspw. die Gewohnheiten eines bestimmten Benutzers zu analysieren oder vorherzusagen, welche anderen Filme oder Produkte einem Benutzer vielleicht gefallen. Als weitere Use Cases nennt Google das Kategorisieren von E-Mails als Spam oder nicht Spam sowie die Analyse von positiven oder negativen Kommentaren zu einem Produkt oder anhand der bisherigen Ausgaben zu schätzen, wie viel ein Nutzer an einem bestimmten Tag ausgeben wird.
Google Translation API
Die Google Translation API ist ein Tool, mit dem Texte automatisiert von eine Sprache in eine andere übersetzt werden können. Dafür stehen der Quelltext, die Quellsprache sowie die Zielsprache, in welche der Text übersetzt werden soll. Im Prinzip handelt es sich genau um den Service, der sich hinter http://translate.google.de befindet. Mit der Translation API lassen sich eigene mehrsprachige Applikationen oder Webseiten programmatisch anbieten.
Die Google Platform Extended
Wenn man sich den Google Cloud Stack anschaut, sollte man sich ebenfalls das restliche Ökosystem anschauen. Dazu gehören Google Apps, Google Cloud SQL und Google F1.
Google Apps
Google Apps ist die webbasierte Software-as-a-Service Office & Collaboration Suite von Google. Sie umfasst in der kostenlosen Standard Edition und der Edition für Non-Profit Organisationen die Programme Mail, Kalender, Text & Tabellen, Sites, Talk und Kontakte. Die Premier- und Education Editionen verfügen zusätzlich noch über Video, Groups und APIs für Erweiterungen und die Integration in die eigene Infrastruktur sowie weitere Services von Partnern.
Google Mail verfügt je nach Edition über einen Speicherplatz von 7 GByte bis 25 GByte. Die Ablage der E-Mails erfolgt nicht klassisch in einer Ordnerstruktur, stattdessen können Labels definiert werden mit der jede E-Mail beliebig getaggt werden kann.
Auch die Art der Verwaltung einer E-Mail Kommunikation ist anders als bei herkömmlichen E-Mail Clients. Werden bei Thunderbird, Outlook etc. für jede E-Mail die hin und her geschickt wird eine separate “physische” E-Mail erstellt die dann im Posteingang und/oder Postausgang liegt, werden die E-Mails bei Google Mail in sogenannten Konversationen verwaltet. Dabei entsteht ein “Objekt” an das jede E-Mail die zu dieser Konversation (Betreff) gehört angehängt wird. Jede Benutzer der an dieser Konversation teilnimmt, erhält zur Unterscheidung eine andere Farbe.
Die Technologie des Spamfilter halte ich für einzigartig. Ich nutze Google Apps nun seit mehreren Jahren und hab in der Zeit nicht eine Spam E-Mail im Posteingang gefunden, dafür ist der Spamordner immer randvoll! Auch die Suche nach E-Mails oder Inhalten von E-Mails funktioniert sehr gut, da merkt man gut, welchen Kernbereich Google normalerweise abdeckt.
Der verschlüsselte Zugriff auf die Postfächer kann lokal von jedem Benutzer oder global über die Managementkonsole festgelegt werden. Seit kurzem ist allerdings nur noch der SSL-Zugriff möglich. Der mobile Zugriff auf Google Mail ist ebenfalls möglich. dazu sind Anwendungen für Android, iPhone, Blackberry und weitere Smartphones wie z.B. Nokia vorhanden. Migrationstools erlauben zusätzlich das Importieren von E-Mail Konten aus anderen Systemen wie Microsoft Exchange oder Lotus Notes.
Google Mail verfügt weiterhin über ein integriertes Messaging System, welches ich weiter unten für die Anwendung Talk beschreibe.
Kalender
Der Google Kalender ist vollständig mit Google Mail verknüpft. Nachdem ein Eintrag erstellt wurde, können Freunde/ Bekannte oder Mitarbeiter darüber direkt per E-Mail informiert bzw. eingeladen werden. Weiterhin können die eigenen Kalender lesend und/oder schreibend anderen Personen freigegeben werde, um ihnen den Zugriff darauf zu gewähren. Dadurch haben Kollegen z.B. die Möglichkeit die Termine eines anderen Kollegen in ihrem Kalender zu sehen und ggf. sogar zu bearbeiten.
Google Kalender ist ebenfalls mit Google Sites verknüpft, damit kann ein Kalender(eintrag) auf einer Webseite veröffentlicht werden. Kalender können darüber hinaus – z.B. für Veranstaltungen – grundsätzlich öffentlich verfügbar gemacht und in Googles Kalendergallerie aufgenommen werden.
Der mobile Zugriff ist ebenso wie bei Google Mail möglich. Zusätzlich können Kalenderbenachrichtigungen per SMS verschickt werden.
Text & Tabellen
Text & Tabellen ermöglicht das gemeinsame Bearbeiten (inkl. Versionierung) von Dateien in Echtzeit. Das beschränkt sich entweder nur auf die Benutzer in der eigenen Domain, aber auch externe Partner und Kunden können darauf den Zugriff erhalten und aktiv mitarbeiten.
Die erarbeiteten Dokumente, Tabellen und Präsentationen können anschließend z.B. auf den Webseiten von Google Sites oder im Intranet eingebettet werden. Päsentationen können über das Internet abgehalten werden, ohne dass sich die Zielgruppe am selben Ort befindet, die benötigt nur einen Browser mit aktiver Internetverbindung.
Text & Tabellen bietet bereits vorgefertigte Vorlagen für Formulare, z.B. für Umfragen oder Registrierungen die auf Webseiten verfügbar gemacht, per E-Mail verschickt oder in Dokumente eingebunden werden. Die eingegeben Daten werden dabei automatisch in einer verknüpften Tabelle gespeichert. Darüber hinaus existieren Vorlagen für Geschäftsdokumente, Visitenkarten, Briefköpfe, Zeiterfassungsformulare etc., die ebenfalls in vorhandene Dokumente integriert werden können.
Texte & Tabellen unterstützt und kann folgende Dateiformate importieren und exportieren: DOC, XLS, CSV, PPT, TXT, HTML, PDF.
Der mobile Zugriff mit Android, Blackberry oder iPhone ist ebenfalls möglich.
Sites
Mit Google Sites kann jede beliebige Art von Webseite erstellt werden, wie z.B. Seiten für das Intranet in einem Unternehmen, für Teams, Projekte, Abteilungen, Schulungen oder Wikis. Der Zugriff ist per se nur für Leute innerhalb der Domain erlaubt. Die Seiten können aber für externe Partner, Kunden ider Lieferanten zugänglich gemacht werden.
Innerhalb eine Google Sites Webseite können unterschiedliche Arten von Inhalten eingebettet werden. Dazu gehören Textdokumente, Tabellen, Präsentationen, Videos, Formulare oder Photos. Darüber hinaus ist die Google Suchfunktion vorab in jeder Site integriert, wodurch der gesamte Inhalt indiziert ist und schnell gefunden werden kann.
Talk
Google Talk ist in zwei Varianten verfügbar. Die erste ist die klassische Software, die auf dem PC installiert und von dort genutzt wird. Damit stehen auf dem PC Chat-, Sprach- und Videofunktionen zur Verfügung.
Die zweite Variante ist eine integrierte Instant Messaging Funktion innerhalb von Google Mail, mit der direkt eine Verbindung mit den Kontakten im eigenen Addressbuch oder per Mausklick auf den Absender einer E-Mail hergestellt werden kann. Vorausgesetzt, der Kontakt verfügt über ein Google-Talk Konto bzw. einen ICQ/AIM Account. Über ein zusätzliches Plugin kann das Instant Messaging um Voice- und Video-Chat Funktionen erweitert werden. Der Chat-Verlauf innerhalb von Google Mail kann dabei in einem Chat-Protokoll für jede einzelne Sitzung (pro Tag) aufgezeichnet werden. Das Protokoll wird nach dem Beenden der Sitzung wie eine E-Mail im Archiv abgelegt.
Ist man im Besitz eines Android Smartphones, kann die Chat-Funktion von Google Talk auch unterwegs genutzt werden.
Kontakte
Google Kontakte ist keine Anwendung im eigentlichen Sinne. Vielmehr hat man damit die Möglichkeit seine Kontakte in einem separaten “großen” Fenster zu verwalten. Normalerweise erreicht man die Kontakte in Google Mail über den Button “Kontakte” auf der linken Seite. Dabei werden die Kontakte dann in dem Bereich angezeigt, wo sonst die E-Mail Konversationen aufgelistet werden. Das kann auf Geräten, wie z.B. Netbooks ziemlich eng werden, wodurch das Auslagern in ein weiteres Fenster wesentlich komfortabler ist.
Google Cloud SQL
Mit Google Cloud SQL lassen sich relationale Datenbanken erstellen, konfigurieren und nutzen, die in Googles Cloud gehostet werden. Dabei handelt es sich um einen vollständig durch Google administrierten Service, der für eigene Anwendungen und Services eingesetzt werden kann.
Google Cloud SQL basiert auf der MySQL Datenbank. Damit lassen sich sämtliche Anwendungen, Daten und Services zwischen der on-Premise Welt und der Cloud hin- und herbewegen
Google F1
Google F1 ist ein relationales Datenbankmanagementsystem (RDBMS) von Google, das laut Google über umfangreiche Funktionen einer relationalen Datenbank verfügt. Dazu gehören ein festgelegtes Schema und eine parallel arbeitende SQL Query-Engine. Zudem setzt F1 auf Googles verteiltem Speichersystem auf, das sich über Google Rechenzentren erstreckt. Der Speicher wird dynamisch geteilt und unterstützt eine transaktional konsistente Replikation über mehrere Rechenzentren hinweg, wodurch Ausfälle bewältigt werden, ohne Daten zu verlieren.
Fazit
Die Amazon Web Services haben derzeit ein sehr vertikal ausgerichtetes Portfolio. Dabei konzentriert sich das Unternehmen auf den Ausbau seiner Infrastructure Services mit Mehrwert-Diensten wie bspw. Elastic Beanstalk. Beanstalk selbst ist kostenlos. Der Umsatz erfolgt mit der darunter liegenden Infrastruktur die der Kunde nutzt.
Google hingegen stellt sich breiter auf und hat in allen Cloud Bereichen, IaaS, PaaS und SaaS einen Fuß in der Tür. Der Anfang wurde mit der Google App Engine gemacht. Google ist nun einmal ein Entwickler-Unternehmen. Sie haben nie einen Hehl daraus gemacht, dass sie ihre Überkapazitäten herausgeben, damit Entwickler weltweit die Google Infrastruktur nutzen können, um Anwendungen zu entwickeln. Anschließend folgte mit Google Apps der SaaS Bereich. Dieser hat sich aus den Consumer-Produkten (Mail, Docs, usw.) abgeleitet und stellt quasi ein Best-off dieser einzelnen Services dar. Alles zusammen bildet eine Office Suite unter einer eigenen Domain. Der letzte Bereich den Google erobern will ist IaaS. Die Google Compute Engine ermöglicht das starten und betreiben eigener virtueller Maschinen auf Googles Infrastruktur. Andere Services wie Google Cloud SQL oder Google F1 gehören offiziell noch nicht in die Google Cloud Platform unter http://cloud.google.com. Allerdings ist zu erwarten, dass dies bald geschehen wird. Auch BigQuery war zunächst nur ein reines Developer Projekt, wurde nach der Beta Phase aber recht zügig zur Cloud Platform hinzugefügt.