vali_111 - Fotolia
Vorteile und Nachteile der Cloud-Plattform Google Compute Engine
Cloud-Anwendungen nehmen in der heutigen IT-Landschaft eine immer wichtigere Rolle ein. Dienste wie GCE sind die ideale Plattform zum Hosten.
Entwickler von Cloud-Anwendungen sollten sich sehr genau anschauen, auf welche IaaS-Plattform (Infrastructure as a Service) sie sich für die Entwicklung und Bereitstellung ihrer Applikationen einlassen. Die Wahl der falschen Plattform kann zu unvorhersehbaren Kosten und Abrechnungsmodellen führen, die Auswahl möglicher Programmiersprachen und Betriebssysteme einschränken und Compliance- und Security-Probleme verursachen.
Im Folgenden wollen wir einen Blick auf die Vor- und Nachteile einer der populärsten IaaS-Plattformen für Cloud-Anwendungen werfen: die Google Compute Engine (CGE). GCE stellt Anwendern virtuelle Maschinen zur Verfügung, die in Rechenzentren von Google betrieben werden. Damit können also Unternehmen ihre eigene Software in Googles Public Cloud ausführen, und zwar auf der gleichen Infrastruktur, die auch für Google-Dienste wie Gmail oder Google Maps zum Einsatz kommt. Die Google Compute Engine nutzt als Hypervisor KVM und unterstützt neben Windows die gängigsten Linux-Distributionen. Während die Google Compute Engine im Juni 2012 angekündigt wurde, gibt es die Google App Engine (GAE) bereits seit 2008. Zusammen gelten die beiden Services als einige der wichtigsten Dienste von Googles Cloud-Plattform.
Funktionen der Google Compute Engine
Heutzutage werden mit der Google Compute Engine vor allem sehr rechenintensive Workloads in Verbindung gebracht, beispielsweise Video-Codierung, Grafik-Rendering, Gen-Sequenzierung, Clustering oder auch Machine Learning.
Während die Google App Engine Anwendern bereits eine fertige Umgebung für Entwicklung und Deployment bietet, muss dies bei der Google Compute Engine erst eingerichtet werden. GCE-Kunden erstellen also zunächst ihre eigenen Instanzen und verwalten diese, inklusive der Software, die auf den virtuellen Maschinen ausgeführt wird. GCE stellt Anwendern verschiedene Tools zur Verfügung, über die sich die GCE-Instanzen aufsetzen und verwalten lassen. Während man im Fall der GCE Instanzen also manuell aufsetzen, starten und stoppen, Speicher zuweisen und den Netzwerkzugang konfigurieren muss, wird dies bei der Google App Engine bereits alles von Google erledigt.
Bei der Arbeit mit der Google Compute Engine muss zu Beginn zunächst über die webbasierte Entwicklerkonsole ein GCE-Projekt angelegt werden, eines von drei Tools zur Interaktion mit der Google Compute Engine. Ein Projekt ist dabei eine Sammlung von Informationen über die Applikationen, die gehostet werden sollen, und fungiert sozusagen als Container der virtuellen Maschine, in dem Festplatten, Firewalls und Netzwerke zusammengefasst werden. Neben der Entwicklerkonsole können Anwender auch per gcloud, einer Kommandozeilenoberfläche, oder dem RESTful-Interface GCE API auf die GCE-Instanzen zugreifen.
Die Google Compute Engine bietet verschiedene Typen von Instanzen, die jeweils unterschiedliche Konfigurationsmöglichkeiten wie Anzahl virtueller CPUs oder Größe des Arbeitsspeichers bieten. Die unterschiedlichen VM-Typen sind:
- Standard: Eine ausgeglichene Kombination aus Arbeitsspeicher und Rechenkraft.
- High Memory: Im Vergleich zur CPU-Leistung mehr Arbeitsspeicher.
- High CPU: Hier liegt der Fokus auf der Prozessorleistung und nicht auf der Größe des Arbeitsspeichers.
- Shared Core: Eine kostengünstigere, kleinere Konfiguration.
GCE unterstützt auch die verwaltete VM-Umgebung der Google App Engine, um GAE-Anwendungen auf konfigurierbaren GCE-VMs auszuführen. Diese Funktion gibt GAE-Entwicklern eine höhere Flexibilität durch eine größere Auswahl möglicher Betriebssysteme, Programmiersprachen und CPU- und RAM-Optionen. GAE verwaltet dabei automatisch die über die Google Compute Engine erstellten virtuellen Maschinen.
Die Google Compute Engine bietet seit Mai 2015 auch sogenannte Preemptible VMs, die mit wesentlich weniger Kostenaufwand betrieben werden können. Allerdings kann Google diese Preemptible VMs auch jederzeit beenden und die Ressourcen anderen Instanzen zuordnen, falls die Kapazitäten benötigt werden. Die GCE hat zudem nur ein begrenztes Kontingent an Preemptible VMs, wodurch es zu Spitzenzeiten mitunter auch gar nicht möglich ist, welche zu erstellen.
Auf der Google Compute Engine enthält die grundlegende Softwareausstattung virtueller Maschinen das Betriebssystem samt zusätzlicher Software und die Applikation, was zusammen auch als Image bezeichnet wird. Die GCE unterstützt wie andere Cloud-Plattformen verschiedene Standard-Images, aber es lassen sich auch individuelle Images erstellen, entweder von Grund auf neu oder durch Modifikation bestehender. Meist werden für Cloud-Applikationen ganz spezifische Betriebssysteme und Programmiersprachen genutzt, die sich mit wenig Aufwand in GCE-Images integrieren lassen.
GCE unterstützt verschiedene Storage-Systeme, Persistent Disk Storage ist dabei der primäre Storage-Mechanismus, der für Block-Storage verfügbar ist und generell für dateisystembasierte Dateien bevorzugt wird. Die GCE bietet zudem auch Google Cloud Storage für unstrukturierte Daten, die NoSQL-Datenbank Cloud Datastore und CloudSQL für MySQL-Datenbanken.
Weitere Artikel zu Google Public Cloud:
So lassen sich Workloads zwischen GCE-Instanzen verschieben
Container-Virtualisierung mit Docker und Google Container Engine
Reservierte Instanzen bei AWS: Kostenvorteil gegenüber GCE?
Wie GAE zieht auch GCE einen großen Vorteil aus den enormen Netzwerkressourcen von Google. Zwischen GCE-VMs können Daten daher schneller transferiert werden als auf den meisten anderen Cloud-Plattformen. Zudem erhalten GCE-Kunden bestimmte Firewall- und Netzwerkfunktionen standardmäßig mitgeliefert: Alle Instanzen in einem Projekt sind einem Netzwerk zugeordnet und können standardmäßig auch nur mit anderen Instanzen aus dem gleichen Projekt kommunizieren. Natürlich lassen sich zusätzliche Firewall- und Netzwerkeinstellungen konfigurieren.
Die Google Compute Engine ermöglicht auch ein globales Load-Balancing, indem einkommende Anfragen einem Instanzen-Pool aus unterschiedlichen Regionen zugeordnet werden können, um ein Maximum an Performance, Durchsatz und Verfügbarkeit zu erhalten. Ähnlich wie Amazon und Microsoft unterteilt auch Google die Welt in unterschiedliche Regionen und Zonen. Eine Zone entspricht dabei einem physischen Rechenzentrum, während eine Region verschiedene Zonen innerhalb einer größeren geografischen Fläche repräsentiert. Derzeit bietet GCE drei Regionen und acht Zonen.
Die Google Compute Engine garantiert eine monatliche Verfügbarkeit von 99,95 Prozent, Amazons AWS bietet die gleichen Service-Level Agreements (SLA).
Vorteile und Nachteile der Google Compute Engine
Die Liste der Vor- und Nachteile ist bei jeder Cloud-Plattform meist recht lang, gerade der Preis spielt dabei natürlich eine große Rolle – allerdings ändert sich der bei GCE, AWS und anderen Anbietern so schnell, dass es schwer ist, hier Ratschläge zu geben. Wer vor der Wahl für einen Cloud-Anbietern steht, der sollte sich also zunächst einen Überblick über die aktuellen Tarifmodelle verschaffen.
Zu den Vorteilen bei der Nutzung der Google Compute Engine gehören zum Beispiel:
- GCE-Kunden können die Vorteile von Googles eigener Cloud-Umgebung genießen, die durch Googles Erfahrung mit den eigenen Services äußerst robust ist.
- GCE verbindet die virtuellen Maschinen über Googles eigenes Glasfasernetzwerk, dem Rückgrat von Googles Cloud-Infrastruktur. Diese Verbindungen sind schneller als jede andere Cloud-Plattform inklusive AWS.
- Standard-Instanzen der Google Compute Engine sind meist auch günstiger als AWS-Instanzen, es sei denn man ist bereit, im Voraus für drei Jahre Reservierte Instanzen zu kaufen. Wer sich drei Jahre an AWS Reservierte Instanzen bindet, der läuft aber natürlich Gefahr, nicht von zukünftigen Preissenkungen profitieren zu können.
- Gerade für kleinere Unternehmen bietet GCE auch den Vorteil, dass Google im Zehn-Minuten-Takt abrechnet, Amazon aber pro angefangener Stunde – und dabei aufrundet.
- Die Google Compute Engine ermöglicht es auch, persistente Lese-/Schreib-Festplatten einer virtuellen Maschine zuzuordnen, während hunderte anderer VMs der gleichen Zone einen Lesezugriff erhalten. Damit können Daten in sehr kurzer Zeit einer großen Anzahl an Workloads und VMs zur Verfügung gestellt werden. AWS-Kunden dagegen haben gerade bei der großflächigen Bereitstellung von Daten noch so ihre Schwierigkeiten.
- GCE kann zudem automatisches Load-Balancing durchführen, indem VMs je nach Auslastung anderen Instanz-Gruppen zugefügt werden. Damit ist es möglich, Traffic-Spitzen abzufedern und in Zeiten geringerer Auslastung Kosten zu reduzieren. Allerdings funktioniert das automatische Load-Balancing nur, wenn zuvor eine Skalierungsrichtlinie eingerichtet wurde und auch dann nur für Managed Instances. Standard-Instanzen müssen also auf diese Funktion verzichten.
- AWS Elastic Load Balancing bietet ähnliche Funktionen, bedarf aber weit mehr Vorarbeit, so muss zum Beispiel der Load-Balancer konfiguriert werden. GCE ermöglicht zudem den Lastausgleich zwischen Regionen und unterstützt auch inhaltsbasiertes Routing, was Amazon nicht bietet.
- GCE bietet die Verschlüsselung persistenter Festplatten nach ISO 27001, SSAE-16, SOC 1, SOC 2 und SOC 3.
- Über die Preemptible Instances lassen sich enorm kostengünstig Batch- und Compute-Aufgaben durchführen.
Neben all den Vorteilen gibt es aber natürlich auch einige Nachteile der Google Compute Engine:
- Gegenüber AWS haben GCE-Kunden noch immer das Nachsehen bei Servicebedingungen, Regionen (3 gegenüber 11 bei AWS) und Angebotsbreite bei Storage, Compute, Datenbanken, Netzwerk und Konfiguration. AWS kommt auf ein vielfaches der gesammelten Kapazitäten seiner größten Konkurrenten, in Marktanteilen ausgedrückt entfallen auf Amazon 28 Prozent des Cloud-Marktes, auf Microsoft 10 Prozent und auf Google nur fünf.
- AWS unterstützt eine breite Palette unterschiedlicher Betriebssysteme, zum Beispiel Amazon Linux, Red Hat Enterprise Linux, CentOS, Debian, SUSE Linux Enterprise Server, Ubuntu, Oracle Enterprise Linux, FreeBSD and Windows Server 2003 R2/2008/2008 R2/2012. GCE unterstützt lediglich CentOS, Red Hat Enterprise Linux, Debian, SUSE Linux Enterprise Server und seit kurzem auch Windows Server 2008 R2/2012 R2.
- Auch beim Thema Compliance hat AWS die Nase vorn. AWS kann Unternehmen bei nahezu allen Compliance-Fragen helfen, die Google Compute Engine hat hier dagegen noch deutlich Nachholbedarf.
- Vergleicht man die Anzahl verfügbarer Services rund um Googles Cloud-Plattform, kommt man auf teils weit weniger Dienste als für AWS und Microsoft Azure verfügbar sind. Ein Forrester-Report zu Enterprise-Cloud-Plattformen kommt auf 28 wichtige AWS-Services, 22 für Microsofts Cloud und nur sechs für Google: GAE, GCE, Google Cloud Storage, Google Cloud Datastore, Google Cloud SQL und Big Query.
- GCE hat auch bei der geografischen Verteilung noch Nachholbedarf. Für die Google Compute Engine sind lediglich drei Regionen (USA, Europa, Asien) und drei Verfügbarkeitszonen verfügbar. Wer eine statische Webseite für einen globalen Markt hat oder große Dateien wie Filme oder Download-Dateien hostet, der ist daher mit AWS EC2 und AWS S3 besser bedient.
Folgen Sie SearchDataCenter.de auch auf Twitter, Google+ und Facebook!