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.
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.
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.