meshBlog
Weg mit den Haustieren – Die Cloud ist mehr als Server-Virtualisierung
Die Cloud bringt neue Ansätze für die Gestaltung von Anwendungsarchitekturen. Einer davon wird oft mit „Pet vs Cattle“ beschrieben.
Auf die traditionelle Art und Weise behandeln wir unsere Server wie Haustiere, wie etwa Bob, den Mailserver. Wenn Bob ausfällt, heißt es alle Mann an Deck. Denn der Geschäftsführer erhält seine Email nicht mehr und der Weltuntergang droht. Auf die neue Art und Weise werden Server wie die Nutztiere in einer Herde nummeriert, wie zum Beispiel www001 bis www100. Wenn ein Server jetzt ausfällt, dann wird er herausgenommen, eliminiert und ersetzt.
– Randy Bias
Die Beurteilung eines Umstands hängt von der Perspektive ab. Ein gutes Beispiel ist die menschliche Beziehung zu Tieren: Wir behandeln unsere Hunde (oder auch Katzen) wie Freunde, umarmen sie, lassen sie impfen und kaufen ihnen Spielzeug oder Halsbänder. Ist es an der Zeit umzuziehen, nehmen wir sie mit, und beauftragen vielleicht sogar spezialisierte Transportdienste. Sterben sie, sind wir am Boden zerstört und wir fühlen uns so als hätten wir einen wichtigen Teil unseres Lebens verloren. Auf der anderen Seite aber existiert eine ganze Industrie, die nur darauf spezialisiert ist, Tiere möglichst effizient zu schlachten und in kleine Teile zu zerlegen. Während wir das perfekte Steak genießen, denken wir nicht einmal an den Namen des Spenders. Und der Grund dafür ist nicht, dass Nutztiere essbar sind und Haustiere nicht – denken wir zum Beispiel einmal an Hasen.
Was hat das nun mit Cloud Computing zu tun?
Ähnlich wie die Gesellschaft ihre Einstellung zum Fleischkonsum neu überdenkt, so ist es auch an der Zeit alte Denkweisen loszulassen, wenn es darum geht, IT-Systeme in die Cloud zu verlagern. Wir sind es gewohnt, unsere Server wie Haustiere zu behandeln: wir pflegen sie regelmäßig und wenn sie einmal krank sind, bekommen sie unsere ungeteilte Aufmerksamkeit.
Aber eigentlich wollen wir, dass sie einfach nur funktionieren. Unsere Infrastruktur soll wie eine geölte Industriemaschine laufen. Wir brauchen uns nicht länger um einen individuellen Server zu sorgen, sondern pflegen nur noch eine Vorlage, von der jedes Herdenmitglied geklont wird. Der Cloud Stack ist dabei wie der Schäfer, der die Herde hütet – wenn eine Instanz kaputt geht, wird sie entfernt und durch eine neue ersetzt. Die Herde insgesamt aber bleibt intakt und funktionsfähig. Folglich bedeutet der Cattle-Ansatz also, sich von der Auffassung einer virtuellen Maschine als beständige Einheit zu verabschieden. Sie kann jederzeit ausfallen und uns ist es völlig egal. Alles, was zählt sind nur unsere Daten – die in einer redundanten Datenbank oder in einem Block Storage (der wiederum selbst als eigenständiger Cluster konzipiert sein kann) sicher abgelegt sind. Die verarbeitende Instanz ist lediglich ein anonymer Arbeitszombie, der jederzeit wegfallen und ersetzt werden kann.
Also alles umwerfen?
Neue Freiheiten bringen neue Verantwortung – die Cloud verschiebt die Verantwortung für Hochverfügbarkeit auf die Anwendungsebene. Manche Anwendungen sind mehr, andere weniger geeignet für den Cattle-Ansatz. Langfristig müssen Anwendungsarchitekturen neu entworfen oder überarbeitet werden, um dem Cattle-Ansatz zu entsprechen und somit auch von den Vorteilen einer skalierbaren, hochverfügbaren Cloudinfrastruktur zu profitieren. Während meshcloud den Cattle-Ansatz standardmäßig umsetzt, bieten wir an bestimmten Standorten zusätzlich auch spezielle „pet workload“-Instanzen für Migrationsszenarien an – diese stellen dann eher einen virtualisierten "klassischen" Server dar („Bob“) als eine gesichtslose Bot-Node.
Für ein sinnvolles "Cattle"-Deployment müssen ausreichend Instanzen über Verfügbarkeitszonen verteilt sein, um sicherzustellen, dass die Herde verschiedene Weiden abgrast und nicht verhungert, wenn eine davon verödet. Verteilt man die Instanzen beispielsweise über drei Verfügbarkeitszonen und eine dieser Zonen fällt aus, so wird die Last dieses Drittels auf die verbleibenden Instanzen verteilt. Dies kann z.B. auch für die Vereinfachung von Update- oder Migrationsszenarien genutzt werden. Zudem benötigen nicht alle Anwendungen Hochverfügbarkeit. Für gelegentliche (nicht-transaktionelle) Prozesse bietet die Cloud eine kostengünstige und komfortable Lösung, indem sie nur bei konkretem Bedarf Instanzen automatisch erstellt, hochfährt und wieder löscht.
Wie geht es nun weiter?
meshcloud bietet eine Open-Source-Umgebung, die auf OpenStack (IaaS) und Cloud Foundry (PaaS) aufbaut und eine Automatisierung der Infrastruktur unterstützt, gleichzeitig aber vermeidet, dass Ihre IT-Infrastruktur von der proprietären Technologie eines Cloudanbieters abhängig ist. Innerhalb unseres Cloud-Verbunds von Rechenzentren können Sie an vielen verschiedenen Standorten die gleiche Umgebung für die Realisierung Ihrer Projekte nutzen. meshcloud ermöglicht es Ihnen dabei, sich auf Ihre IT-Projekte zu fokussieren und integriert die Cloud Services (IaaS und PaaS) und verschiedenen Standorte in einem einheitlichen Interface, das sie über einen integrierten Zugang nutzen können. Nennen Sie uns Ihre individuellen Anforderungen und wir helfen Ihnen gerne sich für die Cloud zu rüsten.