Die Qualität der jeder Webseite zugrundeliegende Server-Infrastruktur bildet einen wichtigen Grundstein für jedes Internet-Projekt und trägt entscheidend zum Erfolg eines Internet-Unternehmens bei.
Neben der Geschwindigkeit, Sicherheit und Stabilität ist die Flexibilität und Skalierbarkeit ein wichtiger Baustein zur perfekten Serverlandschaft. Optimale Skalierbarkeit und Flexibilität bietet das seit einigen Jahren unter dem Namen „Cloud-Hosting“ bekannt gewordene Modell des Server-Hostings.
Im Vergleich zum herkömmlichen Webhosting auf dedizierten oder virtuellen Servern, die nur über vorher definierte und begrenzte Ressourcen verfügen, kann beim Cloud-Hosting die Anzahl der Server, sowie die pro Server verfügbaren Ressourcen wie CPU, Arbeitsspeicher oder Festplattengröße zu jeder Zeit beliebig angepasst und konfiguriert werden.
Dies schafft die Möglichkeit zur Skalierung nach Bedarf. Das bedeutet, wenn zu einem Zeitpunkt mehr Traffic erwartet wird und somit mehr Ressourcen benötigt werden, kann man weitere Server und Ressourcen auf Knopfdruck zur Verfügung stellen. Bekannte Anbieter des Cloud-Hostings sind Amazon mit der Elastic Compute Cloud (EC2), Google mit der Compute Engine (GCE), Softlayer oder Rackspace.
Im Frühjahr 2014 sind wir mit Stetic und unserer kompletten Server-Infrastruktur zu Google’s Compute Engine (GCE) umgezogen und waren sehr glücklich und zufrieden damit. Obwohl wir aus datenschutzrechtlichen Gründen aktuell wieder bei einem deutschen Anbieter sind, können wir die Compute Engine von Google rein technisch und unternehmerisch – abgesehen vom Datenschutz in Deutschland – uneingeschränkt empfehlen.
Während des zehnjährigen Bestehens von Stetic haben wir einige Anbieter getestet und genutzt, darunter auch viele vergleichbare Angebote zu GCE, aber was wir bei Google vorgefunden haben stellt technisch gesehen alles andere in den Schatten.
Um genauer zu werden, möchte ich dir hier zehn der größten Vorteile beschreiben, die Google mit der Compute Engine bietet:
Festplatten können bei einem Server zum Flaschenhals werden und viel zur Optimierung der Geschwindigkeit beitragen. Waren bis vor einigen Jahren noch SCSI- oder SAS-Festplatten das Optimum für einen Serverbetrieb, so sind es heute die SSD-Festplatten. Gerade, aber nicht nur bei dynamischen Inhalten und Datenbankanwendungen sollte diese Festplattenart jeder anderen vorgezogen werden. Es ist schon fast unverständlich wie einige Webhoster heute noch mit hoher Performance werben und dennoch nur Server mit SATA-Platten anbieten.
Zurück zu Google: Die Compute Engine bietet die Einbindung von SSD-Festplatten für jeden virtuellen Server bzw. jede Art von Maschine an. Hierbei wird zwischen Solid-state persistent disks (SSD) und Local SSDs unterschieden. Local SSDs sind lokal an die virtuelle Maschine gebunden und dadurch sehr effizient im Datendurchsatz, haben eine fixe Größe und können nicht über Snapshots gesichert werden. Sie eigenen sich wunderbar als Cache oder für eine Datenbank-Replikation über mehrere Server. Solid-state persistent disks hingegen sind in der Größe veränderbar, redundant und können mit einem Snapshot zu jeder Zeit gesichert werden. Sie eigen sich daher für alle Anwendungsgebiete, bei denen Wert auf hohe Geschwindigkeit und Sicherheit gelegt wird.
In dem ganzen Jahr in dem wir Stetic in der Google Compute Engine gehostet haben, haben wir lediglich einmal ein Problem mit einer Festplatte feststellen können, was bei 9 Maschinen in 365 Tagen und bei SSD-Festplatten eher gering ist. Da der Server aber redundant war, war das Problem nach einem Snapshot und Hochfahren einer neuen Maschine mit diesem Snapshot innerhalb von 10 Minuten gelöst. Zudem war die Performance der Platten immer konstant.
Google sagt von sich selbst, es betreibt das grösste, schnellste und fortschrittlichste Computer-Netzwerk der Welt. Wenn man einmal die Compute Engine benutzt hat, glaubt man das uneingeschränkt. Die Verfügbarkeit, die hohe Geschwindigkeit und auch das Handling des Netzwerkes sind immer gegeben. Zudem hat Google an alle Knotenpunkte eine gute Anbindung, was sich gerade nach Übersee extrem bemerkbar macht.
Obwohl unsere Server in einem Google-Rechenzentrum im Irland gehostet waren, sind die Verbindungszeiten und Geschwindigkeiten mit denen der besten deutschen Hoster durchaus vergleichbar und ein Unterschied nicht merkbar gewesen. Über den Ozean, also beispielsweise von Irland in die USA, waren die Geschwindigkeiten sogar um einiges besser als bei deutschen Anbietern. Das liegt sicher auch daran, das Google nicht über das öffentliche Netzwerk verbinden muss, sondern sein eigenes privates globales Netzwerk nutzen kann.
Sollte Google nun noch ein Rechenzentrum in Deutschland für GCE zur Verfügung stellen, wäre das nochmals ein Performance-Gewinn und somit für deutsche Kunden sehr zu begrüßen.
Eigentlich passt dieser Punkt mit zum letzten, hat aber für uns so einen hohen Stellenwert und Nutzen, dass dieses Feature einfach gesondert erwähnt werden muss. Die Möglichkeit mehrere Server privat untereinander zu vernetzen und sogar private Netze, Routing und Firewall-Regeln uneingeschränkt vergeben und konfigurieren zu können, verringert nicht nur den Aufwand und verbessert das Handling und die Sicherheit; dieses Feature ist in dieser Form so – ausgenommen Amazon – bei keinem normalen Hosting-Anbieter vorzufinden. Und wenn, dann nur mit hohen Zusatzkosten.
Es ist mir unverständlich wieso andere Anbieter dieses Feature derart vernachlässigen, da ein Hosting mehrerer Server immer eine Kommunikation der Server untereinander mit sich bringt. Und diese Kommunikation muss sicher sein, sei es eine Verbindung zur Datenbank oder zu anderen Diensten: Interne Verbindungen müssen abgesichert, jederzeit möglich und erweiterbar sein. Google hat dies wunderbar umgesetzt und das Handling einfach, verständlich und flexibel gestaltet: Standardmäßig ist ein Default-Netzwerk angelegt, dem alle Maschinen automatisch zugeordnet werden können. Man kann eigene Netzwerke inkl. eigenen privaten IP-Adressen, Firewalls und Routings anlegen und jeder Maschine zuordnen. Auch eine Region-übergreifende Verbindung ist damit möglich und enthalten. Besser geht es nicht!
Die Möglichkeit der Lastenverteilung und Hochverfügbarkeit ist gerade für skalierbare Systeme ein unumgängliches Feature. Wie schön, das Google dies von Haus aus bietet und mit integrierten Load-Balancern auch hier die Einrichtung zum Kinderspiel macht. Ob Netzwerklastenausgleich für alle Arten der Lastenverteilung mit TCP oder UDP und beliebige Ports oder HTTP-Lastenausgleich zum Verteilen des Traffic’s auf mehrere Webserver mit allen notwendigen Konfigurationsmöglichkeiten – alles ist möglich und einfach zu administrieren.
Das Preismodell der Compute Engine ist im Vergleich zu anderen Cloud-Anbietern wesentlich günstiger und vorteilhafter gestaltet. Durch Ermässigungen, die sich je nach Nutzung pro Monat erheblich steigern, bekommt man in mehreren Stufen einen Rabatt auf den tatsächlichen Preis. So zahlt man während der Nutzung von 25%-50% des Monats während dieser Zeit 80% des Ursprungspreises, bei 50%-75% 60% und bei 75%-100% nur noch 40% vom Preis pro Maschine. Im Vergleich zu Amazon haben wir so gefühlt nur den halben Preis pro Monat gezahlt und mussten uns auch nicht, wie bei Amazon, zur Preisreduzierung an längere Vertragslaufzeiten binden.
Neue Instanzen bzw. Maschinen sind in der Compute Engine über die API und auch über das Webinterface rasend schnell angelegt und verfügbar. Das Booten einer Maschine dauert in aller Regel weniger als 30 Sekunden, bei manchen hatten wir sogar sagenhafte 15 Sekunden gemessen, bis wir uns auf der Maschine per SSH einloggen konnten. Das liegt natürlich auch an den verwendeten SSD-Festplatten, die man für alle Maschinen unbedingt immer wählen sollte. Sicher spielt auch die Software von Google und die Geschwindigkeit und Verfügbarkeit der API hier eine große Rolle.
Gerade, wenn man schell neue Ressourcen benötigt, ist diese Tatsache ein riesiger Pluspunkt.
Mit Amazon und anderen Anbietern hatten wir so unsere Probleme, geeignete Puppet-Module mit allen in der API zur Verfügung stehenden Funktionen als Open-Sorce-Modul zu finden. Nicht so bei Google. Hier ist das umfangreiche Modul puppetlabs-gce_compute vorhanden, welches nahezu alle Funktionen der Compute Engine API abbildet. Dies ermöglicht das Erstellen von Maschinen inklusive aller zugehörigen Services und das anschliessende automatische Konfigurieren der Maschinen. Unsere Erfahrungen haben wir in einem Blogartikel zur Automation von Google Compute Engine mit Puppet anhand eines hochverfügbaren LAMP Stack’s mit MongoDB beschrieben und die Funktionsweisse mit allen notwendigen Beispielen erklärt.
Das Handling der Google Compute Engine ist immer leicht und einfach zu verstehen. Das beginnt schon bei den Namen der Maschinen, die beliebig vergeben werden können und sogleich als Hostname innerhalb des eigene Netzwerkes vergeben und unter einen eigenen internen Domain verfügbar sind. Wo andere Anbieter zufällige ID’s vergeben, die sich schwer merken lassen, macht die Vergabe von Namen in der GCE die Kommunikation unter den Servern und die Handhabung sehr einfach.
Auch das Webinterface und die API sind einfach zu verstehen, wie die meisten Services von Google: Minimale optische, aber dennoch schöne Darstellung, eine klare Benutzerführung und optimale Performance lassen einen niemals den Überblick verlieren und erleichtern jedem den Einstieg. Alles in allem macht es viel Spaß, damit zu arbeiten und ermöglicht ein effizientes Arbeiten.
Sollte Google einmal Wartungsarbeiten durchführen müssen oder ein Software-Update des Wirtsystems notwendig ist, so bedeutet dies nicht zwangsläufig, dass der Server neu gestartet werden muss. Man hat hier die Wahl, ob der Server im Betrieb migriert werden soll oder ob er automatisch heruntergefahren und nach den Wartungsarbeiten wieder gestartet werden soll. Bei der Migration wird die virtuelle Maschine im Betrieb auf ein anderes System transferiert, welches von den Wartungsarbeiten nicht betroffen ist. Währen dieses Umzuges kann mit einer geringen Performance-Einbuße gerechnet werden, der Server bleibt aber online.
Sollte es einmal Software oder Hardwareprobleme geben, kann der Maschine über die Einstellung „automaticRestart“ mitgeteilt werden, in diesem Fall automatisch wieder neu zu starten. Dies ist sehr hilfreich wenn der Server aufgrund eines Problems heruntergefahren oder abgestürzt ist.
Google hat nicht nur die meiste und beste Erfahrung mit dem Betrieb von Internet-Projekten, sondern betreibt mit geschätzt mehr als 1 Million Servern auch die größte Anzahl von Servern.
Es scheint nur logisch, das dieser Bereich mit all seinen Möglichkeiten bis in den letzten Millimeter optimiert und auf hohe Performance, Sicherheit und Hochverfügbarkeit ausgelegt ist. Zudem beschäftigt Google die besten Ingenieure, um den Betrieb und die Weiterentwicklung sicherzustellen. Erinnerst du dich an lange Ladezeiten einer Google-Webseite oder gar einen Ausfall? Ich kann mich vielleicht wenn es hoch kommt während der letzten 15 Jahre an ein bis zwei kurze Downtimes erinnern, der letzte im August 2013, was bei der Menge an Servern und Ablegern sehr sehr wenig ist.
Genau dieses Wissen, die Erfahrung und die Technik stellt Google Ihren Kunden mit der Compute Engine zur Verfügung. Fast schon unglaublich, dass es möglich ist, die gleiche Infrastruktur wie Google zu nutzen und für seine eigenen Projekte nutzen zu können.
So gerne wir auch bei der Compute Engine und bei Google geblieben wären, die Tatsache das Google keine Region in Deutschland anbietet und den in Deutschland doch recht verbreiteten Vorbehalten gegenüber dem Unternehmen Google, haben uns leider zum Umzug zu einem deutschen Anbieter bewogen. Da wir für unsere Kunden viel Wert auf Datenschutz legen, sind die genannten Tatsachen für uns nicht tragbar gewesen. Zwar werden alle Festplatten laut Google verschlüsselt, Zertifikate über die Sicherheit ausgestellt und die Datenintegrität nach Industriestandard sichergestellt, dennoch stehen viele Menschen in Deutschland und Europa Google mit einer gewissen Skepsis gegenüber.
Encryption
All data written to disk in Compute Engine is encrypted on the fly and then transmitted and stored in encrypted form. Compute Engine has completed ISO 27001, SSAE-16, SOC 1, SOC 2, and SOC 3 certifications, demonstrating our commitment to information security.
Data integrity
Compute Engine uses redundant, industry-standard mechanisms to protect persistent disk users from data corruption and from sophisticated attacks against data integrity.
Ich hoffe, dass sich dies in Zukunft ändern wird und ich mit diesem Artikel einen Teil dazu beitragen konnte. Vielleicht bietet Google die Compute Engine bald mit Rechenzentren in Deutschland an und macht passende Kampagnen zu Datenschutz und Sicherheit der Daten. Dann könnte sich das Blatt und die Einstellung der Menschen dazu wenden.
Claus Wencke
Simon Brocher aus Köln
Schöner Blogbeitrag. Danke, dass Sie diese Informationen mit uns teilen. Geben Sie uns bitte die neueste Bewertung. Ich hoffe, bald mehr informative Beiträge von Ihnen zu lesen. Alles Gute für Sie!
Mit freundlichen Grüßen,
Simon Brocher aus Köln
Winfried Wengenroth
vielen Dank für dieses ausführlichen und informativen Beitrag.
Vieles war mir durchaus neu.
LG, Winfried Wengenroth
Was denkst du?