Von den Branchenriesen lernen

Hochverfügbarkeit richtig umsetzen

16.12.2015 von Rafael Kansy
Hochverfügbarkeit spielt insbesondere für kritische Systeme eine wichtige Rolle. Diese sind hochverfügbar, wenn der Betrieb trotz Ausfall von Komponenten aufrechterhalten wird. Die Voraussetzung für Hochverfügbarkeit sind eine entsprechende Ausfallsicherheit, Lastverteilung sowie Backup-Funktionalität.

Dass Großkonzerne sich die modernste Technik leisten können, ist bekannt. Aber nicht nur die unterschiedlichen Geldmittel hindern mittelständische Unternehmen daran, Facebook und Google sofort alles nachzumachen: der Leitspruch "Kaufe niemals die erste Version" sorgt dafür, dass nur im Ausnahmefall die neueste Technik angewandt wird. Nach ein bis zwei Jahren Marktreife lässt sich schließlich besser entscheiden, wo die Stärken und Schwächen liegen und ob die Technik für das eigene Unternehmen geeignet ist. Hochverfügbarkeit ist ein gutes Beispiel für dieses Phänomen.

Technologisch hat sich seit den ersten Angeboten viel verändert. Startups und Branchengiganten haben bereits erfolgreich Hochverfügbarkeit umgesetzt. Dennoch herrscht in vielen Unternehmen noch Unklarheit über mögliche Einsätze, Konzepte und Vorteile - sie reagieren mit Unkenntnis oder setzen verfügbare Software nicht korrekt ein.

Dabei gibt es genügend Gründe, sich mit Hochverfügbarkeit auseinander zu setzen: Unternehmen, die jetzt mittel- und langfristige IT-Entscheidungen treffen, etwa zur Automatisierung der Infrastruktur, sollten sich die Vorteile und Möglichkeiten vor Augen führen. Das eigene System lässt sich stabilisieren und gegen Hochlasten absichern, Fehler werden frühzeitig entdeckt und drastisch reduziert, und die damit verbundene Automatisierung ermöglicht deutliche Einsparungen bei Wartung und Betrieb.

10 Mythen über Hochverfügbarkeit
10 Mythen über Hochverfügbarkeit
Geredet wird darüber viel, aber nur wenige Unternehmen haben wirklich hochverfügbare Systeme im Einsatz. Ursache dafür sind oft falsche Vorstellungen zum Thema. Stratus entzaubert die Mythen.
Mythos 1: Normale Server bieten heute ausreichend Sicherheit
Tatsächlich sind Server in den letzten Jahren wesentlich zuverlässiger geworden. Allerdings sind auch die Anforderungen gestiegen: Unternehmen betreiben unternehmenskritische Anwendungen heute auf Standard-Servern. Solche Anwendungen müssen kontinuierlich verfügbar sein, sonst können hohe Verluste entstehen, die möglicherweise sogar die Existenz des Unternehmens gefährden.
Mythos 2: Hochverfügbarkeit ist nur für große Unternehmen relevant
Ausnahmslos alle Unternehmen sind heute von ihrer IT abhängig und müssen daher Risikovorsorge betreiben. Lösungen wie fehlertolerante Server oder hochverfügbare Software-Lösungen, wie Stratus everRun oder Stratus Avance, sind aufgrund des geringen Aufwands für Implementierung und Administration auch für kleinere und mittlere Unternehmen geeignet.
Mythos 3: Hochverfügbarkeit ist teuer
Die Kosten von Hochverfügbarkeits-Lösungen müssen im Verhältnis zum möglichen Schaden gesehen werden. Tatsächlich ist Hochverfügbarkeit heute auch für kleinere Unternehmen erschwinglich. Fehlertolerante Server kosten unterm Strich sogar weniger als entsprechende Cluster-Lösungen, weil keine zusätzlichen Kosten für Software-Anpassung, zusätzliche Lizenzen oder eine aufwändige Administration anfallen.
Mythos 4: Hochverfügbarkeit ist aufwändig zu administrieren
Cluster-Lösungen erfordern tatsächlich aufwändige Implementierung und Administration. Fehlertolerante Server, die aus komplett redundanten Komponenten aufgebaut sind, verhalten sich gegenüber dem Benutzer wie ganz normale Server; die Administration ist nicht schwieriger als bei einem Standard-Server.
Mythos 5: Hochverfügbarkeit erfordert spezielle Applikationen
Nur für Cluster-Lösungen müssen die Applikationen angepasst werden. Fehlertolerante Server arbeiten mit Standard-Technologien, so dass Windows- und Linux-Applikationen ohne Anpassungen oder Änderungen betrieben werden können. Anwender benötigen hier für ihre Applikation auch jeweils nur eine einzige Lizenz, was die Gesamtkosten der Lösung reduziert.
Mythos 6: Cluster bieten ausreichende Sicherheit
Cluster arbeiten im Störungsfall nicht völlig unterbrechungsfrei, weil beispielsweise System-Dienste und Programme neu gestartet oder Datenbank-Transaktionen zurückgesetzt werden müssen. Je nach Komplexität der Applikationen können mehrere Minuten vergehen, bis alle Systeme wieder uneingeschränkt zur Verfügung stehen. In Extremfällen kann die Übergabe der Prozesse aber auch mehrere Stunden dauern.
Mythos 7: Virtualisierung macht Hochverfügbarkeit überflüssig
Das Gegenteil ist richtig: Werden auf einem physischen Server mehrere virtuelle Umgebungen betrieben, so sind von einem Hardware-Ausfall immer gleich mehrere Server mitsamt den Anwendungen betroffen. Ein einziger defekter physischer Server zieht also eine ganze virtuelle Server-Gruppe mit sich - und für jedes System müssen dann mehr oder weniger aufwändige Maßnahmen zur Wiederherstellung des Betriebs vorgenommen werden.
Mythos 8: Disaster Recovery und Hochverfügbarkeit sind dasselbe
Disaster Recovery bietet Katastrophenschutz: Unternehmen schützen damit ihre IT vor Bränden, Erdbeben, Flugzeugabstürzen oder Anschlägen. Hochverfügbarkeit sorgt dagegen für den Schutz der IT bei internen technischen Störungen. Verantwortungsvolle Unternehmen werden daher immer beides in ihrem Sicherheitskonzept berücksichtigen.
Mythos 9: Hochverfügbare Systeme basieren auf proprietären Technologien
Fehlertolerante Server arbeiten mit Standard-Technologien wie Intel-x86, Windows oder Linux, Software-Lösungen bauen auf dem Open-Source-Server Xen auf. Diese Systeme erreichen ihre hohe Ausfallsicherheit indem sie die Standard-Technologien redundant auslegen, so dass alle betriebswichtigen Teile doppelt vorhanden sind.
Mythos 10: Hochverfügbarkeit haben wir schon
Viele Unternehmen verwenden unterschiedliche Technologien, um ihre IT abzusichern. Der Einsatz einer USV oder die Durchführung regelmäßiger Backups sind zwar unerlässlich, machen ein System aber keineswegs hochverfügbar.

Wie ausgelastet ist mein System - und wie gut funktioniert es?

Monitoring sorgt dafür, dass für Unternehmen stets ersichtlich ist, was funktioniert und was nicht. Das gilt für den normalen Betrieb und noch viel mehr im Fall einer Reparatur oder eines Upgrades. Es gibt daher mindestens drei gute Gründe, warum sich Unternehmen mit Monitoring beschäftigen sollten: Erstens ist es hilfreich für alle, die sich mit Automatisierung beschäftigen, manuelle Prozesse zu identifizieren und zu ersetzen. Hier können Unternehmen jeder Größe effizient Geld und Fehler einsparen.

Zweitens lassen sich mit intelligentem Monitoring auch technische und funktionelle Fehler im System finden und eliminieren, bevor sie Schaden anrichten. Drittens können Unternehmen Ausfälle und Reaktionen auf anfallende Lasten besser antizipieren, wenn die Grenzen der eigenen Performance klar umrissen und die zu erwartenden Lasten bekannt sind.

Der erste Schritt zur Hochverfügbarkeit besteht darin, sich Informationen über die eigene Infrastruktur zu verschaffen: Wie ausgelastet ist mein System? Wie viele Ressourcen verbraucht es wirklich? Danach lassen sich die Fehlerfälle betrachten. Nicht alle Fehler müssen direkt behoben werden, komplexe Systeme kommen mit einer gewissen Anzahl an Fehlern gut zurecht.

So lassen sich Fehler durch falsche Eingaben, die im Logfile gespeichert werden, leicht beheben. Komplettausfälle wichtiger Systemkomponenten benötigen hingegen größere Refactoring-Maßnahmen. Fehlermetriken erfüllen die Funktion, einen wertvollen Einblick in die Ausrichtung der Infrastruktur zu liefern und Fehler in Zukunft wirksamer zu bekämpfen.

Business Process Monitoring als Effektivitätskontrolle

Die verwendete Software auf technische Fehler zu prüfen, ist damit einfacher - doch erfüllt sie auch ihr Ziel? Hier hilft Business Process Monitoring. Business Process Monitoring ist ein weites Feld, doch gilt in jedem Fall: die gewonnene Erkenntnis ist abhängig von der Menge an Zeit und Geld, die man bereit ist, zu investieren. Je nach vorhandenem Budget lassen sich Metriken auswählen, die für das jeweilige Unternehmen Sinn machen.

Bei Webportalen ist dieses Monitoring von zentraler Bedeutung. Die Klicks der Nutzer müssen verfolgt werden, weil die Unternehmen davon leben, dass die Werbung gesehen und angeklickt wird. Eine Vielzahl kleiner Business-Prozesse sammelt diese Informationen. Startups aus dem Silicon Valley überwachen jede mögliche Metrik rund um die Uhr. Auch Netflix oder Google registrieren jede Interaktion, die Fahrt des Mauszeigers, Pausen, Klicks - all das sind Events, die für Millionen User gespeichert und ausgewertet werden.

Dieser Umfang von Monitoring macht nicht für jedes Unternehmen Sinn. Wichtig ist, dass man sich einen Überblick verschafft. Denn jede IT-Abteilung wird empfindlich gelähmt, wenn sie keine Informationen über ihr eigenes System erhält. Hat ein Unternehmen sich ein Bild der Lage gemacht, geht es daran, passende Konzepte auszuwählen, um den richtigen Weg zur Hochverfügbarkeit zu finden.

Grundlagen Hochverfügbarkeit

Was bedeutet Verfügbarkeit? Hier eine Auflistung, die zeigt, welche Zeiträume dieser Begriff bei einem 24/7-Betrieb umfasst (mit Werten von Wikipedia).

Die Uptime eines IT-Systems ist ein wichtiger Faktor, wenn über Verfügbarkeit geredet wird: Sie wird immer ab dem letzten Systemstart berechnet und im System angezeigt.

Der grundlegende Aufbau eines Failover-Clusters ist relativ einfach: Wichtig ist dabei der "Heartbeat", der es den Systemen ermöglicht, den Zustand des anderen Servers zu überwachen (Quelle: Stratus).

Failover-Cluster fest eingebaut: Beim Windows Server 2012R können Administratoren diese Funktionalität direkt über den Server Manager einrichten und betreuen.

Hilfe bei der Einrichtung: War es vor dem Windows Server 2008 noch kompliziert und aufwändig, einen Failover-Cluster zu konfigurieren, so bekommen Administratoren nun auch beim Windows Server 2012 sehr viele Hilfen an die Hand.

Erfolgreich erstellt: Mit Hilfe des Assistenten wurden zwei Windows Server 2012R2 als Failover-Cluster konfiguriert.

Eine Softwarelösung, die mit Hilfe von virtuellen Maschinen Hochverfügbarkeit anbieten kann: Double-Take von Vision Solution hier noch in der Version 6.

Eine weitere Software-gestützte Lösung, die dem Nutzer eine Hochverfügbarkeit zur Verfügung stellt und auch mit virtuellen Maschinen zusammenarbeitet: everRun der Firma Stratus.

Stratus OneView: Mit Hilfe dieser Lösung ist es auch möglich, die eigenen Anwendungen und Systeme mit Disaster Recovery-Fähigkeiten auszustatten.

Auswahl der passenden Konzepte

Server zu provisionieren ist Alltag in einer IT-Abteilung. Gerade bei der größten Routine passieren Unachtsamkeiten - etwa fehlerhafte manuelle Änderungen oder vergessene Versionsangleichungen. Eine automatische Provisionierung spart daher nicht nur enorm Zeit, sondern vermindert auch Fehler. Puppet-Manifeste oder Chef-Rezepte sorgen beispielsweise dafür, dass die gleiche Serverkonfiguration hunderte Male kopiert werden kann, um Server per Knopfdruck einzurichten.

Viele Unternehmen haben diese Prozesse bereits integriert, so dass sich die nächste Stufe erreichen lässt: die Autoskalierung unterstützt dabei, automatisiert Ressourcen bereitzustellen und dabei besonderen Fokus auf eine kurze Reaktionszeit zu legen.

Soll die Verfügbarkeit der Datenbanken gesteigert werden, so hat dies unmittelbare Auswirkungen auf die Datensicherung. Ein Backup auf Band ist dafür nicht mehr zeitgemäß; es empfiehlt sich vielmehr, zwei Rechner als Master und Slave aufzusetzen. Im normalen Fall einer niedrigen bis durchschnittlichen Last wird hierfür eine Datenbank als Instanz eingesetzt. Nimmt die Auslastung der Datenbank zu, lassen sich Datenbank-Slaves hinzufügen, die den aktuellen Stand der Datenbank vom Master replizieren. Slaves decken dann die Lesefunktion ab, Schreibzugriffe werden über den Master abgewickelt.

Ein solches Setup ermöglicht es, Load Balancing auf dem Datenbank-Cluster zu implementieren. Dies erfordert allerdings eine erhöhte Ausfallsicherheit, da der Datenbank-Master zu einem Single Point of Failure wird. Statt des relativ komplexen Slave-Promoting empfiehlt es sich, einen zweiten Master im Hot-Standby-Modus hinzuzufügen. Zwar werden auch beim zweiten Master Änderungen repliziert, jedoch wird dieser erst aktiv, wenn der erste ausfällt.

Um die Last generell zu reduzieren, sind Caches wie EhCache oder Suchindexe wie Solr und ElasticSearch geeignete Komponenten. Bereits berechnete Ergebnisse können in Applikations-Caches oder Key Value Stores abgelegt werden. Diese Cache-Einträge können über den Cluster repliziert werden und stehen somit auch anderen Nodes zur Verfügung. Volltext-Suchindizes wie Solr oder ElasticSearch sollten eingesetzt werden, um die Datenbank bei Suchabfragen zu entlasten.

Loadbalancing wie bei Amazon

Ein Paradebeispiel für Hochverfügbarkeit sind der Onlineshop und die Cloud-Infrastruktur (AWS) des Handelsriesen, die einen großen Anteil an den Gesamtumsätzen ausmacht. Vor Weihnachten droht dem Händler jedes Jahr ein riesiger Ansturm, doch dank umfangreicher Metriken kennt das Unternehmen die zu erwartende Last.

Sollten die Ressourcen zur Neige gehen, können per Event hundert oder tausend Server dazugeschaltet werden, indem ein Rückgriff auf das Monitoring und die zuvor gesammelten Metriken im Sinne eines Elastic Load Balancing erfolgt. Im Hintergrund wird automatisch ein neuer Rechner mit Software provisioniert. Nach Weihnachten kann Amazon die Infrastruktur wieder automatisch zurückbauen, in Echtzeit ohne manuelle Eingriffe.

Je nach den Anforderungen können Unternehmen so Ressourcen per Autoskalierung vervielfältigen, mittels automatisierter Provisionierung lässt sich die Qualität sicherstellen. Bereits errechnete Ergebnisse werden per Caching zwischengespeichert, wodurch weiterer Aufwand eingespart werden kann. Das Load Balancing bindet als Schlüsseltechnik alles zusammen. So wie Virtualisierung den Grundstock darstellt, ist Load Balancing der Kopf des Systems, der Ressourcen automatisch nach Last abfragt und so eine echte Hochverfügbarkeit sicherstellt.

Die meisten Systeme und Komponenten sind Open Source. Unternehmen sollten daher Partner wählen, die guten Support bieten und mit einem zuverlässigen Systemintegrator arbeiten, der Prozesse um die Software herumbaut und die Anforderungen versteht.

Fazit

Es liegt nun an den Unternehmen und den IT-Entscheidern zu reflektieren, wie viel sie über ihre Systeme wissen und wo die kritischen Bereiche liegen, für die sich eine Investition in Hochverfügbarkeits-Systeme lohnt.

Die beschriebenen Konzepte lassen sich auch in Teilen umsetzen, je nach Geschäftsanforderungen und Budget - nicht jeder Business-Prozess ist geschäftskritisch, nicht alle Vorgänge bedürfen eines umfangreichen Monitorings.

Doch ohne Einsicht gibt es keine intelligenten Konzepte. Monitoring ist deshalb unausweichlich. Ist einmal bekannt, nach welchen Regeln ein System funktioniert, kann die Automatisierung der IT im Unternehmen aufgebaut werden. Sind die IT-Prozesse ausreichend automatisiert und dokumentiert, so ist der Weg zu einer hochverfügbaren und qualitativ hochwertigen IT-Landschaft nicht mehr weit.